public IActionResult ChangeRoomHangingStatus( ChangeRoomHangingStatusModel model) { Room entity = null; if (model.Code != null) { entity = _service.Rooms.Code(model.Code).FirstOrDefault(); if (entity == null) { return(NotFound(AppResult.NotFound())); } } var validationData = _service.ValidateChargeRoomHangingStatus(User, entity, model); if (!validationData.IsValid) { return(BadRequest(AppResult.FailValidation(data: validationData))); } if (entity != null && _service.ChangeRoomHangingStatus(entity, model.Hanging, UserId)) { context.SaveChanges(); } else { _service.ReleaseHangingRoomByHangingUserId(model.ReleaseHangingUserId); context.SaveChanges(); } return(NoContent()); }
public ValidationData ValidateChargeRoomHangingStatus( ClaimsPrincipal principal, Room entity, ChangeRoomHangingStatusModel model) { var validationData = new ValidationData(); var userId = principal.Identity.Name; var now = DateTime.UtcNow; if (entity != null) { if (entity.HangingEndTime > now && model.Hanging) { validationData.Fail(mess: "Room is already hanged", AppResultCode.FailValidation); } } return(validationData); }