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); }
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 }); }