public string UpdateDescription(int boardId, int cardId, string description) { if (!User.CheckSecurity(boardId)) { return(AccessDenied()); } //check description for malicious input if (Malicious.IsMalicious(description, Malicious.InputType.TextOnly) == true) { return(Error()); } var query = new Query.Cards(); try { query.UpdateDescription(boardId, cardId, description); return(GetCard(boardId, cardId)); } catch (Exception) { return(Error()); } }
public string GetCard(int boardId, int cardId) { var query = new Query.Cards(); var card = query.GetDetails(boardId, cardId); return(GetCard(boardId, card)); }
public static Query.Models.Card Create(int boardId, int listId, string name, string description = "", DateTime?dateDue = null, string colors = "") { var query = new Query.Cards(); var card = new Query.Models.Card() { boardId = boardId, listId = listId, name = name, colors = colors, description = description, datedue = dateDue, datecreated = DateTime.Now }; try { var id = query.Create(card); card.cardId = id; return(card); } catch (ServiceErrorException) { throw new ServiceErrorException("Error creating new card"); } }
public string Move(int boardId, int listId, int cardId, int[] cardIds) { if (!User.CheckSecurity(boardId)) { return(AccessDenied()); } var query = new Query.Cards(); query.Move(boardId, listId, cardId, cardIds); return(Success()); }
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))); }
public string Archive(int boardId, int cardId) { if (!User.CheckSecurity(boardId)) { return(AccessDenied()); } var query = new Query.Cards(); try { query.Archive(boardId, cardId); } catch (Exception) { return(Error()); } return(Success()); }
public string Restore(int boardId, int cardId) { if (!User.CheckSecurity(boardId)) { return(AccessDenied()); } var query = new Query.Cards(); try { query.Restore(boardId, cardId); return(GetCard(boardId, cardId)); } catch (Exception) { return(Error()); } }
public static Tuple <Query.Models.Card, string> Details(int boardId, int cardId) { Server Server = Server.Instance; var query = new Query.Cards(); try { var card = query.GetDetails(boardId, cardId); var scaffold = new Scaffold("/Views/Card/Kanban/details.html", Server.Scaffold); scaffold.Data["list-name"] = card.listName; scaffold.Data["description"] = card.description; scaffold.Data["no-description"] = card.description.Length > 0 ? "hide" : ""; scaffold.Data["has-description"] = card.description.Length <= 0 ? "hide" : ""; scaffold.Data["archive-class"] = card.archived ? "hide" : ""; scaffold.Data["restore-class"] = card.archived ? "" : "hide"; scaffold.Data["delete-class"] = card.archived ? "" : "hide"; return(new Tuple <Query.Models.Card, string>(card, scaffold.Render())); } catch (Exception) { throw new ServiceErrorException("Error loading card details"); } }
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")); } }