コード例 #1
0
        public IList<FullItemModel> Get(string sort, bool des, ListModel model)
        {
            //should be in the controller for checking usage.
            if (model.TaskId != null)
            {
                Task task = session.Load<Task>(model.TaskId);
                FullItemModel item = new FullItemModel();
                item.FilledBy(task);
                return new List<FullItemModel> { item };
            }

            IList<FullItemModel> models = new List<FullItemModel>();

            Project current = session.Load<Project>(model.CurrentProject.TailSelectedProject.Id);
            IList<int> allProjectIds = current.GetDescendantIds();

            var tasks = _querySource
                .Get(model, allProjectIds)
                .Sort(sort, des)
                .Paged(model.Pager);

            foreach (var task in tasks)
            {
                FullItemModel item = new FullItemModel();
                item.FilledBy(task);
                models.Add(item);
            }

            return models;
        }
コード例 #2
0
        public FullItemModel Get(int taskId)
        {
            Task task = session.Load<Task>(taskId);
            FullItemModel model = new FullItemModel();
            model.FilledBy(task);

            model.Project = new FFLTask.SRV.ViewModel.Project.FullItemModel();
            model.Project.FilledBy(task.Project);

            return model;
        }
コード例 #3
0
 public void Accept(FullItemModel model)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
 private void setOwner(IList<UserModel> owners, FullItemModel task)
 {
     int i = task.LiteItem.Id.Value % owners.Count;
     task.Owner = owners[i];
 }
コード例 #5
0
 private void setPublisher(IList<UserModel> publishers, FullItemModel task)
 {
     int i = task.LiteItem.Id.Value % publishers.Count;
     task.Publisher = publishers[i];
 }
コード例 #6
0
 private void setDifficulty(IList<TaskDifficulty> difficulties, FullItemModel task)
 {
     int i = task.LiteItem.Id.Value % difficulties.Count;
     task.Difficulty = difficulties[i];
 }
コード例 #7
0
 private void setStatus(IList<StatusModel> status, FullItemModel task)
 {
     int i = task.LiteItem.Id.Value % status.Count;
     task.LiteItem.CurrentStatus = status[i];
 }
コード例 #8
0
        private IEnumerable<FullItemModel> getAll()
        {
            if (_all != null)
            {
                return _all;
            }

            IList<FullItemModel> tasks = new List<FullItemModel>();
            for (int i = 1; i <= 256; i++)
            {
                DateTime created = new DateTime().Random(DateTime.Now.AddDays(i - 300));
                FullItemModel task = new FullItemModel
                {
                    Created = created,
                    LiteItem = new LiteItemModel
                    {
                        Id = i,
                        Title = string.Format("[ {0} ]balabalabdafdfasd", i)
                    }
                };
                tasks.Add(task);

                if (i <= 98)
                {
                    task.Project = new FFLTask.SRV.ViewModel.Project.FullItemModel
                    {
                        LiteItem = new FFLTask.SRV.ViewModel.Project.LiteItemModel
                        {
                            Id = (int)FakeProjects.美工,
                            Name = FakeProjects.美工.ToString()
                        },
                        Description = ""
                    };
                }
                else if (i > 98 & i < 116)
                {
                    task.Project = new FFLTask.SRV.ViewModel.Project.FullItemModel
                    {
                        LiteItem = new FFLTask.SRV.ViewModel.Project.LiteItemModel
                        {
                            Id = (int)FakeProjects.UI,
                            Name = FakeProjects.UI.ToString()
                        },
                        Description = ""
                    };
                }
                else
                {
                    task.Project = new FFLTask.SRV.ViewModel.Project.FullItemModel
                    {
                        LiteItem = new FFLTask.SRV.ViewModel.Project.LiteItemModel
                        {
                            Id = (int)FakeProjects.后台,
                            Name = FakeProjects.后台.ToString()
                        },
                        Description = ""
                    };
                }

                int maxPriority = _projectConfigService.GetPriorities(task.Project.LiteItem.Id).Count;
                task.Priority = (TaskPriority)(i % maxPriority + 1);

                var publishers = _userService.GetPublishers(task.Project.LiteItem.Id);
                setPublisher(publishers, task);

                var difficulties = _projectConfigService.GetDifficulties(task.Project.LiteItem.Id);
                setDifficulty(difficulties, task);

                task.ExpectedWorkPeriod = new Random().Next(60);
                //TODO: need reference ViewModelMap?
                //task.ExpectedComplete = new DateTime().Random(task.Created);

                var status = _projectConfigService.GetStatus(task.Project.LiteItem.Id);
                setStatus(status, task);

                if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.发布)
                {
                    task.LatestUpdate = task.Created;
                }
                else
                {
                    var owners = _userService.GetOwners(task.Project.LiteItem.Id);
                    if (i % 3 != 0)
                    {
                        setPublisher(owners, task);
                        task.Assign = new DateTime().Random(task.Created);
                    }

                    if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.分配)
                    {
                        task.LatestUpdate = task.Assign.Value;
                    }
                    else
                    {
                        setOwner(owners, task);

                        DateTime previousOwn = task.Assign ?? task.Created;
                        task.Own = new DateTime().Random(previousOwn);

                        if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.承接)
                        {
                            task.LatestUpdate = task.Own.Value;
                        }
                        else
                        {
                            task.ActualComplete = new DateTime().Random(task.Own.Value);
                            task.ActualWorkPeriod = (int)Math.Floor((task.ActualComplete.Value - task.Own.Value).TotalDays * 24 * 60);
                            task.OverDue = task.ExpectedWorkPeriod.Value - task.ActualWorkPeriod.Value;

                            //complete the task
                            if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.完成)
                            {
                                task.LatestUpdate = task.ActualComplete.Value;
                            }

                            if (task.LiteItem.CurrentStatus.Stage >= (int)FakeStatus.验收通过)
                            {
                                task.LatestUpdate = new DateTime().Random(task.ActualComplete.Value);
                                var qualities = _projectConfigService.GetQualities(task.Project.LiteItem.Id);
                                int quality = qualities.Count / 2 + 1;

                                int qualityIndex = 1;
                                if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.验收通过)
                                {
                                    qualityIndex = new Random().Next(quality, qualities.Count);
                                }
                                else if (task.LiteItem.CurrentStatus.Stage == (int)FakeStatus.验收失败)
                                {
                                    qualityIndex = new Random().Next(qualityIndex, quality);
                                }
                                task.Quality = qualities[qualityIndex - 1];
                            }
                        }
                    }
                }

            }

            _all = tasks;

            return tasks;
        }
コード例 #9
0
 public void UpdateTaskProperty(FullItemModel model)
 {
     throw new NotImplementedException();
 }