public MessageWrapper(ProjectApiBase projectApiBase, Message message)
        {
            Id = message.ID;
            if (message.Project != null)
            {
                ProjectOwner = new SimpleProjectWrapper(message.Project);
            }
            Title   = message.Title;
            Text    = message.Description;
            Created = (ApiDateTime)message.CreateOn;
            Updated = (ApiDateTime)message.LastModifiedOn;

            if (projectApiBase.Context.GetRequestValue("simple") != null)
            {
                CreatedById = message.CreateBy;
                UpdatedById = message.LastModifiedBy;
            }
            else
            {
                CreatedBy = projectApiBase.GetEmployeeWraper(message.CreateBy);
                if (message.CreateBy != message.LastModifiedBy)
                {
                    UpdatedBy = projectApiBase.GetEmployeeWraper(message.LastModifiedBy);
                }
            }

            CanEdit          = projectApiBase.ProjectSecurity.CanEdit(message);
            CommentsCount    = message.CommentsCount;
            Status           = (int)message.Status;
            CanCreateComment = projectApiBase.ProjectSecurity.CanCreateComment(message);
        }
예제 #2
0
        public MessageWrapperFull(ProjectApiBase projectApiBase, Message message, ProjectWrapperFull project, IEnumerable <EmployeeWraperFull> subscribers, IEnumerable <FileWrapper> files, IEnumerable <CommentInfo> comments) :
            this(projectApiBase, message, project, subscribers)
        {
            Files = files.ToList();
            var creator = CoreContext.UserManager.GetUsers(message.CreateBy);

            Comments = new List <CommentInfo>(comments.Count() + 1)
            {
                new CommentInfo
                {
                    TimeStamp             = message.CreateOn,
                    TimeStampStr          = message.CreateOn.Ago(),
                    CommentBody           = HtmlUtility.GetFull(message.Description),
                    CommentID             = SecurityContext.CurrentAccount.ID.ToString() + "1",
                    UserID                = message.CreateBy,
                    UserFullName          = creator.DisplayUserName(),
                    UserProfileLink       = creator.GetUserProfilePageURL(),
                    Inactive              = false,
                    IsEditPermissions     = false,
                    IsResponsePermissions = false,
                    IsRead                = true,
                    UserAvatarPath        = creator.GetBigPhotoURL(),
                    UserPost              = creator.Title,
                    CommentList           = new List <CommentInfo>()
                }
            };
            Comments.AddRange(comments);
        }
예제 #3
0
 public TaskWrapper(ProjectApiBase projectApiBase, Task task, Milestone milestone)
     : this(projectApiBase, task)
 {
     if (milestone != null && task.Milestone != 0)
     {
         Milestone = new SimpleMilestoneWrapper(milestone);
     }
 }
예제 #4
0
 public ParticipantFullWrapper(ProjectApiBase projectApiBase, ParticipantFull participant)
 {
     Project     = projectApiBase.ProjectWrapperSelector(participant.Project);
     Participant = projectApiBase.GetEmployeeWraper(participant.ID);
     Created     = participant.Created;
     Updated     = participant.Updated;
     Removed     = participant.Removed;
 }
예제 #5
0
 public MessageWrapperFull(ProjectApiBase projectApiBase, Message message, ProjectWrapperFull project, IEnumerable <EmployeeWraperFull> subscribers)
     : base(projectApiBase, message)
 {
     CanEditFiles = ProjectSecurity.CanEditFiles(message);
     CanReadFiles = ProjectSecurity.CanReadFiles(message.Project);
     Text         = HtmlUtility.GetFull(Text);
     Project      = project;
     Subscribers  = subscribers.ToList();
 }
예제 #6
0
 public CommentWrapper(ProjectApiBase projectApiBase, Comment comment, ProjectEntity entity)
 {
     Id        = comment.OldGuidId;
     ParentId  = comment.Parent;
     Text      = comment.Content;
     Created   = Updated = (ApiDateTime)comment.CreateOn;
     CreatedBy = projectApiBase.GetEmployeeWraper(comment.CreateBy);
     Inactive  = comment.Inactive;
     CanEdit   = ProjectSecurity.CanEditComment(entity, comment);
 }
예제 #7
0
 public ProjectWrapper(ProjectApiBase projectApiBase, Project project)
 {
     Id          = project.ID;
     Title       = project.Title;
     Description = project.Description;
     Responsible = projectApiBase.GetEmployeeWraper(project.Responsible);
     Status      = (int)project.Status;
     CanEdit     = ProjectSecurity.CanEdit(project);
     IsPrivate   = project.Private;
 }
예제 #8
0
 public ParticipantWrapper(ProjectApiBase projectApiBase, Participant participant)
     : base(participant.UserInfo)
 {
     CanReadFiles      = participant.CanReadFiles;
     CanReadMilestones = participant.CanReadMilestones;
     CanReadMessages   = participant.CanReadMessages;
     CanReadTasks      = participant.CanReadTasks;
     CanReadContacts   = participant.CanReadContacts;
     IsAdministrator   = projectApiBase.ProjectSecurity.IsAdministrator(participant.ID);
 }
예제 #9
0
 public TaskWrapperFull(ProjectApiBase projectApiBase, Task task, Milestone milestone, ProjectWrapperFull project, IEnumerable <FileWrapper> files, IEnumerable <CommentInfo> comments, int commentsCount, bool isSubscribed, float timeSpend)
     : base(projectApiBase, task, milestone)
 {
     Files            = files.ToList();
     CommentsCount    = commentsCount;
     IsSubscribed     = isSubscribed;
     Project          = project;
     CanEditFiles     = projectApiBase.ProjectSecurity.CanEditFiles(task);
     CanCreateComment = projectApiBase.ProjectSecurity.CanCreateComment(task);
     TimeSpend        = timeSpend;
     Comments         = comments.ToList();
 }
예제 #10
0
        public ProjectWrapperFull(ProjectApiBase projectApiBase, Project project, object filesRoot = null, bool isFollow = false, IEnumerable <string> tags = null)
        {
            Id          = project.ID;
            Title       = project.Title;
            Description = project.Description;
            Status      = (int)project.Status;
            if (projectApiBase.Context.GetRequestValue("simple") != null)
            {
                ResponsibleId = project.Responsible;
                CreatedById   = project.CreateBy;
                UpdatedById   = project.LastModifiedBy;
            }
            else
            {
                Responsible = projectApiBase.GetEmployeeWraperFull(project.Responsible);
                CreatedBy   = projectApiBase.GetEmployeeWraper(project.CreateBy);
                if (project.CreateBy != project.LastModifiedBy)
                {
                    UpdatedBy = projectApiBase.GetEmployeeWraper(project.LastModifiedBy);
                }
            }

            Created = (ApiDateTime)project.CreateOn;
            Updated = (ApiDateTime)project.LastModifiedOn;


            if (project.Security == null)
            {
                projectApiBase.ProjectSecurity.GetProjectSecurityInfo(project);
            }
            Security      = project.Security;
            CanEdit       = Security.CanEdit;
            CanDelete     = Security.CanDelete;
            ProjectFolder = filesRoot;
            IsPrivate     = project.Private;

            TaskCount         = project.TaskCount;
            TaskCountTotal    = project.TaskCountTotal;
            MilestoneCount    = project.MilestoneCount;
            DiscussionCount   = project.DiscussionCount;
            TimeTrackingTotal = project.TimeTrackingTotal ?? "";
            DocumentsCount    = project.DocumentsCount;
            ParticipantCount  = project.ParticipantCount;
            IsFollow          = isFollow;
            Tags = tags;
        }
예제 #11
0
        public SimpleTaskWrapper(ProjectApiBase projectApiBase, Task task)
        {
            ID               = task.ID;
            Title            = task.Title;
            Description      = task.Description;
            Status           = (int)task.Status;
            CustomTaskStatus = task.CustomTaskStatus;

            if (task.Responsibles != null)
            {
                Responsibles = task.Responsibles;
            }

            Deadline     = (task.Deadline == DateTime.MinValue ? null : new ApiDateTime(task.Deadline, TimeZoneInfo.Local));
            Priority     = task.Priority;
            ProjectOwner = task.Project.ID;
            MilestoneId  = task.Milestone;
            Created      = (ApiDateTime)task.CreateOn;
            CreatedBy    = task.CreateBy;
            Updated      = (ApiDateTime)task.LastModifiedOn;
            StartDate    = task.StartDate.Equals(DateTime.MinValue) ? null : (ApiDateTime)task.StartDate;

            if (task.CreateBy != task.LastModifiedBy)
            {
                UpdatedBy = task.LastModifiedBy;
            }

            if (task.SubTasks != null)
            {
                SubtasksCount = task.SubTasks.Count(r => r.Status == TaskStatus.Open); // somehow don't work :(
            }

            Progress    = task.Progress;
            MilestoneId = task.Milestone;

            if (task.Links.Any())
            {
                Links = task.Links.Select(r => new TaskLinkWrapper(r));
            }

            CanEdit            = projectApiBase.ProjectSecurity.CanEdit(task);
            CanCreateSubtask   = projectApiBase.ProjectSecurity.CanCreateSubtask(task);
            CanCreateTimeSpend = projectApiBase.ProjectSecurity.CanCreateTimeSpend(task);
            CanDelete          = projectApiBase.ProjectSecurity.CanDelete(task);
        }
        public SubtaskWrapper(ProjectApiBase projectApiBase, Subtask subtask, Task task)
        {
            Id     = subtask.ID;
            Title  = subtask.Title;
            Status = (int)subtask.Status;
            if (subtask.Responsible != Guid.Empty)
            {
                Responsible = projectApiBase.GetEmployeeWraper(subtask.Responsible);
            }
            Created   = (ApiDateTime)subtask.CreateOn;
            CreatedBy = projectApiBase.GetEmployeeWraper(subtask.CreateBy);
            Updated   = (ApiDateTime)subtask.LastModifiedOn;
            if (subtask.CreateBy != subtask.LastModifiedBy)
            {
                UpdatedBy = projectApiBase.GetEmployeeWraper(subtask.LastModifiedBy);
            }
            CanEdit = projectApiBase.ProjectSecurity.CanEdit(task, subtask);

            TaskId = task.ID;
        }
예제 #13
0
        public TimeWrapper(ProjectApiBase projectApiBase, TimeSpend timeSpend)
        {
            Date                 = (ApiDateTime)timeSpend.Date;
            Hours                = timeSpend.Hours;
            Id                   = timeSpend.ID;
            Note                 = timeSpend.Note;
            CreatedBy            = projectApiBase.GetEmployeeWraper(timeSpend.CreateBy);
            RelatedProject       = timeSpend.Task.Project.ID;
            RelatedTask          = timeSpend.Task.ID;
            RelatedTaskTitle     = timeSpend.Task.Title;
            CanEdit              = projectApiBase.ProjectSecurity.CanEdit(timeSpend);
            PaymentStatus        = timeSpend.PaymentStatus;
            StatusChanged        = (ApiDateTime)timeSpend.StatusChangedOn;
            CanEditPaymentStatus = projectApiBase.ProjectSecurity.CanEditPaymentStatus(timeSpend);
            Task                 = new TaskWrapper(projectApiBase, timeSpend.Task);
            CreateOn             = (ApiDateTime)timeSpend.CreateOn;

            if (timeSpend.CreateBy != timeSpend.Person)
            {
                Person = projectApiBase.GetEmployeeWraper(timeSpend.Person);
            }
        }
예제 #14
0
        public MilestoneWrapper(ProjectApiBase projectApiBase, Milestone milestone)
        {
            Id              = milestone.ID;
            ProjectOwner    = new SimpleProjectWrapper(milestone.Project);
            Title           = milestone.Title;
            Description     = milestone.Description;
            Created         = (ApiDateTime)milestone.CreateOn;
            Updated         = (ApiDateTime)milestone.LastModifiedOn;
            Status          = (int)milestone.Status;
            Deadline        = new ApiDateTime(milestone.DeadLine, TimeZoneInfo.Local);
            IsKey           = milestone.IsKey;
            IsNotify        = milestone.IsNotify;
            CanEdit         = projectApiBase.ProjectSecurity.CanEdit(milestone);
            CanDelete       = projectApiBase.ProjectSecurity.CanDelete(milestone);
            ActiveTaskCount = milestone.ActiveTaskCount;
            ClosedTaskCount = milestone.ClosedTaskCount;

            if (projectApiBase.Context.GetRequestValue("simple") != null)
            {
                CreatedById = milestone.CreateBy;
                UpdatedById = milestone.LastModifiedBy;
                if (!milestone.Responsible.Equals(Guid.Empty))
                {
                    ResponsibleId = milestone.Responsible;
                }
            }
            else
            {
                CreatedBy = projectApiBase.GetEmployeeWraper(milestone.CreateBy);
                if (milestone.CreateBy != milestone.LastModifiedBy)
                {
                    UpdatedBy = projectApiBase.GetEmployeeWraper(milestone.LastModifiedBy);
                }
                if (!milestone.Responsible.Equals(Guid.Empty))
                {
                    Responsible = projectApiBase.GetEmployeeWraper(milestone.Responsible);
                }
            }
        }
 public SubtaskWrapperFull(ProjectApiBase projectApiBase, Subtask subtask)
     : base(projectApiBase, subtask, subtask.ParentTask)
 {
     ParentTask = new SimpleTaskWrapper(projectApiBase, subtask.ParentTask);
 }
예제 #16
0
        public TaskWrapper(ProjectApiBase projectApiBase, Task task)
        {
            Id          = task.ID;
            Title       = task.Title;
            Description = task.Description;
            Status      = (int)task.Status;

            if (Status > 2)
            {
                Status = 1;
            }


            Deadline     = (task.Deadline == DateTime.MinValue ? null : new ApiDateTime(task.Deadline, TimeZoneInfo.Local));
            Priority     = task.Priority;
            ProjectOwner = new SimpleProjectWrapper(task.Project);
            MilestoneId  = task.Milestone;
            Created      = (ApiDateTime)task.CreateOn;
            Updated      = (ApiDateTime)task.LastModifiedOn;
            StartDate    = task.StartDate.Equals(DateTime.MinValue) ? null : (ApiDateTime)task.StartDate;

            if (task.SubTasks != null)
            {
                Subtasks = task.SubTasks.Select(x => new SubtaskWrapper(projectApiBase, x, task)).ToList();
            }

            Progress = task.Progress;

            if (task.Milestone != 0 && task.MilestoneDesc != null)
            {
                Milestone = new SimpleMilestoneWrapper(task.MilestoneDesc);
            }

            if (task.Links.Any())
            {
                Links = task.Links.Select(r => new TaskLinkWrapper(r));
            }

            if (task.Security == null)
            {
                ProjectSecurity.GetTaskSecurityInfo(task);
            }

            if (projectApiBase.Context.GetRequestValue("simple") != null)
            {
                CreatedById = task.CreateBy;
                UpdatedById = task.LastModifiedBy;
                if (task.Responsibles != null)
                {
                    ResponsibleIds = task.Responsibles;
                }
            }
            else
            {
                CreatedBy = projectApiBase.GetEmployeeWraper(task.CreateBy);
                if (task.CreateBy != task.LastModifiedBy)
                {
                    UpdatedBy = projectApiBase.GetEmployeeWraper(task.LastModifiedBy);
                }
                if (task.Responsibles != null)
                {
                    Responsibles = task.Responsibles.Select(projectApiBase.GetEmployeeWraper).OrderBy(r => r.DisplayName).ToList();
                }
            }

            CanEdit            = task.Security.CanEdit;
            CanCreateSubtask   = task.Security.CanCreateSubtask;
            CanCreateTimeSpend = task.Security.CanCreateTimeSpend;
            CanDelete          = task.Security.CanDelete;
            CanReadFiles       = task.Security.CanReadFiles;
        }