コード例 #1
0
        public string Move(int boardId, int[] listIds)
        {
            if (!User.CheckSecurity(boardId))
            {
                return(AccessDenied());
            }
            var query = new Query.Lists();

            query.Move(boardId, listIds);
            return(Success());
        }
コード例 #2
0
        public static void Archive(int listId)
        {
            var query = new Query.Lists();

            try
            {
                query.Archive(listId);
            }
            catch (Exception)
            {
                throw new ServiceErrorException("Error archiving list");
            }
        }
コード例 #3
0
        public string LoadList(int listId)
        {
            var query = new Query.Lists();
            var list  = query.GetDetails(listId);

            if (!User.CheckSecurity(list.boardId))
            {
                return(AccessDenied());
            }
            var cards = new Query.Cards();

            return(Common.Platform.List.Kanban.RenderList(list, cards.GetList(list.boardId, listId, 1, 100)));
        }
コード例 #4
0
        public static int Create(int boardId, string name, int sort = 0)
        {
            var query = new Query.Lists();

            try
            {
                return(query.CreateList(
                           new Query.Models.List()
                {
                    boardId = boardId,
                    name = name,
                    sort = sort
                }
                           ));
            }
            catch (Exception)
            {
                throw new ServiceErrorException("Error creating list");
            }
        }
コード例 #5
0
ファイル: Trello.cs プロジェクト: psvdjack/Kandu
        public override string Render(string[] path, string body = "", object metadata = null)
        {
            if (!CheckSecurity())
            {
                return(AccessDenied());
            }                                                //check security

            if (context.Request.QueryString.Value.Contains("?upload"))
            {
                //uploaded json file
                var files = context.Request.Form.Files;
                if (files.Count > 0)
                {
                    Models.Trello.Board board = null;
                    try
                    {
                        var ms = new MemoryStream();
                        files[0].CopyTo(ms);
                        ms.Position = 0;
                        var sr  = new StreamReader(ms);
                        var txt = sr.ReadToEnd();

                        board = (Models.Trello.Board)Serializer.ReadObject(txt.ToString(), typeof(Models.Trello.Board));
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }

                    if (board != null)
                    {
                        //show success page in iframe
                        var scaffold = new Scaffold("/Views/Import/Trello/success.html", Server.Scaffold);
                        scaffold.Data["name"] = board.name;

                        //import board
                        var boards    = new Query.Boards();
                        var lists     = new Query.Lists();
                        var cards     = new Query.Cards();
                        var merge     = context.Request.QueryString.Value.Contains("merge");
                        var boardType = context.Request.Query.ContainsKey("type") ? int.Parse(context.Request.Query["type"]) : 0;
                        var sort      = 0;
                        var sortCard  = 0;
                        var bgColor   = board.prefs.backgroundColor != null ? board.prefs.backgroundColor : board.prefs.backgroundBottomColor;
                        if (bgColor == null)
                        {
                            bgColor = board.prefs.backgroundTopColor;
                        }
                        var boardId = boards.Import(new Query.Models.Board()
                        {
                            name         = board.name,
                            archived     = board.closed,
                            color        = bgColor,
                            datecreated  = board.actions.Last().date,
                            lastmodified = board.dateLastActivity,
                            ownerId      = User.userId,
                            favorite     = board.pinned,
                            security     = (short)(board.prefs.permissionLevel == "private" ? 1 : 0),
                            type         = (Query.Models.Board.BoardType)boardType
                        }, User.userId, merge);

                        if (!Utility.Objects.IsEmpty(boardId))
                        {
                            //import each list
                            sort = 0;
                            board.lists.ForEach((list) =>
                            {
                                if (list.closed == false)
                                {
                                    var listId = lists.Import(new Query.Models.List()
                                    {
                                        boardId = boardId,
                                        name    = list.name,
                                        sort    = sort
                                    }, merge);

                                    //import cards for each list
                                    sortCard = 0;
                                    board.cards.FindAll((c) => c.idList == list.id).ForEach((card) =>
                                    {
                                        if (card.closed == false)
                                        {
                                            var cardDate = board.actions.FindLast((a) => a.data != null ? (a.data.card != null ? (a.data.card.id != null ? a.data.card.id == card.id : false) : false) : false);
                                            cards.Import(new Query.Models.Card()
                                            {
                                                boardId     = boardId,
                                                archived    = card.closed,
                                                colors      = string.Join(",", card.labels.Select((a) => a.color).ToArray()),
                                                datecreated = cardDate != null ? cardDate.date : DateTime.Now,
                                                datedue     = card.due,
                                                description = card.desc,
                                                listId      = listId,
                                                name        = card.name,
                                                sort        = sortCard,
                                                type        = 0
                                            }, merge);

                                            //import checklists for each card
                                            sortCard++;
                                        }
                                    });
                                    sort++;
                                }
                            });
                        }

                        return(scaffold.Render());
                    }
                    else
                    {
                        return("Could not parse json file correctly");
                    }
                }

                //show upload form in iframe
                return(Server.LoadFileFromCache("/Views/Import/Trello/trello.html"));
            }
            else
            {
                //show upload form in iframe
                return(Server.LoadFileFromCache("/Views/Import/Trello/trello.html"));
            }
        }