public BoardGenerator(BoardSettingsViewModel boardSettings) { if (boardSettings == null) { throw new ArgumentNullException("boardSettings", "boardSettings is null."); } _BoardSettings = boardSettings; }
public OperationResult <BoardSettingsViewModel> GetBoardSettings(string userId, int boardId) { try { bool isUserCanChangeBoard = CanUserChangeBoard(userId, boardId); if (!isUserCanChangeBoard) { return(new OperationResult <BoardSettingsViewModel> { Model = null, Message = GenericServiceResult.AccessDenied }); } Board board = unitOfWork.Boards.Get(boardId); BoardSettings boardSettings = unitOfWork.BoardSettings.Get(boardId); Project project = unitOfWork.Projects.Get(board.ProjectId); List <ColumnInfo> columns = GetColumns(boardId); List <Board> boards = unitOfWork.Boards.Get(b => b.ProjectId == project.Id && b.Id != board.Id).ToList(); List <BoardInfo> boardInfos = new List <BoardInfo>(); foreach (var b in boards) { BoardInfo boardInfo = new BoardInfo { Id = b.Id, Title = b.Title }; boardInfos.Add(boardInfo); } BoardSettingsViewModel model = new BoardSettingsViewModel { Title = board.Title, BoardId = board.Id, AccessToChangeBoard = (TaskSettingsRole)boardSettings.AccessToChangeBoard, AccessToChangeTask = (TaskSettingsRole)boardSettings.AccessToChangeTask, AccessToCreateTask = (TaskSettingsRole)boardSettings.AccessToCreateTask, AccessToDeleteTask = (TaskSettingsRole)boardSettings.AccessToDeleteTask, ProjectId = project.Id, ProjectTitle = project.Title, Columns = columns, Boards = boardInfos }; return(new OperationResult <BoardSettingsViewModel> { Model = model, Message = GenericServiceResult.Success }); } catch { return(new OperationResult <BoardSettingsViewModel> { Model = null, Message = GenericServiceResult.Error }); } }
public GenericServiceResult UpdateBoardSettings(BoardSettingsViewModel model, string userId) { try { bool isUserCanChangeBoard = CanUserChangeBoard(userId, model.BoardId); if (!isUserCanChangeBoard) { return(GenericServiceResult.AccessDenied); } Board board = unitOfWork.Boards.Get(model.BoardId); BoardSettings boardSettings = unitOfWork.BoardSettings.Get(model.BoardId); board.Title = model.Title; boardSettings.AccessToChangeBoard = (int)model.AccessToChangeBoard; boardSettings.AccessToChangeTask = (int)model.AccessToChangeTask; boardSettings.AccessToCreateTask = (int)model.AccessToCreateTask; boardSettings.AccessToDeleteTask = (int)model.AccessToDeleteTask; unitOfWork.BoardSettings.Update(boardSettings); unitOfWork.Boards.Update(board); foreach (var column in model.Columns) { Column databaseColumn = unitOfWork.Columns.Get(column.Id); databaseColumn.Position = column.Position; databaseColumn.Title = column.Title; unitOfWork.Columns.Update(databaseColumn); } int projectId = unitOfWork.Projects.Get(board.ProjectId).Id; string creatorId = unitOfWork.ProjectUser.GetFirstOrDefaultWhere(p => p.ProjectId == projectId && p.Role == (int)ProjectRoles.Administrator).UserId; string projectTitle = unitOfWork.Projects.Get(projectId).Title; NotificationMessage message = new NotificationMessage { Title = $"{projectTitle}", Message = $"Board {board.Title} settings were changed", Initiator = userId, SendTo = creatorId }; Notifyer.Notify(message); return(GenericServiceResult.Success); } catch { return(GenericServiceResult.Error); } }
public ActionResult UpdateSettings(BoardSettingsViewModel model) { string userId = User.Identity.GetUserId(); var result = boardService.UpdateBoardSettings(model, userId); if (result == GenericServiceResult.AccessDenied) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(RedirectToAction("Forbidden", "Error")); } if (result == GenericServiceResult.Error) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(RedirectToAction("BadRequest", "Error")); } return(RedirectToAction("Settings", new { boardId = model.BoardId })); }