public GenericServiceResult AddColumn(CreateColumnViewModel model, string userId) { try { bool isUserCanChangeBoard = CanUserChangeBoard(userId, model.BoardId); if (!isUserCanChangeBoard) { return(GenericServiceResult.AccessDenied); } Column lastColumn = unitOfWork.Columns.Get(c => c.BoardId == model.BoardId).OrderBy(c => c.Position).LastOrDefault(); int newColumnPosition = lastColumn == null ? 0 : lastColumn.Position + 1; Column column = new Column { Title = model.Title, BoardId = model.BoardId, Position = newColumnPosition }; unitOfWork.Columns.Create(column); return(GenericServiceResult.Success); } catch { return(GenericServiceResult.Error); } }
public ActionResult CreateColumn(CreateColumnViewModel model) { if (!ModelState.IsValid) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(PartialView(model)); } string userId = User.Identity.GetUserId(); GenericServiceResult result = boardService.AddColumn(model, userId); if (result == GenericServiceResult.Error) { Response.StatusCode = (int)HttpStatusCode.BadRequest; ModelState.AddModelError("Error", "Unknown error"); return(PartialView(model)); } if (result == GenericServiceResult.AccessDenied) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(RedirectToAction("Forbidden", "Error")); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); }