public static BoardColumnModel Create(UserModel user = null)
        {
            user = user ?? UserFaker.Create();
            var board = BoardFaker.Create(user);

            return(BoardColumnRepository.CreateAndGet(
                       "boardColumnName_" + Rand.SmallInt(),
                       board,
                       Convert.ToInt16(Rand.IntRange(0, 20))
                       ));
        }
Example #2
0
        public static void Run(DL.Model.Project.Project project, User creator)
        {
            if (creator != null)
            {
                ProjectTeamMemberRepository.CreateAndGet(project, creator);
                UserLibraryItemRepository.FindOrCreate(project.Creator(), project);
            }

            ProjectAliasRepository.Create(project);
            ProjectWorkUtils.SetUp(project);

            // Basic boards set up
            var board      = BoardRepository.CreateAndGet("Development", "Basic board", project, creator);
            var todoColumn = BoardColumnRepository.CreateAndGet("TODO", board, 1);

            BoardColumnRepository.CreateAndGet("In progress", board, 2);
            BoardColumnRepository.CreateAndGet("Done", board, 3);
            CardRepository.CreateAndGet(
                "Example card", DefaultCardDescription, 1, todoColumn, creator
                );
        }
        public BoardColumnCrudController()
        {
            Post("/api/v1/board_column/create", _ => {
                var me    = UserRepository.Find(CurrentRequest.UserId);
                var board = BoardRepository.FindByGuid(GetRequestStr("board_guid"));

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "name", "board_guid", "board_order" }),
                    new ExistsInTable("board_guid", "boards", "guid"),
                    new HasPermission(me, board.Project().id, EntityType.Project)
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                var boardOrder = (short)Request.Query["board_order"];

                if (BoardColumnRepository.Find(board, boardOrder) != null)
                {
                    return(HttpResponse.Error(HttpStatusCode.Conflict,
                                              "Board's column with this board's order already exists "));
                }

                var boardColumn = BoardColumnRepository.CreateAndGet(
                    (string)Request.Query["name"],
                    board,
                    boardOrder
                    );

                return(HttpResponse.Item(
                           "board_column", new BoardColumnTransformer().Transform(boardColumn), HttpStatusCode.Created
                           ));
            });

            Patch("/api/v1/board_column/edit", _ => {
                var me          = UserRepository.Find(CurrentRequest.UserId);
                var boardColumn = BoardColumnRepository.FindByGuid(GetRequestStr("board_column_guid"));
                var board       = BoardRepository.Find(boardColumn.board_id);

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "board_column_guid" }),
                    new ExistsInTable("board_column_guid", "board_columns", "guid"),
                    new HasPermission(me, boardColumn.Board().id, EntityType.Board)
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                if (BoardColumnRepository.Find(board, Convert.ToInt16(GetRequestStr("board_order"))) != null)
                {
                    return(HttpResponse.Error(HttpStatusCode.Conflict,
                                              "Board's column with this board's order already exists "));
                }

                boardColumn = BoardColumnRepository.UpdateAndRefresh(boardColumn, new JObject()
                {
                    ["name"]        = GetRequestStr("name"),
                    ["board_order"] = GetRequestStr("board_order")
                });

                return(HttpResponse.Item("board_column", new BoardColumnTransformer().Transform(boardColumn)));
            });

            Delete("/api/v1/board_column/delete", _ => {
                var me          = UserRepository.Find(CurrentRequest.UserId);
                var boardColumn = BoardColumnRepository.FindByGuid(GetRequestStr("board_column_guid"));

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "board_column_guid" }),
                    new ExistsInTable("board_column_guid", "board_columns", "guid"),
                    new HasPermission(me, boardColumn.Board().id, EntityType.Board)
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                boardColumn.Delete();

                return(HttpResponse.Item("board", new BoardColumnTransformer().Transform(boardColumn)));
            });
        }