/// <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
        }
Exemple #2
0
        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);
            }
        }
Exemple #8
0
        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());
        }