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);
            }
        }
Example #2
0
        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));
        }