Beispiel #1
0
        public IActionResult Update(string code, UpdateBuildingAreaModel model)
        {
            var entity = _service.BuildingAreas.Code(code).FirstOrDefault();

            if (entity == null)
            {
                return(NotFound(AppResult.NotFound()));
            }
            var validationData = _service.ValidateUpdateBuildingArea(User, entity, model);

            if (!validationData.IsValid)
            {
                return(BadRequest(AppResult.FailValidation(data: validationData)));
            }
            using (var transaction = context.Database.BeginTransaction())
            {
                _service.UpdateBuildingArea(entity, model);
                //log event
                var ev = _sysService.GetEventForUpdateBuildingArea(
                    $"Admin {UserEmail} updated area {entity.Name}",
                    User, model);
                _sysService.CreateAppEvent(ev);
                //end log event
                context.SaveChanges();
                transaction.Commit();
            }
            return(NoContent());
        }
        public ValidationData ValidateUpdateBuildingArea(ClaimsPrincipal principal,
                                                         BuildingArea entity, UpdateBuildingAreaModel model)
        {
            var validationData = new ValidationData();

            if (string.IsNullOrWhiteSpace(model.Name))
            {
                validationData = validationData.Fail(mess: "Name required", code: AppResultCode.FailValidation);
            }
            return(validationData);
        }
 public BuildingArea UpdateBuildingArea(BuildingArea entity, UpdateBuildingAreaModel model)
 {
     model.CopyTo(entity);
     return(entity);
 }
Beispiel #4
0
 public AppEvent GetEventForUpdateBuildingArea(string display, ClaimsPrincipal principal, UpdateBuildingAreaModel model)
 {
     return(new AppEvent
     {
         Id = Guid.NewGuid().ToString(),
         DisplayContent = display,
         Data = JsonConvert.SerializeObject(model),
         HappenedTime = DateTime.UtcNow,
         Type = "UpdateBuildingArea",
         UserId = principal.Identity.Name
     });
 }