void WriteVariable(parameters paras, out results rets) { rets = new results(); result rst = new result(); ThreadUpdate tusend = new ThreadUpdate(); if (paras.Count != 1) { rets.response = rspCode.negitive; rets.resDesc = "More than 1 variable to read."; saveLogfile(rets.resDesc); } else { CDDLBase ddb = new CDDLBase(); if (hartDev.getItembyName((string)paras[0].value, ref ddb)) { if (ddb.GetType() == typeof(CDDLVar)) { CDDLVar vartowrite = (CDDLVar)ddb; hCcommandDescriptor pCmdDesc = vartowrite.getWrCmdList().ElementAt(0); CDDLCmd pCmd = hartDev.Cmds.getCmdByNumber(pCmdDesc.cmdNumber); if (hartDev.pCmdDispatch.SendCmd(pCmd, pCmdDesc.transNumb, null, logSw) == Common.SUCCESS) { saveLogfile("Command {0}, transaction {1} sent.", pCmdDesc.cmdNumber, pCmdDesc.transNumb); returncode creply = hartDev.parentform.ReData(null); hartDev.parentform.setThread(tusend); tusend.ucTranNumSent = (byte)pCmdDesc.transNumb; tusend.ucCmdSent = (byte)pCmdDesc.cmdNumber; hartDev.parentform.procRcvData(creply, pCmdDesc.transNumb, pCmd.getCmdNumber(), pCmd.getOperation()); rets.response = (hartDev.parentform.getCmdRes() as results).response;//getCmdRes //rst.name = (string)paras[0].value; //rst.rtype = resultDataType.floatpoint; //rst.value = vartowrite.GetDispString(); rets.Add(rst); } else { rets.response = rspCode.negitive; rets.resDesc = String.Format("The Command {0}, transaction {1} cannot be sent.", pCmdDesc.cmdNumber, pCmdDesc.transNumb); saveLogfile(rets.resDesc); } } else { rets.response = rspCode.negitive; rets.resDesc = "The item is not a variable."; saveLogfile(rets.resDesc); } } else { rets.response = rspCode.negitive; rets.resDesc = "The variable name is not valid."; saveLogfile(rets.resDesc); } } }
void DiagnoseDev(parameters paras, out results rets) { rets = new results(); result rst = new result(); ThreadUpdate tusend = new ThreadUpdate(); if (paras.Count != 1) { rets.response = rspCode.negitive; rets.resDesc = "More than 1 variable to read."; } else { CFRAME_PARSE_NODE cFrameParse = new CFRAME_PARSE_NODE(); if (DPDev.diagDevice(0, ref cFrameParse)) { //if (hartDev.pCmdDispatch.SendCmd(pCmd, pCmdDesc.transNumb) == Common.SUCCESS) { /* * rets.response = (hartDev.parentform.getCmdRes() as results).response;//getCmdRes * rst.name = (string)paras[0].value; * //rst.rtype = resultDataType.floatpoint; * rst.value = vartoread.GetDispString(); * rets.Add(rst); */ string slaveState = DPDev.parseSlaveStateByDiag(cFrameParse.aucData, cFrameParse.ucDataLen); rst = new result(); rst.name = "SlaveState"; rst.value = slaveState; rets.Add(rst); string DiagnoseInfo = ""; DPDev.parseDiagnosticsInfo(cFrameParse.aucData, cFrameParse.ucDataLen, ref DiagnoseInfo); rst = new result(); rst.name = "DiagnoseInfo"; rst.value = DiagnoseInfo; rets.Add(rst); } //else { rets.response = rspCode.positive; //rets.resDesc = String.Format("The Command {0}, transaction {1} cannot be sent.", pCmdDesc.cmdNumber, pCmdDesc.transNumb); } } else { rets.response = rspCode.negitive; rets.resDesc = "The Diagnose is failed."; } } }
public IActionResult UpdateThread([FromBody] ThreadUpdate input) { _threadService.UpdateThread(input); return(Ok()); }
public void UpdateThread(ThreadUpdate input) { // check user and permissions Session.EnsureAuthenticated(); var threadModel = _threadRepository.Find(input.Id); var latestContent = _threadContentRepository.GetAll() .Where(x => x.ThreadId == input.Id) .OrderByDescending(x => x.CreatedAt) .FirstOrDefault(); var tags = _threadRepository.GetAll().Where(x => x.Id == input.Id) .SelectMany(x => x.Tags).ToList(); // contents if (latestContent.Content != input.Contents) { _threadContentRepository.Insert(new Entities.ThreadContent { Id = Guid.NewGuid(), ThreadId = input.Id, CreatedAt = DateTime.UtcNow, CreatedByUserId = Session.AuthenticatedUserId.Value, Content = input.Contents, }); } // tags if (input.Tags != null && input.Tags.Length > 0) { // remove removed tags tags.RemoveAll(x => input.Tags.Select(y => y.Id).Contains(x.TagId) == false); // add new existing tags var newExistingTags = input.Tags.Where(x => x.Id.HasValue && tags.Select(y => y.TagId).Contains(x.Id.Value) == false); tags.AddRange(newExistingTags.Select(x => new Entities.ThreadTag { Id = Guid.NewGuid(), TagId = x.Id.Value, })); // add new not-existing tags var newNotExistingTags = input.Tags.Where(x => x.Id.HasValue == false); var newNotExistingTagEntities = newNotExistingTags .Select(x => new Entities.Tag { Id = Guid.NewGuid(), CreatedAt = DateTime.UtcNow, CreatedByUserId = Session.AuthenticatedUserId.Value, Name = x.Name }) .ToArray(); _tagRepository.BatchInsert(newNotExistingTagEntities); tags.AddRange(newNotExistingTagEntities.Select(x => new Entities.ThreadTag { Id = Guid.NewGuid(), TagId = x.Id, })); } else { tags.RemoveAll(x => true); } threadModel.Title = input.Title; threadModel.UpdatedAt = DateTime.UtcNow; threadModel.UpdatedByUserId = Session.AuthenticatedUserId.Value; threadModel.Tags = tags; _threadRepository.Update(threadModel); }