|
@@ -27,69 +27,69 @@ namespace WCS.Service
|
|
|
|
|
|
private static ConcurrentDictionary<Type, object[]> LastDatas = new ConcurrentDictionary<Type, object[]>();
|
|
private static ConcurrentDictionary<Type, object[]> LastDatas = new ConcurrentDictionary<Type, object[]>();
|
|
|
|
|
|
- //protected override WCS_PROTOCOLDATA GetLastData(DB db)
|
|
|
|
- //{
|
|
|
|
- // if (!LastDatas.ContainsKey(this.ProtocolDataType))
|
|
|
|
- // {
|
|
|
|
- // dynamic q = SetMethod.Invoke(db.Default, null);
|
|
|
|
- // try
|
|
|
|
- // {
|
|
|
|
- // q = DynamicQueryableExtensions.Where(q, "ISLAST==@0", true);
|
|
|
|
- // q = DynamicQueryableExtensions.OrderBy(q, "ID");
|
|
|
|
- // q = DynamicQueryableExtensions.Select(q, "new(it.DEVICE.CODE as Code,it as Data)");
|
|
|
|
- // var arr = Enumerable.ToArray(q);
|
|
|
|
- // LastDatas[this.ProtocolDataType] = arr;
|
|
|
|
- // }
|
|
|
|
- // catch (Exception ex)
|
|
|
|
- // {
|
|
|
|
- // throw;
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // dynamic datas = LastDatas[this.ProtocolDataType];
|
|
|
|
- // var list = new List<WCS_PROTOCOLDATA>();
|
|
|
|
- // foreach (var data in datas)
|
|
|
|
- // {
|
|
|
|
- // if (data.Code == PROTOCOL.DEVICE.CODE)
|
|
|
|
- // list.Add(data.Data);
|
|
|
|
- // }
|
|
|
|
|
|
+ protected override WCS_PROTOCOLDATA GetLastData(DB db)
|
|
|
|
+ {
|
|
|
|
+ if (!LastDatas.ContainsKey(this.ProtocolDataType))
|
|
|
|
+ {
|
|
|
|
+ dynamic q = SetMethod.Invoke(db.Default, null);
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ q = DynamicQueryableExtensions.Where(q, "ISLAST==@0", true);
|
|
|
|
+ q = DynamicQueryableExtensions.OrderBy(q, "ID");
|
|
|
|
+ q = DynamicQueryableExtensions.Select(q, "new(it.DEVICE.CODE as Code,it as Data)");
|
|
|
|
+ var arr = Enumerable.ToArray(q);
|
|
|
|
+ LastDatas[this.ProtocolDataType] = arr;
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ throw;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ dynamic datas = LastDatas[this.ProtocolDataType];
|
|
|
|
+ var list = new List<WCS_PROTOCOLDATA>();
|
|
|
|
+ foreach (var data in datas)
|
|
|
|
+ {
|
|
|
|
+ if (data.Code == PROTOCOL.DEVICE.CODE)
|
|
|
|
+ list.Add(data.Data);
|
|
|
|
+ }
|
|
|
|
|
|
- // if (list.Count > 1)
|
|
|
|
- // {
|
|
|
|
- // for (int i = 0; i < list.Count - 1; i++)
|
|
|
|
- // {
|
|
|
|
- // var obj = list[i];
|
|
|
|
- // db.Default.Attach(obj);
|
|
|
|
- // obj.ISLAST = false;
|
|
|
|
- // }
|
|
|
|
- // db.Default.SaveChanges();
|
|
|
|
- // }
|
|
|
|
- // var res = Enumerable.LastOrDefault(list);
|
|
|
|
- // return res;
|
|
|
|
- //}
|
|
|
|
|
|
+ if (list.Count > 1)
|
|
|
|
+ {
|
|
|
|
+ for (int i = 0; i < list.Count - 1; i++)
|
|
|
|
+ {
|
|
|
|
+ var obj = list[i];
|
|
|
|
+ db.Default.Attach(obj);
|
|
|
|
+ obj.ISLAST = false;
|
|
|
|
+ }
|
|
|
|
+ db.Default.SaveChanges();
|
|
|
|
+ }
|
|
|
|
+ var res = Enumerable.LastOrDefault(list);
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
|
|
private static int total;
|
|
private static int total;
|
|
|
|
|
|
- //protected override WCS_PROTOCOLDATA SaveNewData(DB db, WCS_PROTOCOLDATA last, WCS_PROTOCOLDATA newobj, string user)
|
|
|
|
- //{
|
|
|
|
- // total++;
|
|
|
|
|
|
+ protected override WCS_PROTOCOLDATA SaveNewData(DB db, WCS_PROTOCOLDATA last, WCS_PROTOCOLDATA newobj, string user)
|
|
|
|
+ {
|
|
|
|
+ total++;
|
|
|
|
|
|
- // if (last != null)
|
|
|
|
- // {
|
|
|
|
- // db.Default.Attach(last);
|
|
|
|
- // last.ISLAST = false;
|
|
|
|
- // }
|
|
|
|
|
|
+ if (last != null)
|
|
|
|
+ {
|
|
|
|
+ db.Default.Attach(last);
|
|
|
|
+ last.ISLAST = false;
|
|
|
|
+ }
|
|
|
|
|
|
- // db.Default.Attach(PROTOCOL.DEVICE);
|
|
|
|
|
|
+ db.Default.Attach(PROTOCOL.DEVICE);
|
|
|
|
|
|
- // newobj.DEVICE = PROTOCOL.DEVICE;
|
|
|
|
- // newobj.ISLAST = true;
|
|
|
|
- // newobj.UPDATETIME = DateTime.Now;
|
|
|
|
- // newobj.UPDATEUSER = user;
|
|
|
|
- // newobj.FRAME = LogicHandler.Frame;
|
|
|
|
- // db.Default.Add(newobj);
|
|
|
|
- // db.Default.SaveChanges();
|
|
|
|
- // return newobj;
|
|
|
|
- //}
|
|
|
|
|
|
+ newobj.DEVICE = PROTOCOL.DEVICE;
|
|
|
|
+ newobj.ISLAST = true;
|
|
|
|
+ newobj.UPDATETIME = DateTime.Now;
|
|
|
|
+ newobj.UPDATEUSER = user;
|
|
|
|
+ newobj.FRAME = LogicHandler.Frame;
|
|
|
|
+ db.Default.Add(newobj);
|
|
|
|
+ db.Default.SaveChanges();
|
|
|
|
+ return newobj;
|
|
|
|
+ }
|
|
|
|
|
|
//static ConcurrentQueue<PackInfo> Packs = new ConcurrentQueue<PackInfo>();
|
|
//static ConcurrentQueue<PackInfo> Packs = new ConcurrentQueue<PackInfo>();
|
|
private static Dictionary<string, Playerback> Clients = new Dictionary<string, Playerback>();
|
|
private static Dictionary<string, Playerback> Clients = new Dictionary<string, Playerback>();
|