Пример #1
0
        private void TaskData()
        {
            var taskExtraColumns = new Dictionary <string, string>
            {
                { "Project", "Project" },
                { "ProjectIteration", "ProjectIteration" },
                { "TaskTimeHistories", "TaskTimeHistories" }
            };
            CriteriaOperator filter = new BinaryOperator("TaskId", ObjectId, BinaryOperatorType.Equal);
            var projectTasks        = _objectSpace.GetObjects("ProjectTask", filter, taskExtraColumns);

            foreach (var taskItem in projectTasks)
            {
                var projectTask         = ConvertData.Convert <Katrin.Domain.Impl.ProjectTask>(taskItem);
                var taskTimeHistoryList = projectTask.TaskTimeHistories.ToList();
                TaskOperator.AddTaskItems(taskTimeHistoryList, projectTask, _projectTaskList);
            }
            if (projectTasks.AsQueryable().Count() > 0 && _editTaskTimeHistory.TaskTimeHistoryId == Guid.Empty)
            {
                var projectTask = ConvertData.Convert <Katrin.Domain.Impl.ProjectTask>(projectTasks[0]);
                _editTaskTimeHistory.ProjectName       = projectTask.Project == null ? string.Empty : projectTask.Project.Name;
                _editTaskTimeHistory.IterationName     = projectTask.ProjectIteration == null?string.Empty:projectTask.ProjectIteration.Name;
                _editTaskTimeHistory.TaskId            = projectTask.TaskId;
                _editTaskTimeHistory.Name              = projectTask.Name;
                _editTaskTimeHistory.ActualWorkHours   = projectTask.ActualWorkHours ?? 0;
                _editTaskTimeHistory.RecordOn          = DateTime.Today;
                _editTaskTimeHistory.RemainderTime     = (projectTask.ActualWorkHours ?? 0) - (projectTask.Effort ?? 0);
                _editTaskTimeHistory.TaskTimeHistoryId = Guid.Empty;
                _editTaskTimeHistory.RecordPerson      = TaskOperator.GetUserName(AuthorizationManager.CurrentUserId);
            }
        }
        private void SinglePersonData()
        {
            var extraColumns = new Dictionary <string, string>
            {
                { "Project", "Project" }
            };
            CriteriaOperator filter = new BinaryOperator("OwnerId", AuthorizationManager.CurrentUserId, BinaryOperatorType.Equal);

            filter &= new BinaryOperator("StartDate", DateTime.Today, BinaryOperatorType.LessOrEqual);
            filter &= new BinaryOperator(new OperandProperty("ActualWorkHours"), new OperandProperty("Effort"), BinaryOperatorType.Greater);
            if (ObjectId != Guid.Empty)
            {
                filter &= new BinaryOperator("TaskId", ObjectId, BinaryOperatorType.Equal);
            }
            var         ownerProjectTasks = _objectSpace.GetObjects("ProjectTask", filter, extraColumns) as IList;
            List <Guid> exsitsTaskIdList  = new List <Guid>();

            if (ownerProjectTasks != null && ownerProjectTasks.AsQueryable().Count() > 0)
            {
                foreach (var task in ownerProjectTasks)
                {
                    TaskTimeHistory item        = new TaskTimeHistory();
                    var             projectTask = ConvertData.Convert <Katrin.Domain.Impl.ProjectTask>(task);
                    exsitsTaskIdList.Add(projectTask.TaskId);
                    item.TaskId          = projectTask.TaskId;
                    item.Name            = projectTask.Name;
                    item.ActualWorkHours = projectTask.ActualWorkHours ?? 0;
                    item.RecordOn        = DateTime.Today;
                    item.StartDate       = projectTask.StartDate;
                    item.EndDate         = projectTask.EndDate;
                    item.RemainderTime   = (projectTask.ActualWorkHours ?? 0) - (projectTask.Effort ?? 0);
                    var exsitsItems = _projectTaskList.Where(c => c.TaskId == item.TaskId).ToList();
                    foreach (var eitem in exsitsItems)
                    {
                        eitem.RemainderTime = item.RemainderTime;
                    }

                    item.TaskTimeHistoryId = Guid.Empty;
                    item.RecordPerson      = TaskOperator.GetUserName(AuthorizationManager.CurrentUserId);
                    if (projectTask.Project != null)
                    {
                        item.ProjectName = projectTask.Project.Name;
                    }
                    if (_projectTaskList.Any(c => c.Effort == 0 && c.TaskTimeHistoryId == Guid.Empty &&
                                             c.ActualInput == 0 && c.TaskId == item.TaskId))
                    {
                        continue;
                    }
                    _projectTaskList.Insert(0, item);
                }
            }
            var notExsitsList = _projectTaskList.Where(c => !exsitsTaskIdList.Contains(c.TaskId)).ToList();

            foreach (var notItem in notExsitsList)
            {
                notItem.RemainderTime = 0;
            }
        }