Esempio n. 1
0
    private void Awake()
    {
        _baseTaskItem          = transform.Find("ScrollRect_Tasks/Viewport/Content/BaseTaskItem").gameObject;
        _Dropdown_TaskFilter   = transform.Find("Dropdown_TaskFilter").GetComponent <Dropdown>();
        _Transform_TasksParent = transform.Find("ScrollRect_Tasks/Viewport/Content");
        _InputField_Task       = transform.Find("InputField_Task").GetComponent <InputField>();
        _Button_AddTask        = transform.Find("Button_Add").GetComponent <Button>();

        _Dropdown_TaskFilter.onValueChanged.AddListener(OnTaskFilterSelected);
        _Button_AddTask.onClick.AddListener(OnClickAddTask);

        _taskPresenter = new TaskPresenter(this);
        _taskPresenter.LoadTasks();
        _taskPresenter.SetFiltering(TasksFilterType.ALL_TASKS);
        _baseTaskItem.SetActive(false);
    }
Esempio n. 2
0
        public ActionResult ValidateDetails(TaskPresenter presenter)
        {
            ModelState.Clear();
            if (presenter != null)
            {
                Validate(presenter);
            }

            return new JsonResult { Data = presenter, MaxJsonLength = int.MaxValue };
        }
Esempio n. 3
0
        public ActionResult AddTaskComments(TaskPresenter taskPresenter)
        {
            if (taskPresenter != null && taskPresenter.TaskDetails != null && taskPresenter.TaskDetails.TaskID > 0 && SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null)
            {
                string attachmentIds = null;

                if (!string.IsNullOrEmpty(taskPresenter.CommentAttachmentId))
                {
                    attachmentIds = taskPresenter.CommentAttachmentId;
                }

                this.taskService.TaskCommentInsert(taskPresenter.TaskDetails.TaskID, taskPresenter.Description, attachmentIds, SessionData.Instance.UserInfo.Developer.DeveloperID);
                taskPresenter.AssignTaskComments(this.taskService.RetrieveTaskComment(taskPresenter.TaskDetails.TaskID));
                this.AssignTaskCommentAttachments(taskPresenter);

                taskPresenter.AssignTaskHistory(this.taskService.RetrieveTaskHistory(taskPresenter.TaskDetails.TaskID, DefaultValue, taskPresenter.Offset + TaskPresenter.NumberOfRecord));
                return this.PartialView(TaskCommentsContainer, taskPresenter);
            }

            return this.Json(string.Empty);
        }
Esempio n. 4
0
 public TaskController(IInputExecuteBoundary taskInteractor, TaskPresenter taskPresenter)
 {
     _taskInteractor = taskInteractor;
     _taskPresenter  = taskPresenter;
 }
Esempio n. 5
0
 /// <summary>
 /// Assigns the basic data.
 /// </summary>
 /// <param name="taskPresenter">The task presenter.</param>
 private void AssignBasicData(TaskPresenter taskPresenter)
 {
     taskPresenter.AssignPriorityList(this.lookupService.RetrieveTaskPriorityList(SessionData.Instance.UserInfo.Developer.DeveloperID));
     taskPresenter.AssignTaskStatusFilter(this.lookupService.RetrieveTaskStatusFilterList(SessionData.Instance.UserInfo.Developer.DeveloperID));
 }
Esempio n. 6
0
        /// <summary>
        /// Assigns the data.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        private void AssignData(TaskPresenter taskPresenter)
        {
            if (SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null)
            {
                this.AssignBasicData(taskPresenter);

                if (taskPresenter.IsEdit)
                {
                    this.AssignEditTaskData(taskPresenter);
                }
                else
                {
                    this.AssignAddTaskData(taskPresenter);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Validates the added task details.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        private static void ValidateAddedTaskDetails(TaskPresenter presenter)
        {
            if (string.IsNullOrWhiteSpace(presenter.TaskName))
            {
                presenter.ValidationErrors.Add(TaskName, Resources.TaskNameErrorMessage);
            }
            else
            {
                presenter.TaskName = presenter.TaskName.Trim();
            }

            if (Convert.ToInt32(presenter.SelectedDeveloper, CultureInfo.CurrentCulture) == -1 && !string.IsNullOrEmpty(presenter.PortalName) && presenter.PortalName.Equals(Resources.TeamMemberDashboard))
            {
                presenter.ValidationErrors.Add(Developer, Resources.TeamMemberErrorMessage);
            }

            if (!string.IsNullOrWhiteSpace(presenter.PortalName))
            {
                if (presenter.PortalName.Equals(Resources.ProjectDashboard, StringComparison.OrdinalIgnoreCase))
                {
                    if (Convert.ToInt32(presenter.SelectedProject, CultureInfo.CurrentCulture) == -1)
                    {
                        presenter.ValidationErrors.Add(Project, Resources.ProjectErrorMessage);
                    }
                }
            }

            if (presenter.EstimatedHours == null)
            {
                presenter.ValidationErrors.Add(EstimatedHours, Resources.EstimatedHoursNullValueErrorMessage);
            }

            if (presenter.EstimatedHours <= 0)
            {
                presenter.ValidationErrors.Add(EstimatedHours, Resources.EstimatedZeroHourErrorMessage);
            }

            if (presenter.DueDate != null && presenter.StartDate != null && presenter.StartDate > presenter.DueDate)
            {
                presenter.ValidationErrors.Add(StartDate, Resources.CompareStartDateAndDueDate);
            }

            if (presenter.TaskDetails.CompletedPercent != null && presenter.PercentCompleted == null)
            {
                presenter.ValidationErrors.Add(PercentCompleted, Resources.PercentCompletedBlankErrorMessage);
            }
            else if (presenter.PercentCompleted > 100)
            {
                presenter.ValidationErrors.Add(PercentCompleted, Resources.PercentCompletedErrorMessage);
            }

            if (presenter.SelectedStatus == RemoveStatus && SessionData.Instance.UserInfo.Developer.UserType == UserType.Normal)
            {
                presenter.ValidationErrors.Add(TaskStatus, Resources.StatusRemoveError);
            }
        }
Esempio n. 8
0
        public ActionResult GetDeveloperListByProject(TaskPresenter taskPresenter, string projectId)
        {
            if (taskPresenter != null)
            {
                taskPresenter.SelectedProject = Convert.ToInt32(projectId, CultureInfo.CurrentCulture);
                taskPresenter.AssignDeveloperListByProjectId(this.taskService.RetrieveDeveloperByProjectId(taskPresenter.SelectedProject, SessionData.Instance.UserInfo.Developer.DeveloperID, TaskType));

                return this.Json(taskPresenter);
            }

            return this.Json(string.Empty);
        }
Esempio n. 9
0
        /// <summary>
        /// Tasks the details.
        /// </summary>
        /// <param name="projectId">The project id.</param>
        /// <param name="taskId">The task id.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <param name="developerId">The developer id.</param>
        /// <param name="tabId">The tab id.</param>
        /// <param name="parentTaskId">The parent task identifier.</param>
        /// <returns>
        /// returns Task Details view
        /// </returns>
        public ActionResult TaskDetails(int? projectId, int? taskId, string includeInactive, string developerId, string tabId, int? parentTaskId)
        {
            var taskPresenter = new TaskPresenter { TabId = tabId, TaskId = taskId };
            if (taskId == null)
            {
                return this.Redirect(Url.AccountAction());
            }

            var taskInfos = this.taskService.RetrieveTask(taskId);

            List<string> features = new List<string>();
            foreach (var item in taskInfos)
            {
                features.Add(item.FeatureID.ToString());
            }

            taskPresenter.FeatureIds = string.Join(", ", features.ToArray());
            var taskInfo = taskInfos.FirstOrDefault();
            if (taskInfo == null)
            {
                return this.Redirect(this.Url.AccountAction());
            }

            if (parentTaskId != null)
            {
                taskInfo.ParentTaskID = parentTaskId;
            }

            if (projectId != null)
            {
                taskPresenter.PortalName = Resources.ProjectDashboard;
                if (!string.IsNullOrWhiteSpace(includeInactive))
                {
                    taskPresenter.IncludeInactive = Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture);
                }

                this.AddBreadcrumbItem(Resources.ProjectDashboard, this.RetrieveProjectDashboardAddress(this.Url.ProjectDashboardAction(), projectId, includeInactive, taskPresenter.TabId));
            }
            else if (!string.IsNullOrWhiteSpace(developerId))
            {
                taskPresenter.SelectedDeveloper = int.Parse(developerId);
                this.AddBreadcrumbItem(Resources.TeamMemberDashboard, this.RetrieveTeamMemberDashboardAddress(this.Url.TeamDashboardAction(), developerId));
                taskPresenter.SelectedDeveloper = Convert.ToInt32(developerId, CultureInfo.CurrentCulture);
                taskPresenter.PortalName = Resources.TeamMemberDashboard;
            }

            if (taskInfo.ParentTaskID != null)
            {
                taskPresenter.FromSubTaskDetailView = true;
                this.AddBreadcrumbItem(Resources.SubTaskDetail, string.Empty);
            }
            else
            {
                this.AddBreadcrumbItem(Resources.TaskDetails, string.Empty);
            }

            this.AssignBasicData(taskPresenter);
            taskPresenter.AssignTaskDetails(taskInfo);
            taskPresenter.AssignTaskComments(this.taskService.RetrieveTaskComment(taskId));

            this.AssignTaskCommentAttachments(taskPresenter);

            taskPresenter.IsExpiredDueDate = taskInfo.TaskDueDate == null ? (bool?)null : taskInfo.TaskDueDate < DateTimeHelper.RetrieveCurrentDate();
            taskPresenter.AssignSubTask(this.taskService.RetrieveSubtask(taskId));
            taskPresenter.Offset = DefaultValue;
            taskPresenter.AssignTaskHistory(this.taskService.RetrieveTaskHistory(taskId, taskPresenter.Offset, TaskPresenter.NumberOfRecord));

            this.AssignAttachmentList(taskPresenter);
            return this.View(taskPresenter);
        }
Esempio n. 10
0
        /// <summary>
        /// Saves the task.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        /// <returns>added or updated new task</returns>
        public ActionResult SaveTask(TaskPresenter taskPresenter)
        {
            if (taskPresenter != null)
            {
                byte priority = Convert.ToByte(taskPresenter.SelectedPriority, CultureInfo.CurrentCulture);
                string developerId = Convert.ToString(taskPresenter.SelectedDeveloper, CultureInfo.CurrentCulture);
                if (developerId.Equals(DefaultDeveloperId))
                {
                    developerId = null;
                }

                if (taskPresenter.PortalName != null && taskPresenter.PortalName.Equals(Resources.TeamMemberDashboard, StringComparison.OrdinalIgnoreCase) && taskPresenter.TaskDetails.ProjectID == -1)
                {
                    taskPresenter.TaskDetails.ProjectID = null;
                }

                if (SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null)
                {
                    string attachmentIds = null;

                    if (!string.IsNullOrEmpty(taskPresenter.AttachmentIds))
                    {
                        attachmentIds = taskPresenter.AttachmentIds;
                    }

                    if (taskPresenter.IsEdit)
                    {
                        if (taskPresenter.PortalName != null && taskPresenter.PortalName.Equals(Resources.ProjectDashboard, StringComparison.OrdinalIgnoreCase) && taskPresenter.TaskDetails.ProjectID == -1)
                        {
                            taskPresenter.ValidationErrors.Add(Project, Resources.ProjectErrorMessage);
                        }
                        else
                        {
                            ErrorListItem error = this.taskService.UpdateTask(taskPresenter.TaskId, TaskType, taskPresenter.TaskDetails.ProjectID, taskPresenter.TaskName, taskPresenter.Description, taskPresenter.SelectedStatus, priority, taskPresenter.DueDate, developerId, taskPresenter.EstimatedHours, attachmentIds, SessionData.Instance.UserInfo.Developer.DeveloperID, null, taskPresenter.StartDate, taskPresenter.PercentCompleted);
                            if (error != null)
                            {
                                return this.Json(error.Message);
                            }

                            return null;
                        }
                    }
                    else
                    {
                        if (Convert.ToInt32(taskPresenter.SelectedProject, CultureInfo.CurrentCulture) == -1)
                        {
                            taskPresenter.SelectedProject = null;
                        }
                        //// to add task
                        this.taskService.InsertTask(TaskType, taskPresenter.SelectedProject, taskPresenter.TaskName, taskPresenter.Description, priority, taskPresenter.SelectedStatus, taskPresenter.DueDate, developerId, taskPresenter.EstimatedHours, attachmentIds, SessionData.Instance.UserInfo.Developer.DeveloperID, null, taskPresenter.StartDate, taskPresenter.PercentCompleted);
                    }
                }

                return this.Json(taskPresenter);
            }

            return this.Json(string.Empty);
        }
Esempio n. 11
0
        /// <summary>
        /// Indexes the specified project id.
        /// </summary>
        /// <param name="projectId">The project id.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <param name="developerId">The developer id.</param>
        /// <param name="tabId">The tab id.</param>
        /// <returns>
        /// returns Task view
        /// </returns>
        public ActionResult Index(string projectId, string includeInactive, string developerId, string tabId)
        {
            var taskPresenter = new TaskPresenter();

            if (string.IsNullOrWhiteSpace(projectId) && string.IsNullOrWhiteSpace(developerId))
            {
                return this.Redirect(Url.AccountAction());
            }

            taskPresenter.TabId = tabId;
            if (!string.IsNullOrEmpty(developerId))
            {
                this.AddBreadcrumbItem(Resources.TeamMemberDashboard, this.RetrieveTeamMemberDashboardAddress(Url.TeamDashboardAction(), developerId));
                taskPresenter.PortalName = Resources.TeamMemberDashboard;
                taskPresenter.SelectedDeveloper = Convert.ToInt32(developerId, CultureInfo.CurrentCulture);
            }

            if (!string.IsNullOrEmpty(projectId))
            {
                taskPresenter.PortalName = Resources.ProjectDashboard;
                taskPresenter.SelectedProject = Convert.ToInt32(projectId, CultureInfo.CurrentCulture);
                this.AddBreadcrumbItem(Resources.ProjectDashboard, this.RetrieveProjectDashboardAddress(Url.ProjectDashboardAction(), taskPresenter.SelectedProject, includeInactive, tabId));
            }

            if (!string.IsNullOrEmpty(includeInactive))
            {
                taskPresenter.IncludeInactive = Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture);
            }

            this.AddBreadcrumbItem(Resources.AddTask, string.Empty);
            this.AssignData(taskPresenter);

            ////------------------to set default selected priority------------------------

            if (taskPresenter.PriorityList.Count > 0)
            {
                var priority = taskPresenter.PriorityList.Where(item => item.Name.Equals(DefaultPriority));
                if (priority != null)
                {
                    var taskPriority = priority.FirstOrDefault();
                    if (taskPriority != null)
                    {
                        taskPresenter.SelectedPriority = taskPriority.ID;
                    }
                }
            }

            return this.View(taskPresenter);
        }
Esempio n. 12
0
        /// <summary>
        /// Assigns the task comment attachments.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        private void AssignTaskCommentAttachments(TaskPresenter taskPresenter)
        {
            if (taskPresenter.TaskComments != null)
            {
                foreach (TaskCommentDetail commentDetail in taskPresenter.TaskComments)
                {
                    commentDetail.AssignCommentAttachmentList(this.taskService.RetrieveTaskAttachmentList(null, commentDetail.TaskCommentID));
                    IList<int> commentAttachmentIds = new List<int>();

                    foreach (var attachment in commentDetail.CommentAttachmentList)
                    {
                        commentAttachmentIds.Add(attachment.TaskAttachmentID);
                    }

                    string attachmentIds = string.Join(",", commentAttachmentIds);
                    taskPresenter.CommentAttachmentIds.Add(attachmentIds);
                }

                taskPresenter.AssignCommentAttachmentList(taskPresenter.CommentAttachmentIds);
            }
        }
Esempio n. 13
0
        /// <summary>
        /// Assigns the attachment list.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        private void AssignAttachmentList(TaskPresenter taskPresenter)
        {
            taskPresenter.AssigntaskAttachmentList(this.taskService.RetrieveTaskAttachmentList(taskPresenter.TaskId, null));
            IList<int> taskAttachmentIds = new List<int>();

            foreach (var attachment in taskPresenter.TaskAttachmentList)
            {
                taskAttachmentIds.Add(attachment.TaskAttachmentID);
            }

            taskPresenter.AttachmentIds = string.Join(",", taskAttachmentIds);
        }
Esempio n. 14
0
        /// <summary>
        /// Assigns the edit task data.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        private void AssignEditTaskData(TaskPresenter taskPresenter)
        {
            taskPresenter.AssignProjectsList(taskPresenter.IncludeInactive ? this.lookupService.RetrieveProjects(null, null, null, false, SessionData.Instance.UserInfo.Developer.DeveloperID) : this.lookupService.RetrieveProjects(null, null, false, false, SessionData.Instance.UserInfo.Developer.DeveloperID));
            taskPresenter.AssignDeveloperListByProjectId(this.taskService.RetrieveDeveloperByProjectId(taskPresenter.TaskDetails.ProjectID, SessionData.Instance.UserInfo.Developer.DeveloperID, TaskType));

            if (taskPresenter.TaskStatusFilterList.Count > 0)
            {
                if (taskPresenter.TaskDetails != null && taskPresenter.TaskDetails.Status == InProgressStatus)
                {
                    taskPresenter.TaskStatusFilterList.Remove(taskPresenter.TaskStatusFilterList.FirstOrDefault(item => item.Name.Equals(DefaultNewStatus)));
                }
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Shows the more task history.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        /// <param name="taskId">The task identifier.</param>
        /// <returns>return task</returns>
        public ActionResult ShowMoreTaskHistory(TaskPresenter presenter, string taskId)
        {
            if (presenter != null)
            {
                presenter.AssignTaskHistory(this.taskService.RetrieveTaskHistory(Convert.ToInt32(taskId, CultureInfo.CurrentCulture), presenter.Offset, TaskPresenter.NumberOfRecord));
            }

            return this.PartialView(TaskHistoryContainer, presenter);
        }
Esempio n. 16
0
        public ActionResult GetProjectListByDeveloper(TaskPresenter taskPresenter, string developerId)
        {
            if (taskPresenter != null)
            {
                taskPresenter.SelectedDeveloper = Convert.ToInt32(developerId, CultureInfo.CurrentCulture);
                taskPresenter.AssignProjectsByDeveloperId(this.taskService.RetrieveProjectByDeveloperId(taskPresenter.SelectedDeveloper, SessionData.Instance.UserInfo.Developer.DeveloperID));

                return this.Json(taskPresenter);
            }

            return this.Json(string.Empty);
        }
Esempio n. 17
0
        /// <summary>
        /// Subs the task details.
        /// </summary>
        /// <param name="subTaskId">The sub task identifier.</param>
        /// <returns>sub task partial view</returns>
        public ActionResult SubTaskDetails(int? subTaskId)
        {
            var taskPresenter = new TaskPresenter { TaskId = subTaskId };
            var taskInfo = this.taskService.RetrieveTask(subTaskId).FirstOrDefault();
            if (taskInfo != null)
            {
                this.AssignBasicData(taskPresenter);
                taskPresenter.AssignTaskDetails(taskInfo);

                taskPresenter.TaskId = taskInfo.TaskID;
                this.AssignAttachmentList(taskPresenter);
            }

            return this.PartialView("_SubTaskDetail", taskPresenter);
        }
Esempio n. 18
0
 private static void Validate(TaskPresenter presenter)
 {
     if (presenter.PortalName != null && presenter.PortalName.Equals(Resources.TaskDetails))
     {
         if (string.IsNullOrWhiteSpace(presenter.Description))
         {
             presenter.ValidationErrors.Add(TaskComments, Resources.EmptyCommentsErrorMessage);
         }
     }
     else if (presenter.PortalName != null && (presenter.PortalName.Equals(Resources.AddSubTask) || presenter.PortalName.Equals(Resources.EditSubTask)))
     {
         ValidateSubTaskDetails(presenter);
     }
     else
     {
         ValidateAddedTaskDetails(presenter);
     }
 }
Esempio n. 19
0
        /// <summary>
        /// Adds the sub task.
        /// </summary>
        /// <param name="projectId">The project identifier.</param>
        /// <param name="taskId">The task identifier.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <param name="developerId">The developer identifier.</param>
        /// <param name="tabId">The tab identifier.</param>
        /// <returns>returns sub task view</returns>
        public ActionResult AddSubTask(int? projectId, int? taskId, string includeInactive, string developerId, string tabId)
        {
            var taskPresenter = new TaskPresenter { TabId = tabId };
            if (taskId == null || (projectId == null && string.IsNullOrWhiteSpace(developerId)))
            {
                return this.Redirect(Url.AccountAction());
            }

            var taskInfo = this.taskService.RetrieveTask(taskId).FirstOrDefault();
            if (taskInfo == null)
            {
                return this.Redirect(this.Url.AccountAction());
            }

            if (projectId != null)
            {
                if (!string.IsNullOrWhiteSpace(includeInactive))
                {
                    taskPresenter.IncludeInactive = Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture);
                }

                taskPresenter.SelectedProject = projectId.Value;
            }
            else if (!string.IsNullOrWhiteSpace(developerId))
            {
                taskPresenter.SelectedDeveloper = Convert.ToInt32(developerId);
            }

            this.AddBreadcrumbItem(Resources.TaskDetails, this.RetrieveTaskDetailsAddress(this.Url.TaskDetailsAction(), Convert.ToString(projectId), developerId, tabId, includeInactive, Convert.ToString(taskId)));
            this.AddBreadcrumbItem(Resources.AddSubTask, string.Empty);
            taskPresenter.PortalName = Resources.AddSubTask;
            this.AssignData(taskPresenter);
            taskPresenter.AssignTaskDetails(taskInfo);
            taskPresenter.MainTaskStartDate = taskInfo.StartDate;
            taskPresenter.MainTaskDueDate = taskInfo.TaskDueDate;

            taskPresenter.StartDate = DateTimeHelper.RetrieveCurrentDate();

            return this.View(taskPresenter);
        }
Esempio n. 20
0
        /// <summary>
        /// Validates the sub task details.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        private static void ValidateSubTaskDetails(TaskPresenter presenter)
        {
            if (string.IsNullOrWhiteSpace(presenter.TaskName))
            {
                presenter.ValidationErrors.Add(SubTaskName, Resources.TaskNameErrorMessage);
            }
            else
            {
                presenter.TaskName = presenter.TaskName.Trim();
            }

            if (presenter.StartDate != null && presenter.StartDate < presenter.MainTaskStartDate)
            {
                presenter.ValidationErrors.Add(StartDate, Resources.CompareSubTaskStartDate);
            }
            else if (presenter.StartDate != null && presenter.StartDate > presenter.MainTaskDueDate)
            {
                presenter.ValidationErrors.Add(StartDate, Resources.CompareSubTaskStartDateEnd);
            }
            else if (presenter.StartDate != null && presenter.DueDate != null && presenter.StartDate > presenter.DueDate)
            {
                presenter.ValidationErrors.Add(StartDate, Resources.CompareStartDateAndDueDate);
            }

            if (presenter.DueDate != null && presenter.DueDate < presenter.MainTaskStartDate)
            {
                presenter.ValidationErrors.Add(DueDate, Resources.CompareSubTaskDueDateStart);
            }
            else if (presenter.DueDate != null && presenter.MainTaskDueDate != null && presenter.DueDate > presenter.MainTaskDueDate)
            {
                presenter.ValidationErrors.Add(DueDate, Resources.CompareSubTaskDueDate);
            }

            if (presenter.TaskDetails.CompletedPercent != null && presenter.PercentCompleted == null)
            {
                presenter.ValidationErrors.Add(PercentCompleted, Resources.PercentCompletedBlankErrorMessage);
            }
            else if (presenter.PercentCompleted > 100)
            {
                presenter.ValidationErrors.Add(PercentCompleted, Resources.PercentCompletedErrorMessage);
            }

            if (presenter.EstimatedHours == null)
            {
                presenter.ValidationErrors.Add(EstimatedHours, Resources.EstimatedHoursNullValueErrorMessage);
            }

            if (presenter.EstimatedHours <= 0)
            {
                presenter.ValidationErrors.Add(EstimatedHours, Resources.EstimatedZeroHourErrorMessage);
            }
        }
Esempio n. 21
0
        public ActionResult SaveSubTask(TaskPresenter taskPresenter)
        {
            if (taskPresenter != null)
            {
                string developerId = Convert.ToString(taskPresenter.SelectedDeveloper, CultureInfo.CurrentCulture);
                if (developerId.Equals(DefaultDeveloperId))
                {
                    developerId = null;
                }

                if (SessionData.Instance.UserInfo != null && SessionData.Instance.UserInfo.Developer != null)
                {
                    string attachmentIds = null;

                    if (!string.IsNullOrEmpty(taskPresenter.AttachmentIds))
                    {
                        attachmentIds = taskPresenter.AttachmentIds;
                    }

                    if (taskPresenter.IsEdit)
                    {
                        ////to edit sub task
                        this.taskService.UpdateTask(taskPresenter.TaskDetails.TaskID, TaskType, taskPresenter.TaskDetails.ProjectID, taskPresenter.TaskName, taskPresenter.Description, taskPresenter.SelectedTaskStatus, taskPresenter.TaskDetails.Priority, taskPresenter.DueDate, developerId, taskPresenter.EstimatedHours, attachmentIds, SessionData.Instance.UserInfo.Developer.DeveloperID, null, taskPresenter.StartDate, taskPresenter.PercentCompleted);
                    }
                    else
                    {
                        ////to add sub task
                        this.taskService.InsertTask(TaskType, taskPresenter.TaskDetails.ProjectID, taskPresenter.TaskName, taskPresenter.Description, taskPresenter.TaskDetails.Priority, taskPresenter.SelectedTaskStatus, taskPresenter.DueDate, developerId, taskPresenter.EstimatedHours, attachmentIds, SessionData.Instance.UserInfo.Developer.DeveloperID, taskPresenter.TaskDetails.TaskID, taskPresenter.StartDate, taskPresenter.PercentCompleted);
                    }
                }

                return this.Json(taskPresenter);
            }

            return this.Json(string.Empty);
        }
Esempio n. 22
0
        /// <summary>
        /// Assigns the add task data.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        private void AssignAddTaskData(TaskPresenter taskPresenter)
        {
            if (taskPresenter.SelectedProject != DefaultValue)
            {
                taskPresenter.AssignDeveloperListByProjectId(this.taskService.RetrieveDeveloperByProjectId(taskPresenter.SelectedProject, SessionData.Instance.UserInfo.Developer.DeveloperID, TaskType));
            }
            else
            {
                taskPresenter.AssignDeveloperList(this.developerService.RetrieveList(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID));
            }

            if (taskPresenter.SelectedDeveloper != DefaultValue)
            {
                taskPresenter.AssignProjectsByDeveloperId(this.taskService.RetrieveProjectByDeveloperId(taskPresenter.SelectedDeveloper, SessionData.Instance.UserInfo.Developer.DeveloperID));
            }
            else
            {
                taskPresenter.AssignProjectsList(taskPresenter.IncludeInactive ? this.lookupService.RetrieveProjects(null, null, null, false, SessionData.Instance.UserInfo.Developer.DeveloperID) : this.lookupService.RetrieveProjects(null, null, false, false, SessionData.Instance.UserInfo.Developer.DeveloperID));
            }

            taskPresenter.StartDate = DateTimeHelper.RetrieveCurrentDate();
        }
Esempio n. 23
0
        /// <summary>
        /// Edits the task.
        /// </summary>
        /// <param name="taskPresenter">The task presenter.</param>
        /// <param name="taskId">The task id.</param>
        /// <param name="portalName">Name of the portal.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <param name="tabId">The tab id.</param>
        /// <returns>
        /// returns Edit task view
        /// </returns>
        public ActionResult EditTask(TaskPresenter taskPresenter, string taskId, string portalName, string includeInactive, string tabId)
        {
            if (taskPresenter == null || string.IsNullOrWhiteSpace(taskId))
            {
                return this.Redirect(Url.AccountAction());
            }

            taskPresenter.TaskId = Convert.ToInt32(taskId, CultureInfo.CurrentCulture);
            var taskInfo = this.taskService.RetrieveTask(taskPresenter.TaskId).FirstOrDefault();

            this.AssignAttachmentList(taskPresenter);

            if (taskInfo == null)
            {
                return this.Redirect(this.Url.AccountAction());
            }

            var subTaskInfo = this.taskService.RetrieveSubtask(taskPresenter.TaskId);
            if (subTaskInfo != null && subTaskInfo.Count > 0)
            {
                taskPresenter.HasSubTask = true;
                taskPresenter.IsAllSubTaskCompleted = subTaskInfo.All(s => s.Status == DoneStatus);
                taskPresenter.SubTaskDueDate = subTaskInfo.Max(s => s.SubTaskDueDate);
            }

            taskPresenter.AssignTaskDetails(taskInfo);
            taskPresenter.IsEdit = true;
            string projectId = null;
            string developerId = null;

            if (!string.IsNullOrWhiteSpace(portalName))
            {
                if (portalName.Equals(Resources.TeamMemberDashboard))
                {
                    developerId = taskPresenter.TaskDetails.DeveloperIDs;
                }
                else if (portalName.Equals(Resources.ProjectDashboard))
                {
                    projectId = Convert.ToString(taskInfo.ProjectID, CultureInfo.CurrentCulture);
                }
            }

            this.AddBreadcrumbItem(Resources.TaskDetails, this.RetrieveTaskDetailsAddress(this.Url.TaskDetailsAction(), projectId, developerId, tabId, includeInactive, taskId));
            this.AddBreadcrumbItem(Resources.EditTask, string.Empty);
            this.AssignData(taskPresenter);

            return this.View(taskPresenter);
        }
Esempio n. 24
0
        /// <summary>
        /// Edits the sub task.
        /// </summary>
        /// <param name="projectId">The project identifier.</param>
        /// <param name="taskId">The task identifier.</param>
        /// <param name="subTaskId">The sub task identifier.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <param name="developerId">The developer identifier.</param>
        /// <param name="tabId">The tab identifier.</param>
        /// <param name="fromSubTaskDetailView">From sub task detail view.</param>
        /// <returns>edit sub task</returns>
        public ActionResult EditSubTask(int? projectId, int? taskId, int? subTaskId, string includeInactive, string developerId, string tabId, string fromSubTaskDetailView)
        {
            var taskPresenter = new TaskPresenter { TabId = tabId, TaskId = taskId };
            taskPresenter.FromSubTaskDetailView = Convert.ToBoolean(fromSubTaskDetailView, CultureInfo.CurrentCulture);
            if (subTaskId == null || taskId == null || (projectId == null && string.IsNullOrWhiteSpace(developerId)))
            {
                return this.Redirect(this.Url.AccountAction());
            }

            var mainTaskInfo = this.taskService.RetrieveTask(taskId).FirstOrDefault();
            var subTaskInfo = this.taskService.RetrieveTask(subTaskId).FirstOrDefault();

            if (subTaskInfo == null)
            {
                return this.Redirect(this.Url.AccountAction());
            }

            if (projectId != null)
            {
                if (!string.IsNullOrWhiteSpace(includeInactive))
                {
                    taskPresenter.IncludeInactive = Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture);
                }

                taskPresenter.SelectedProject = projectId.Value;
            }
            else if (!string.IsNullOrWhiteSpace(developerId))
            {
                taskPresenter.SelectedDeveloper = Convert.ToInt32(developerId);
            }

            taskPresenter.TaskId = subTaskId;
            this.AssignAttachmentList(taskPresenter);
            taskPresenter.IsEdit = true;
            this.AddBreadcrumbItem(Resources.TaskDetails, this.RetrieveTaskDetailsAddress(this.Url.TaskDetailsAction(), Convert.ToString(projectId), developerId, tabId, includeInactive, Convert.ToString(taskId)));
            this.AddBreadcrumbItem(Resources.EditSubTask, string.Empty);
            taskPresenter.PortalName = Resources.EditSubTask;
            taskPresenter.AssignTaskDetails(subTaskInfo);
            taskPresenter.DueDate = taskPresenter.TaskDetails.TaskDueDate;
            taskPresenter.StartDate = taskPresenter.TaskDetails.StartDate;
            taskPresenter.MainTaskStartDate = mainTaskInfo.StartDate;
            taskPresenter.MainTaskDueDate = mainTaskInfo.TaskDueDate;
            taskPresenter.PercentCompleted = taskPresenter.TaskDetails.CompletedPercent;

            this.AssignData(taskPresenter);
            return this.View(taskPresenter);
        }
Esempio n. 25
0
 /// <summary>
 /// Called by Unity
 /// </summary>
 public void Start()
 {
     SetPresenter(_taskPresenter = new TaskPresenter(this));
 }