public CommandResult <BoardColumn> Execute(RedfernDb db)
        {
            Board board = db.Boards.Find(this.BoardId);

            BoardColumn archiveColumn = board.Columns.Where(c => c.Name == "Archived").SingleOrDefault();

            BoardColumn column = db.BoardColumns.Create();

            column.BoardId  = this.BoardId;
            column.Name     = this.Name;
            column.Sequence = archiveColumn != null ? archiveColumn.Sequence : board.Columns.Count - 1;
            column.Hidden   = false;
            column.Expanded = true;
            column          = db.BoardColumns.Add(column);

            if (archiveColumn != null)
            {
                archiveColumn.Sequence++;
            }

            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("created");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("column", column.ColumnId.ToString(), column.Name, String.Format(@"/board/{0}", board.BoardId));
            activity.SetContext("board", column.BoardId.ToString(), column.Board.Name, String.Format(@"/board/{0}", board.BoardId));
            activity.SetDescription("{actor} created new column {object} in board {context}.");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <BoardColumn>(column, db, activity));
        }
Esempio n. 2
0
        public CommandResult <CardComment> Execute(RedfernDb db)
        {
            CardComment comment = db.CardComments.Create();

            comment.CardId        = this.CardId;
            comment.Comment       = this.Comment;
            comment.CommentDate   = DateTime.UtcNow;
            comment.CommentByUser = db.Context.ClientUserName;
            comment = db.CardComments.Add(comment);
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("added");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("comment", comment.CommentId.ToString(), comment.Comment.Substring(0, comment.Comment.Length < 50 ? comment.Comment.Length - 1 : 45),
                               String.Format(@"/board/{0}/card/{1}/comment/{2}", comment.Card.BoardId.ToString(), comment.Card.CardId.ToString(), comment.CommentId.ToString()));
            activity.SetTarget("card", comment.CardId.ToString(), comment.Card.Title, "");
            activity.SetContext("board", comment.Card.BoardId.ToString(), comment.Card.Board.Name, String.Format(@"/board/{0}", comment.Card.BoardId));
            activity.SetDescription("{actorlink} added comment to {target} in {context}");
            activity.AdditionalData = comment.Comment;
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <CardComment>(comment, db, activity));
        }
Esempio n. 3
0
        public CommandResult <bool> Execute(RedfernDb db)
        {
            BoardMember member = db.BoardMembers.Find(this.BoardMemberId);

            if (member == null)
            {
                return(this.CommandResult <bool>(false, db, "Member not found."));
            }

            // else

            // create the activity
            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("removed");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("member", member.BoardMemberId.ToString(), db.GetUserFullName(member.UserName), String.Format(@"/profile/{0}", member.UserName));
            activity.SetContext("board", member.BoardId.ToString(), member.Board.Name, String.Format(@"/board/{0}", member.BoardId));
            activity.SetDescription("{actorlink} removed {object} from board {contextlink}");
            activity = db.Activities.Add(activity);

            // remove board member
            db.BoardMembers.Remove(member);
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, activity));
        }
Esempio n. 4
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this.CardId);

            card.DueDate = this.DueDate;
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            if (this.DueDate.HasValue)
            {
                activity.SetVerb("set");
            }
            else
            {
                activity.SetVerb("unset");
            }
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetAtrribute("due date");
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actorlink} {verb} {attribute} of card {objectlink} in {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
        public CommandResult <BoardColumn> Execute(RedfernDb db)
        {
            BoardColumn column = db.BoardColumns.Find(this._columnId);

            if (_nameUpdated)
            {
                column.Name = this._name;
            }
            if (_hiddenUpdated)
            {
                column.Hidden = this._hidden;
            }
            db.SaveChanges();

            Activity activity;

            if (_nameUpdated)
            {
                activity = CreateUpdateColumnNameActivity(column, db);
            }
            else if (_hiddenUpdated && this._hidden)
            {
                activity = CreateHideColumnActivity(column, db);
            }
            else if (_hiddenUpdated && !this._hidden)
            {
                activity = CreateUnhidColumnActivity(column, db);
            }
            else
            {
                activity = CreateUpdateColumnPropertyActivity(column, db);
            }

            return(this.CommandResult <BoardColumn>(column, db, activity));
        }
        private Activity CreateMoveCardActivity(Card card, RedfernDb db, BoardColumn targetColumn = null)
        {
            // create an activity
            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("moved");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetSource("column", card.ColumnId.ToString(), card.Column.Name, "");
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            if (targetColumn != null)
            {
                activity.SetTarget("column", targetColumn.ColumnId.ToString(), targetColumn.Name, "");
                activity.SetDescription("{actor} moved card {object} from {source} to {target} in board {context}.");
            }
            else
            {
                activity.SetDescription("{actorlink} moved card {object} in board {context}.");
            }


            activity = db.Activities.Add(activity);
            return(activity);
        }
Esempio n. 7
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Board board = db.Boards.Find(this.BoardId);

            Card card = db.Cards.Create();

            card.BoardId    = this.BoardId;
            card.ColumnId   = this.ColumnId;
            card.Title      = this.Title;
            card.Sequence   = this.Sequence;
            card.CardTypeId = board.CardTypes.Where(ct => ct.ColorCode == "amber").SingleOrDefault().CardTypeId;
            card            = db.Cards.Add(card);
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("added");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"#/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetTarget("column", card.ColumnId.ToString(), card.Column.Name, "");
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actorlink} added card {objectlink} to {target} in {context}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
Esempio n. 8
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Card        card           = db.Cards.Find(this.CardId);
            BoardColumn archivedColumn = db.BoardColumns.Where(c => c.Name == "Archived" && c.BoardId == card.BoardId).SingleOrDefault();

            if (archivedColumn == null)
            {
                archivedColumn          = db.BoardColumns.Create();
                archivedColumn.BoardId  = card.BoardId;
                archivedColumn.Name     = "Archived";
                archivedColumn.Sequence = card.Board.Columns.Count + 1;
                archivedColumn.Hidden   = true;
                archivedColumn          = db.BoardColumns.Add(archivedColumn);
                db.SaveChanges();
            }

            card.ColumnId     = archivedColumn.ColumnId;
            card.Sequence     = archivedColumn.Cards.Count + 1;
            card.ArchivedDate = DateTime.UtcNow;
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("archived");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actorlink} archived card {objectlink} in {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
Esempio n. 9
0
        public CommandResult <CardTask> Execute(RedfernDb db)
        {
            CardTask task = db.CardTasks.Create();

            task.CardId         = this.CardId;
            task.Description    = this.Description;
            task.AssignedToUser = this.AssignedToUser;
            task.AssignedDate   = this.AssignedDate;
            task.DueDate        = this.DueDate;
            task.TaskNotes      = this.TaskNotes;
            db.CardTasks.Add(task);
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("added");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("task", task.CardTaskId.ToString(), task.Description.Substring(0, task.Description.Length < 30 ? task.Description.Length - 1 : 25), "");
            activity.SetTarget("card", task.CardId.ToString(), task.Card.Title, String.Format(@"#/board/{0}/card/{1}", task.Card.BoardId.ToString(), task.CardId.ToString()));
            activity.SetContext("board", task.Card.BoardId.ToString(), task.Card.Board.Name, String.Format(@"/board/{0}", task.Card.BoardId));
            activity.SetDescription("{actorlink} added task {objectlink} to card {targetlink} in {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <CardTask>(task, db, activity));
        }
Esempio n. 10
0
        public CommandResult <BoardMember> Execute(RedfernDb db)
        {
            Activity    activity = null;
            BoardMember member   = db.BoardMembers.Where(m => m.BoardId == this.BoardId && m.UserName == this.UserName).SingleOrDefault();

            if (member == null)
            {
                member          = db.BoardMembers.Create();
                member.BoardId  = this.BoardId;
                member.UserName = this.UserName;
                member.Role     = BoardMemberRole.Contributor;
                member          = db.BoardMembers.Add(member);
                db.SaveChanges();

                activity = db.Activities.Create();
                activity.ActivityDate = DateTime.UtcNow;
                activity.SetVerb("inlcuded");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("member", member.BoardMemberId.ToString(), db.GetUserFullName(member.UserName), String.Format(@"/profile/{0}", member.UserName));
                activity.SetContext("board", member.BoardId.ToString(), member.Board.Name, String.Format(@"/board/{0}", member.BoardId));
                activity.SetDescription("{actorlink} included member {object} to {context}");
                activity = db.Activities.Add(activity);
                db.SaveChanges();
            }
            else
            {
            }

            return(this.CommandResult <BoardMember>(member, db, activity));
        }
Esempio n. 11
0
        public CommandResult <CardAttachment> Execute(RedfernDb db)
        {
            CardAttachment attachment = db.CardAttachments.Create();

            attachment.CardId        = this.CardId;
            attachment.FileName      = this.FileName;
            attachment.FileExtension = this.FileExtension;
            attachment.ContentType   = this.ContentType;
            attachment.FileContent   = this.FileContent;
            attachment = db.CardAttachments.Add(attachment);
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("attached");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("attachment", attachment.CardAttachmentId.ToString(), attachment.FileName, String.Format(@"/api/attachment/{0}", attachment.CardAttachmentId.ToString()));
            activity.SetTarget("card", attachment.CardId.ToString(), attachment.Card.Title, String.Format(@"/board/{0}/card/{1}", attachment.Card.BoardId.ToString(), attachment.CardId.ToString()));
            activity.SetContext("board", attachment.Card.BoardId.ToString(), attachment.Card.Board.Name, String.Format(@"/board/{0}", attachment.Card.BoardId));
            activity.SetDescription("{actorlink} attached file {objectlink} to card {targetlink} in {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <CardAttachment>(attachment, db, activity));
        }
Esempio n. 12
0
        public CommandResult <bool> Execute(RedfernDb db)
        {
            BoardColumn column = db.BoardColumns.Find(this.ColumnId);

            try
            {
                Activity activity = db.Activities.Create();
                activity.ActivityDate = DateTime.UtcNow;
                activity.SetVerb("deleted");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("column", column.ColumnId.ToString(), column.Name, "");
                activity.SetContext("board", column.BoardId.ToString(), column.Board.Name, String.Format(@"/board/{0}", column.BoardId));
                activity.SetDescription("{actorlink} deleted column {object} in {context}");
                activity = db.Activities.Add(activity);
                db.SaveChanges();

                db.BoardColumns.Remove(column);
                db.SaveChanges();

                return(this.CommandResult <bool>(true, db, activity));
            }
            catch
            {
                return(this.CommandResult <bool>(false, db));
            }
        }
        public CommandResult <bool> Execute(RedfernDb db)
        {
            Notification notification = db.Notifications.Find(this.NotificationId);

            db.Notifications.Remove(notification);
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, "Notification deleted."));
        }
Esempio n. 14
0
        public CommandResult <bool> Execute(RedfernDb db)
        {
            BoardMember member = db.BoardMembers.Where(m => m.BoardId == this.BoardId && m.UserName == this.UserName).SingleOrDefault();

            if (member != null)
            {
                member.LastAccessedDate = DateTime.UtcNow;
            }
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, activityDate: DateTime.UtcNow, actorId: db.Context.ClientUserName, description: "LastAccessedDate was updated"));
        }
        private Activity CreateUpdateColumnNameActivity(BoardColumn column, RedfernDb db)
        {
            Activity activity = db.CreateActivity();

            activity.SetVerb("renamed");
            activity.SetObject("column", column.ColumnId.ToString(), column.Name, "");
            activity.SetContext("board", column.BoardId.ToString(), column.Board.Name, String.Format(@"/board/{0}", column.BoardId));
            activity.SetDescription("{actorlink} renamed column {object} in board {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();
            return(activity);
        }
Esempio n. 16
0
        private Activity CreateArchiveCardActivity(Card card, RedfernDb db)
        {
            // create an activity
            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("archived");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actor} arvived card {object} in board {context}.");
            activity = db.Activities.Add(activity);
            return(activity);
        }
        private Activity CreateMoveColumnActivity(BoardColumn column, RedfernDb db)
        {
            // create an activity
            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("moved");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("column", column.ColumnId.ToString(), column.Name, "");
            activity.SetContext("board", column.BoardId.ToString(), column.Board.Name, String.Format(@"/board/{0}", column.BoardId));
            activity.SetDescription("{actor} moved card {object} in board {context}.");
            activity = db.Activities.Add(activity);
            db.SaveChanges();
            return(activity);
        }
Esempio n. 18
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this._cardId);

            if (_boardIdChanged)
            {
                card.BoardId = this.BoardId;
            }
            if (_columnIdChanged)
            {
                card.ColumnId = this.ColumnId;
            }
            if (_titleChanged)
            {
                card.Title = this.Title;
            }
            if (_descriptionChanged)
            {
                card.Description = this.Description;
            }
            if (_cardTypeIdChanged)
            {
                card.CardTypeId = this.CardTypeId;
            }
            if (_assignedToUserChanged)
            {
                card.AssignedToUser = this.AssignedToUser;
            }
            if (_dueDateChanged)
            {
                card.DueDate = this.DueDate;
            }

            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("updated");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actorlink} updated card {objectlink} in {contextlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
        public CommandResult <Notification> Execute(RedfernDb db)
        {
            Notification notification = db.Notifications.Create();

            notification.NotificationDate  = DateTime.UtcNow;
            notification.Message           = this.Message;
            notification.SenderUser        = this.SenderUser;
            notification.RecipientUser     = this.RecipientUser;
            notification.NotificationType  = this.NotificationType;
            notification.ObjectType        = this.ObjectType;
            notification.ObjectId          = this.ObjectId;
            notification.ObjectDescription = this.ObjectDescription;
            notification = db.Notifications.Add(notification);
            db.SaveChanges();

            return(this.CommandResult <Notification>(notification, db, "New notification created."));
        }
Esempio n. 20
0
        public CommandResult <CardType> Execute(RedfernDb db)
        {
            CardType cardType = db.CardTypes.Find(this._cardTypeId);

            if (_boardIdChanged)
            {
                cardType.BoardId = this.BoardId;
            }
            if (_nameChanged)
            {
                cardType.Name = this.Name;
            }
            if (_colorCodeChanged)
            {
                cardType.ColorCode = this.ColorCode;
            }
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;

            if (_nameChanged)
            {
                activity.SetVerb("renamed");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("color", cardType.ColorCode, cardType.ColorCode, "");
                activity.SetTarget("name", cardType.Name, cardType.Name, "");
                activity.SetContext("board", cardType.BoardId.ToString(), cardType.Board.Name, "");
                activity.SetDescription("{actorlink} renamed color {object} to {target} in {contextlink}");
            }
            else
            {
                activity.SetVerb("updated");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("cardtype", cardType.CardTypeId.ToString(), cardType.Name, "");
                activity.SetContext("board", cardType.BoardId.ToString(), cardType.Board.Name, "");
                activity.SetDescription("{actorlink} updated cardtype {objectlink} in {contextlink}");
            }


            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <CardType>(cardType, db, activity));
        }
Esempio n. 21
0
        public CommandResult <bool> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this.CardId);

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("deleted");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("<b>{actorlink}</b> deleted <b>{object}</b> from <b>{contextlink}</b>");
            activity = db.Activities.Add(activity);

            db.Cards.Remove(card);
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, activity));
        }
        public CommandResult <BoardColumn> Execute(RedfernDb db)
        {
            int         counter = 1;
            BoardColumn column, movedColumn = null;

            foreach (var id in ColumnIds)
            {
                column = db.BoardColumns.Find(id);
                if (MovedColumnId == column.ColumnId)
                {
                    movedColumn = column;
                }
                column.Sequence = counter;
                counter++;
            }
            db.SaveChanges();

            return(this.CommandResult <BoardColumn>(movedColumn, db, CreateMoveColumnActivity(movedColumn, db)));
        }
Esempio n. 23
0
        public CommandResult<CardTag> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this.CardId);

            CardTag cardTag = db.CardTags.Where(ct => ct.CardId == this.CardId && ct.Tag.TagName == this.TagName).FirstOrDefault();

            if (cardTag == null)
            {
                Tag tag = db.Tags.Where(t => t.TagName == this.TagName && t.BoardId == card.BoardId).FirstOrDefault();
                if (tag == null)
                {
                    tag = db.Tags.Create();
                    tag.TagName = this.TagName;
                    tag.BoardId = card.BoardId;
                    tag = db.Tags.Add(tag);
                    db.SaveChanges();
                }

                cardTag = db.CardTags.Create();
                cardTag.CardId = this.CardId;
                cardTag.TagId = tag.TagId;
                cardTag = db.CardTags.Add(cardTag);
                db.SaveChanges();

                Activity activity = db.Activities.Create();
                activity.ActivityDate = DateTime.UtcNow;
                activity.SetVerb("added");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("tag", cardTag.CardTagId.ToString(), cardTag.Tag.TagName, String.Format(@"#/board/{0}/card/{1}", card.BoardId, card.CardId));
                activity.SetTarget("card", cardTag.CardId.ToString(), cardTag.Card.Title, "");
                activity.SetContext("board", cardTag.Card.BoardId.ToString(), cardTag.Card.Board.Name, String.Format(@"/board/{0}", cardTag.Card.BoardId));
                activity.SetDescription("{actorlink} added tag to {target} in {context}");
                activity = db.Activities.Add(activity);
                db.SaveChanges();

                return this.CommandResult<CardTag>(cardTag, db, activity);
            }
            else
            {
                return this.CommandResult<CardTag>(cardTag, db);
            }
            
        }
        public CommandResult <bool> Execute(RedfernDb db)
        {
            CardAttachment attachment = db.CardAttachments.Find(this.CardAttachmentId);

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("removed");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("attachment", attachment.CardAttachmentId.ToString(), attachment.FileName, "");
            activity.SetSource("card", attachment.CardId.ToString(), attachment.Card.Title, "");
            activity.SetContext("board", attachment.Card.BoardId.ToString(), attachment.Card.Board.Name, String.Format(@"/board/{0}", attachment.Card.BoardId));
            activity.SetDescription("{actorlink} deleted <b>{object}</b> from {sourcelink} in {contextlink}");
            activity = db.Activities.Add(activity);

            db.CardAttachments.Remove(attachment);
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, activity));
        }
Esempio n. 25
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this.CardId);

            card.ArchivedDate = null;
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("unarchived");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
            activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
            activity.SetDescription("{actorlink} unarchived {objectlink} in {contextlink}.");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
Esempio n. 26
0
        public CommandResult <bool> Execute(RedfernDb db)
        {
            CardTask task = db.CardTasks.Find(this.CardTaskId);

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("deleted");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("task", task.CardTaskId.ToString(), task.Description.Substring(0, task.Description.Length < 30 ? task.Description.Length - 1 : 25), "");
            activity.SetTarget("card", task.CardId.ToString(), task.Card.Title, String.Format(@"#/board/{0}/card/{1}", task.Card.BoardId.ToString(), task.CardId.ToString()));
            activity.SetContext("board", task.Card.BoardId.ToString(), task.Card.Board.Name, String.Format(@"/board/{0}", task.Card.BoardId));
            activity.SetDescription("<b>{actorlink}</b> deleted <b>{object}</b> from <b>{contextlink}</b>");
            activity = db.Activities.Add(activity);

            db.CardTasks.Remove(task);
            db.SaveChanges();

            return(this.CommandResult <bool>(true, db, activity));
        }
Esempio n. 27
0
        public CommandResult <Board> Execute(RedfernDb db)
        {
            Board board = db.Boards.Find(this.BoardId);

            board.ArchiveDate = DateTime.UtcNow;
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("archived");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("board", board.BoardId.ToString(), board.Name, String.Format(@"/board/{0}", board.BoardId));
            activity.SetContext("board", board.BoardId.ToString(), board.Name, String.Format(@"/board/{0}", board.BoardId));
            activity.SetDescription("{actorlink} archived board {objectlink}");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Board>(board, db, activity));
        }
Esempio n. 28
0
        public CommandResult <Card> Execute(RedfernDb db)
        {
            Card card = db.Cards.Find(this.CardId);

            card.AssignedToUser = this.AssignedToUser;
            db.SaveChanges();

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            if (!String.IsNullOrEmpty(card.AssignedToUser))
            {
                if (card.AssignedToUser == db.Context.ClientUserName)
                {
                    activity.SetVerb("claimed");
                    activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
                    activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
                    activity.SetDescription("{actorlink} claimed card {objectlink} in {contextlink}");
                }
                else
                {
                    activity.SetVerb("assigned");
                    activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
                    activity.SetTarget("member", card.AssignedToUser.ToString(), db.GetUserFullName(card.AssignedToUser), String.Format(@"/profile/{0}", card.AssignedToUser));
                    activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
                    activity.SetDescription("{actorlink} assigned card {objectlink} to {target} in {contextlink}");
                }
            }
            else
            {
                activity.SetVerb("unassigned");
                activity.SetObject("card", card.CardId.ToString(), card.Title, String.Format(@"/board/{0}/card/{1}", card.BoardId, card.CardId));
                activity.SetContext("board", card.BoardId.ToString(), card.Board.Name, String.Format(@"/board/{0}", card.BoardId));
                activity.SetDescription("{actorlink} unassigned card {objectlink} in {contextlink}");
            }
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Card>(card, db, activity));
        }
Esempio n. 29
0
        public CommandResult <Board> Execute(RedfernDb db)
        {
            Board board = db.Boards.Find(this.BoardId);

            board.IsPublic = this.IsPublic;
            db.SaveChanges();

            string visibility = board.IsPublic ? "public" : "private";

            Activity activity = db.Activities.Create();

            activity.ActivityDate = DateTime.UtcNow;
            activity.SetVerb("changed");
            activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
            activity.SetObject("board", board.BoardId.ToString(), board.Name, String.Format(@"/board/{0}", board.BoardId));
            activity.SetDescription("{actorlink} change visibility of board {objectlink} to " + visibility + ".");
            activity = db.Activities.Add(activity);
            db.SaveChanges();

            return(this.CommandResult <Board>(board, db, activity));
        }
Esempio n. 30
0
        public CommandResult <string> Execute(RedfernDb db)
        {
            Activity activity = null;
            CardTag  cardTag  = db.CardTags.Where(ct => ct.CardId == this.CardId && ct.Tag.TagName == this.TagName).First();

            if (cardTag != null)
            {
                activity = db.Activities.Create();
                activity.ActivityDate = DateTime.UtcNow;
                activity.SetVerb("removed");
                activity.SetActor(db.Context.ClientUserName, db.Context.ClientUserFullName);
                activity.SetObject("tag", cardTag.CardTagId.ToString(), cardTag.Tag.TagName, String.Format(@"#/board/{0}/card/{1}", cardTag.Card.BoardId, cardTag.CardId));
                activity.SetSource("card", cardTag.CardId.ToString(), cardTag.Card.Title, "");
                activity.SetContext("board", cardTag.Card.BoardId.ToString(), cardTag.Card.Board.Name, String.Format(@"/board/{0}", cardTag.Card.BoardId));
                activity.SetDescription("{actorlink} removed tag from {source} in {context}");
                activity = db.Activities.Add(activity);

                db.CardTags.Remove(cardTag);
                db.SaveChanges();
            }

            return(this.CommandResult <string>(this.TagName, db, activity));
        }