public override ProcessResult Process(string ip, InstructionTask instructionTask) { ProcessResult result = new ProcessResult(); result.Done = false; result.Message = string.Empty; bool right = true; List<DataCache> dataCaches = new List<DataCache>(); List<Detector> detectors = new List<Detector>(); if ((instructionTask != null) && (instructionTask.Instructions != null) && (instructionTask.Instructions.Count > 0)) { for (int i = 0; i < instructionTask.Instructions.Count; i++) { AlarmInstruction instruction = instructionTask.Instructions[i] as AlarmInstruction; if (instruction == null) { right = false; break; } else { if (instruction.Detectors != null) { for (int j = 0; j < instruction.Detectors.Count; j++) { detectors.Add(instruction.Detectors[j]); } } } } } if (right) { MachineBusiness machineBusiness = new MachineBusiness(); Machine machine = machineBusiness.QueryByIp(ip); if (machine != null) { DetectorBusiness detectorBusiness = new DetectorBusiness(); List<Detector> currentDetectors = detectorBusiness.QueryByMachine(machine.Guid); if ((currentDetectors != null) && (currentDetectors.Count == detectors.Count)) { for (int i = 0; i < detectors.Count; i++) { string userId = this.GetType().Name; DateTime now = DateTime.Now; DataCache dataCache = new DataCache(); dataCache.InsertUserId = ip; dataCache.InsertTime = now; dataCache.UpdateUserId = userId; dataCache.UpdateTime = now; dataCache.Remark = string.Empty; dataCache.Validity = true; dataCache.DetectorId = currentDetectors[i].Guid; byte[] values = BitConverter.GetBytes(detectors[i].Value); Array.Reverse(values); currentDetectors[i].Decode(values); dataCache.Value = currentDetectors[i].Value; dataCache.RefreshTime = now; dataCache.Newest = true; dataCaches.Add(dataCache); } } } DataCacheBusiness dataCacheBusiness = new DataCacheBusiness(); result.Done = dataCacheBusiness.Insert(dataCaches); } return result; }
public override ProcessResult Process(string ip, InstructionTask instructionTask) { ProcessResult result = new ProcessResult(); result.Done = false; result.Message = string.Empty; if ((instructionTask != null) && (instructionTask.Instructions != null) && (instructionTask.Instructions.Count > 0)) { for (int i = 0; i < instructionTask.Instructions.Count; i++) { MessageInstruction instruction = instructionTask.Instructions[i] as MessageInstruction; if (instruction != null) { string userId = this.GetType().Name; DateTime now = DateTime.Now; MessageCache messageCache = new MessageCache(); messageCache.InsertUserId = ip; messageCache.InsertTime = now; messageCache.UpdateUserId = userId; messageCache.UpdateTime = now; messageCache.Remark = string.Empty; messageCache.Validity = true; messageCache.Ip = ip; messageCache.Code = instruction.Code; messageCache.Result = instruction.Result; messageCache.SendTime = instruction.SendTime; MachineBusiness machineBusiness = new MachineBusiness(); Machine machine = machineBusiness.QueryByIp(ip); if (machine != null) { messageCache.MachineId = machine.Guid; } messageCache.RefreshTime = now; MessageCacheBusiness messageCacheBusiness = new MessageCacheBusiness(); result.Done = messageCacheBusiness.Insert(messageCache); } } } return result; }