2
schangxiang@126.com
2024-08-16 b47c50a2a514def7374b32d7194b2c599cba5625
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
using iWareCommon.Common.Entity;
using iWareCommon.Common.EnumType;
using iWareCommon.Common.Service;
using iWareCommon.Utils;
using iWareDataCore.DEV.Dao;
using iWareDataCore.DEV.Entity;
using iWareDataCore.ORM;
using iWareDataCore.Properties;
using System;
using System.Collections.Generic;
using System.Data.Entity.Validation;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace iWareDataCore.DEV.Service
{
    public class EquipmentService : CommonService<EquipmentEntity, DEVEquipment, DbModelCore>
    {
        private static object Lock = new object();
        private EquipmentService() : base(EquipmentDao.GetInstance()) { }
 
        private static EquipmentService Instance = null;
 
        /// <summary>
        /// 获取单例的方法
        /// </summary>
        /// <returns>单例</returns>
        public static EquipmentService GetInstance()
        {
            if (Instance == null)
            {
                lock (Lock)
                {
                    if (Instance == null)
                    {
                        Instance = new EquipmentService();
                    }
 
                }
            }
            return Instance;
        }
 
        public override int Save(EquipmentEntity t, out string msg)
        {
            msg = "";
            using (DbModelCore db = new DbModelCore())
            {
                try
                {
                    var one = t.ToOrm();
                    db.DEVEquipments.Add(one);
                    return db.SaveChanges();
 
                }
                catch (DbEntityValidationException ex)
                {
                    var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage);
                    msg = string.Join(", ", errs);
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", msg);
                    return -1;
                }
                catch (Exception ex)
                {
                    msg = ex.HResult == (int)EDbError.记录已存在 ? EDbError.记录已存在.ToString() : ex.Message;
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", msg);
                    return -1;
                }
 
 
            }
        }
 
        public override List<EquipmentEntity> QueryByParam(QueryParam param, out string msg)
        {
 
            msg = "";
            using (var db = new DbModelCore())
            {
                var equipments = EquipmentDao.GetInstance().QueryByParam(param, db);
                return equipments;
            }
        }
 
        public override int Update(EquipmentEntity t, out string msg)
        {
            msg = "";
            using (DbModelCore db = new DbModelCore())
            {
                try
                {
                    var one = db.DEVEquipments.First(x => x.id == t.Id);
                    EntityPropHelper<EquipmentEntity, DEVEquipment>.CopyProp(t, one, EquipmentEntity.GetColumnMap());
                    db.SaveChanges();
                    return one.id;
                }
                catch (DbEntityValidationException ex)
                {
                    var errs = ex.EntityValidationErrors.SelectMany(validationResult => validationResult.ValidationErrors).Select(m => m.ErrorMessage);
                    msg = string.Join(", ", errs);
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Save", msg);
                    return -1;
                }
 
                catch (Exception ex)
                {
                    msg = ex.Message;
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Update", ex.Message);
                    return -1;
                }
 
            }
        }
 
        public int ChangeStatus(List<int> ids, int status, out string msg)
        {
            msg = "";
            using (var dbModel = new DbModelCore())
            {
                try
                {
                    var ones = dbModel.DEVEquipments.Where(x => ids.Contains(x.id)).ToList();
 
                    foreach (var one in ones)
                    {
                        one.status = status;
                    }
 
                    dbModel.SaveChanges();
                    return ones.Count;
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ChangeStatus", ex.Message);
                    return -1;
                }
            }
        }
 
 
    }
}