/// <summary> /// 同步部门 /// </summary> /// <param name="organizeListJson">机构列表Json</param> /// <returns></returns> public void Synchronization(string organizeListJson) { List <WeChatDeptRelationEntity> weChatDeptRelationList = new List <WeChatDeptRelationEntity>(); List <OrganizeEntity> organizelist = organizeListJson.ToList <OrganizeEntity>(); #region 除 IEnumerable <WeChatDeptRelationEntity> DeletedList = this.GetDeletedList(organizelist); foreach (var item in DeletedList) { DepartmentDelete departmentDelete = new DepartmentDelete(); departmentDelete.id = item.WeChatDeptId.ToString(); int IsOk = departmentDelete.Send().errcode; if (IsOk == 0) { service.RemoveForm(item.DeptRelationId); } } #endregion #region 添加、编辑 foreach (OrganizeEntity departmentEntity in organizelist) { WeChatDeptRelationEntity weChatDeptRelationEntity = service.GetEntity(departmentEntity.OrganizeId); if (weChatDeptRelationEntity == null) { #region 添加 DepartmentCreate departmentCreate = new DepartmentCreate(); departmentCreate.name = departmentEntity.FullName; departmentCreate.parentid = departmentEntity.ParentId == "0" ? "1" : weChatDeptRelationList.Find(t => t.DeptId == departmentEntity.ParentId).WeChatDeptId.ToString(); string WeChatDeptId = departmentCreate.Send().id; if (WeChatDeptId != null) { weChatDeptRelationEntity = new WeChatDeptRelationEntity(); weChatDeptRelationEntity.DeptRelationId = departmentEntity.OrganizeId; weChatDeptRelationEntity.DeptId = departmentEntity.OrganizeId; weChatDeptRelationEntity.DeptName = departmentEntity.FullName; weChatDeptRelationEntity.WeChatDeptId = WeChatDeptId.ToInt();//企业号创建部门的返回Id weChatDeptRelationList.Add(weChatDeptRelationEntity); service.SaveForm("", weChatDeptRelationEntity); } #endregion } else { #region 编辑 weChatDeptRelationList.Add(weChatDeptRelationEntity); DepartmentUpdate departmentUpdate = new DepartmentUpdate(); departmentUpdate.name = departmentEntity.FullName; departmentUpdate.parentid = departmentEntity.ParentId == "0" ? "1" : weChatDeptRelationList.Find(t => t.DeptId == departmentEntity.ParentId).WeChatDeptId.ToString(); departmentUpdate.id = weChatDeptRelationEntity.WeChatDeptId.ToString(); int IsOk = departmentUpdate.Send().errcode; if (IsOk == 0) { service.SaveForm(weChatDeptRelationEntity.DeptRelationId, weChatDeptRelationEntity); } #endregion } } #endregion }
public IActionResult PutDepartment(int id, DepartmentUpdate model) { var choose = _context.Department.Find(id); _procedure.Department_Update(id, model.Name, model.Budget, model.StartDate, model.InstructorId, choose.RowVersion).Wait(); return(NoContent()); }
private static ValidationMessageCollection OnUpdateFailedFunc(IRepository repository, DbUpdateConcurrencyException dbUpdateEx, DepartmentUpdate.CommandModel commandModel, ref byte[] rowVersion) { var validationMessages = new ValidationMessageCollection(); var entry = dbUpdateEx.Entries.Single(); var databaseEntry = entry.GetDatabaseValues(); if (databaseEntry == null) { validationMessages.Add(string.Empty, "Unable to save changes. The department was deleted by another user."); return validationMessages; } var databaseValues = (Department)databaseEntry.ToObject(); rowVersion = databaseValues.RowVersion; if (databaseValues.Name != commandModel.Name) validationMessages.Add(nameof(commandModel.Name), "Current value: " + databaseValues.Name); if (databaseValues.Budget != commandModel.Budget) validationMessages.Add(nameof(commandModel.Budget), "Current value: " + string.Format("{0:c}", databaseValues.Budget)); if (databaseValues.StartDate != commandModel.StartDate) validationMessages.Add(nameof(commandModel.StartDate), "Current value: " + string.Format("{0:d}", databaseValues.StartDate)); if (databaseValues.InstructorID != commandModel.InstructorID) validationMessages.Add(nameof(commandModel.InstructorID), "Current value: " + repository.GetEntity<Instructor>(p => p.ID == databaseValues.InstructorID.Value).FullName); validationMessages.Add(string.Empty, "The record you attempted to edit " + "was modified by another user after you got the original value. The " + "edit operation was canceled and the current values in the database " + "have been displayed. If you still want to edit this record, click " + "the Save button again. Otherwise click the Back to List hyperlink."); return validationMessages; }
public IHttpActionResult UpdateDepartment([FromBody] DepartmentUpdate department) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!_departmentService.UpdateDepartment(department)) { return(BadRequest($"ID #{department.DepartmentId} does not exist in the database.")); } return(Ok("Department updated.")); }
public async Task<ActionResult> Edit(DepartmentUpdate.CommandModel commandModel) { var request = new DepartmentUpdate.Request(SystemPrincipal.Name, commandModel); var response = await DomainServices.DispatchAsync<DepartmentUpdate.Response>(request); if (!response.HasValidationIssues) return RedirectToAction("Index"); if (response.RowVersion != null) commandModel.RowVersion = response.RowVersion; var instructors = await _QueryRepository.GetEntitiesAsync<Instructor>(new AsNoTrackingQueryStrategy()); ; ViewBag.InstructorID = new SelectList(instructors, "ID", "FullName", commandModel.InstructorID); ModelState.AddRange(response.ValidationDetails.AllValidationMessages); return View(commandModel); }
// Update department #region Update department public static DepartmentUpdate.Response Handle(IRepository repository, DepartmentUpdate.Request request) { var validationDetails = Validator.ValidateRequest(request, repository); if (validationDetails.HasValidationIssues) return new DepartmentUpdate.Response(validationDetails); var commandModel = request.CommandModel; var currentDept = repository.GetEntity<Department>( p => p.DepartmentID == commandModel.DepartmentID, new AsNoTrackingQueryStrategy()); var rowVersion = default(byte[]); var container = currentDept.Modify(request.CommandModel); validationDetails = repository.Save(container, dbUpdateEx => OnUpdateFailedFunc(repository, dbUpdateEx, commandModel, ref rowVersion)); return new DepartmentUpdate.Response(validationDetails, rowVersion); }
public bool UpdateDepartment(DepartmentUpdate model) { using (var ctx = new ApplicationDbContext()) { var entity = ctx .Departments .SingleOrDefault(e => e.DepartmentId == model.DepartmentId); if (entity != null) { entity.Name = model.Name; entity.Building = model.Building; return(ctx.SaveChanges() >= 1); } return(false); } }
public void GetXmlTest() { string expected = @"<?xml version=""1.0"" encoding=""utf-8""?> <function controlid=""unittest""> <update> <DEPARTMENT> <DEPARTMENTID>D1234</DEPARTMENTID> </DEPARTMENT> </update> </function>"; DepartmentUpdate record = new DepartmentUpdate("unittest") { DepartmentId = "D1234", }; this.CompareXml(expected, record); }
public void GetXmlTest() { string expected = @"<?xml version=""1.0"" encoding=""utf-8""?> <function controlid=""unittest""> <update> <DEPARTMENT> <DEPARTMENTID>D1234</DEPARTMENTID> <TITLE>hello world</TITLE> </DEPARTMENT> </update> </function>"; Stream stream = new MemoryStream(); XmlWriterSettings xmlSettings = new XmlWriterSettings(); xmlSettings.Encoding = Encoding.UTF8; xmlSettings.Indent = true; xmlSettings.IndentChars = " "; IaXmlWriter xml = new IaXmlWriter(stream, xmlSettings); DepartmentUpdate record = new DepartmentUpdate("unittest"); record.DepartmentId = "D1234"; record.DepartmentName = "hello world"; record.WriteXml(ref xml); xml.Flush(); stream.Position = 0; StreamReader reader = new StreamReader(stream); Diff xmlDiff = DiffBuilder.Compare(expected).WithTest(reader.ReadToEnd()) .WithDifferenceEvaluator(DifferenceEvaluators.Default) .Build(); Assert.IsFalse(xmlDiff.HasDifferences(), xmlDiff.ToString()); }