コード例 #1
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = _taskRepository.GetAll();

            if (input.AssignedPersonId.HasValue)
            {
                //query = query.Where(t => t.AssignedPersonId == input.AssignedPersonId.Value);
            }

            if (input.State.HasValue)
            {
                query = query.Where(t => t.State == input.State.Value);
            }

            //排序
            if (!string.IsNullOrEmpty(input.Sorting))
            {
                query = query.OrderBy(input.Sorting);
            }
            else
            {
                query = query.OrderByDescending(t => t.CreationTime);
            }
            //获取分页
            var taskList =
                query.Skip(input.SkipCount).Take(input.MaxResultCount).Include(t => t.AssignedPerson).ToList();

            //Used AutoMapper to automatically convert List<Task> to List<TaskDto>.
            return(new GetTasksOutput
            {
                Tasks = Mapper.Map <List <TaskDto> >(taskList)
            });
        }
コード例 #2
0
        public JsonResult GetAllTasks(int limit, int offset, string sortfiled, string sortway, string search,
                                      string status)
        {
            var       sort = !string.IsNullOrEmpty(sortfiled) ? string.Format("{0} {1}", sortfiled, sortway) : "";
            TaskState currentState;

            if (!string.IsNullOrEmpty(status))
            {
                Enum.TryParse(status, true, out currentState);
            }

            var filter = new GetTasksInput
            {
                SkipCount      = offset,
                MaxResultCount = limit,
                Sorting        = sort,
                Filter         = search
            };

            if (!string.IsNullOrEmpty(status))
            {
                if (Enum.TryParse(status, true, out currentState))
                {
                    filter.State = currentState;
                }
            }

            var pagedTasks = _taskAppService.GetPagedTasks(filter);


            return(Json(new { total = pagedTasks.TotalCount, rows = pagedTasks.Items }, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = _taskRepository.GetAll().Include(t => t.AssignedPerson)
                        .WhereIf(input.State.HasValue, t => t.State == input.State.Value)
                        .WhereIf(!input.Filter.IsNullOrEmpty(), t => t.Title.Contains(input.Filter))
                        .WhereIf(input.AssignedPersonId.HasValue, t => t.AssignedPersonId == input.AssignedPersonId.Value);

            //排序
            if (!string.IsNullOrEmpty(input.Sorting))
            {
                query = query.OrderBy(input.Sorting);
            }
            else
            {
                query = query.OrderByDescending(t => t.CreationTime);
            }

            var taskList = query.ToList();

            //Used AutoMapper to automatically convert List<Task> to List<TaskDto>.
            return(new GetTasksOutput
            {
                Tasks = Mapper.Map <List <TaskDto> >(taskList)
            });
        }
コード例 #4
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var tasks = _taskRepository.GetAllTasksWithPerson(input.AssignedPersonId, input.State);

            return(new GetTasksOutput {
                Tasks = Mapper.Map <List <TaskDto> >(tasks)
            });
        }
コード例 #5
0
ファイル: TasksController.cs プロジェクト: RayLiu365/src
        public ActionResult Create(CreateTaskInput task)
        {
            var id = _taskAppService.CreateTask(task);

            var input  = new GetTasksInput();
            var output = _taskAppService.GetTasks(input);

            return(PartialView("_List", output.Tasks));
        }
コード例 #6
0
        public ActionResult List()
        {
            GetTasksInput getTasksInput = new GetTasksInput();

            getTasksInput.TaskId = 1;
            GetTasksOutput res = _appService.GetTasks(getTasksInput);

            return(View(res.Tasks));
        }
コード例 #7
0
        public async Task <GetTasksOutput> GetTasksAsync(GetTasksInput input)
        {
            var tasks = await _taskRepository.GetListAsync(input.State);

            return(new GetTasksOutput
            {
                Tasks = Mapper.Map <List <TaskDto> >(tasks)
            });
        }
コード例 #8
0
ファイル: TasksController.cs プロジェクト: RayLiu365/src
        public ActionResult Edit(UpdateTaskInput updateTaskDto)
        {
            _taskAppService.UpdateTask(updateTaskDto);

            var input  = new GetTasksInput();
            var output = _taskAppService.GetTasks(input);

            return(PartialView("_List", output.Tasks));
        }
コード例 #9
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var tasks = _taskRepository.GetAllWithPeople(input.AssignedPersonId, input.State);

            //用AutoMapper自动将List<Task>转换成List<TaskDto>
            return(new GetTasksOutput()
            {
                Tasks = Mapper.Map <List <TaskDto> >(tasks)
            });
        }
コード例 #10
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            //Called specific GetAllWithPeople method of task repository.
            var tasks = _taskRepository.GetAllWithPeople(input.AssignedPersonId, input.State);

            //Used AutoMapper to automatically convert List<Task> to List<TaskDto>.
            return(new GetTasksOutput
            {
                Tasks = Mapper.Map <List <TaskDto> >(tasks)
            });
        }
コード例 #11
0
ファイル: TasksController.cs プロジェクト: RayLiu365/src
        public ActionResult Index(GetTasksInput input)
        {
            var output = _taskAppService.GetTasks(input);

            var model = new IndexViewModel(output.Tasks)
            {
                SelectedTaskState = input.State
            };

            return(View(model));
        }
コード例 #12
0
        public void Should_Get_Filtered_Task()
        {
            //Arrange
            var filter = new GetTasksInput()
            {
                State = TaskState.Open
            };

            var openTasksCount = UsingDbContext(ctx => ctx.Tasks.Count(t => t.State == TaskState.Open));

            //Act
            var actualOpenTaskCount = _taskAppService.GetTasks(filter).Tasks.Count;

            //Assert
            actualOpenTaskCount.ShouldBe(openTasksCount);
        }
コード例 #13
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = _taskRepository.GetAll();

            if (input.AssignedPersonId.HasValue)
            {
                query = query.Where(t => t.AssignedPersonId == input.AssignedPersonId.Value);
            }
            if (input.State.HasValue)
            {
                query = query.Where(t => t.State == input.State.Value);
            }
            return(new GetTasksOutput {
                Tasks = Mapper.Map <List <TaskDto> >(query.ToList())
            });
        }
コード例 #14
0
        public void Should_Get_Paged_Task()
        {
            //Arrange(取第三页)
            var filter = new GetTasksInput()
            {
                MaxResultCount = 2,
                SkipCount      = 4
            };
            var totalTaskCount      = UsingDbContext(ctx => ctx.Tasks.Count());
            var thirdPageItemsCount = totalTaskCount > 3 * filter.MaxResultCount ? filter.MaxResultCount : totalTaskCount - filter.SkipCount;

            //act
            var result = _taskAppService.GetPagedTasks(filter);

            //Assert
            result.TotalCount.ShouldBe(totalTaskCount);
            result.Items.Count.ShouldBe(thirdPageItemsCount);
        }
コード例 #15
0
        public virtual GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = CreateQueryForAssignedTasksOfUser(input.AssignedUserId);

            if (!input.TaskStates.IsNullOrEmpty())
            {
                query = query.Where(task => input.TaskStates.Contains(task.State));
            }

            query = query
                    .OrderByDescending(task => task.Priority)
                    .Skip(input.SkipCount)
                    .Take(input.MaxResultCount);

            return(new GetTasksOutput
            {
                Tasks = query.ToList().MapIList <Task, TaskDto>()
            });
        }
コード例 #16
0
        public async Task <PagedResultDto <TaskListDto> > GetPaged(GetTasksInput input)
        {
            var query = _entityRepository.GetAll();
            // TODO:根据传入的参数添加过滤条件


            var count = await query.CountAsync();

            var entityList = await query
                             .OrderBy(input.Sorting).AsNoTracking()
                             .PageBy(input)
                             .ToListAsync();

            var entityListDtos = ObjectMapper.Map <List <TaskListDto> >(entityList);

            //var entityListDtos =entityList.MapTo<List<TaskListDto>>();

            return(new PagedResultDto <TaskListDto>(count, entityListDtos));
        }
コード例 #17
0
        public JsonResult Edit(UpdateTaskInput updateTaskDto)
        {
            if (ModelState.IsValid)
            {
                _taskAppService.UpdateTask(updateTaskDto);

                var input  = new GetTasksInput();
                var output = _taskAppService.GetTasks(input);
                var module = new IndexViewModel(output.Tasks)
                {
                    SelectedTaskState = input.State,
                    CreateTaskInput   = new CreateTaskInput(),
                    UpdateTaskInput   = new UpdateTaskInput()
                };

                return(Json(true, JsonRequestBehavior.AllowGet));
            }
            return(Json(false, JsonRequestBehavior.AllowGet));
        }
コード例 #18
0
        public PagedResultDto <TaskDto> GetPagedTasks(GetTasksInput input)
        {
            //WhereIf 是ABP针对IQueryable<T>的扩展方法 第一个参数为条件,第二个参数为一个Predicate 当条件为true执行后面的条件过滤
            var query = _taskRepository.GetAll()
                        .Include(t => t.AssignedPerson)
                        .WhereIf(input.State.HasValue, t => t.State == input.State.Value)
                        .WhereIf(!input.Filter.IsNullOrEmpty(), t => t.Title.Contains(input.Filter))
                        .WhereIf(input.AssignedPersonId.HasValue, t => t.AssignedPersonId == input.AssignedPersonId.Value);

            query = !string.IsNullOrEmpty(input.Sorting) ? query.OrderBy(input.Sorting) : query.OrderByDescending(t => t.CreationTime);
            var tasksCount = query.Count();
            var taskList   = query.PageBy(input).ToList();//这里调用abp封装好的IQueryable的扩展方法 PageBy 实际上就是 执行

            //query.PageBy(pagedResultRequest.SkipCount, pagedResultRequest.MaxResultCount)
            //因为GetTasksInput input逐级向上 发现它继承自PagedInputDto(继承自IPagedResultRequest)
            //最后相当于执行了  querySkip(input.SkipCount).Take(input.MaxResultCount);

            return(new PagedResultDto <TaskDto>(tasksCount, taskList.MapTo <List <TaskDto> >()));
        }
コード例 #19
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = _taskRepository.GetAll();

            if (input.AssignedPersonId.HasValue)
            {
                query = query.Where(t => t.AssignedPersonId == input.AssignedPersonId.Value);
            }

            if (input.State.HasValue)
            {
                query = query.Where(t => t.State == input.State.Value);
            }

            //Used AutoMapper to automatically convert List<Task> to List<TaskDto>.
            return new GetTasksOutput
            {
                Tasks = Mapper.Map<List<TaskDto>>(query.ToList())
            };
        }
コード例 #20
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var query = _taskRepository.GetAll();

            if (input.AssignedPersonId.HasValue)
            {
                query = query.Where(t => t.AssignedPersonId == input.AssignedPersonId.Value);
            }
            if (input.State.HasValue)
            {
                query = query.Where(t => t.State == input.State.Value);
            }

            //使用AutoMapper自动转换 List<Task> to List<TaskDto>
            //从数据库返回的是实体的字段,返回给上一层的需要dto的字段
            return(new GetTasksOutput
            {
                Tasks = Mapper.Map <List <TaskDto> >(query.ToList())
            });
        }
コード例 #21
0
        public PagedResultDto <TaskDto> GetPagedTasks(GetTasksInput input)
        {
            //初步过滤
            var query = _taskRepository.GetAll()
                        .WhereIf(input.State.HasValue, t => t.State == input.State.Value)
                        .WhereIf(!input.Filter.IsNullOrEmpty(), t => t.Title.Contains(input.Filter));

            //排序
            query = !string.IsNullOrEmpty(input.Sorting) ? query.OrderBy(t => t.State) : query.OrderByDescending(t => t.CreationTime);

            //获取总数
            var tasksCount = query.Count();
            //默认的分页方式
            //var taskList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

            //ABP提供了扩展方法PageBy分页方式
            var taskList = query.PageBy(input).ToList();

            return(new PagedResultDto <TaskDto>(tasksCount, ObjectMapper.Map <List <TaskDto> >(taskList)));
        }
コード例 #22
0
ファイル: TasksController.cs プロジェクト: RayLiu365/src
        // GET: Tasks
        public ActionResult PagedList(int?page)
        {
            //每页行数
            var pageSize   = 5;
            var pageNumber = page ?? 1; //第几页

            var filter = new GetTasksInput
            {
                SkipCount      = (pageNumber - 1) * pageSize, //忽略个数
                MaxResultCount = pageSize
            };
            var result = _taskAppService.GetPagedTasks(filter);

            //已经在应用服务层手动完成了分页逻辑,所以需手动构造分页结果
            var onePageOfTasks = new StaticPagedList <TaskDto>(result.Items, pageNumber, pageSize, result.TotalCount);

            //将分页结果放入ViewBag供View使用
            ViewBag.OnePageOfTasks = onePageOfTasks;

            return(View());
        }
コード例 #23
0
        public GetTasksOutput GetTasks(GetTasksInput input)
        {
            var tasks = _taskRepository.GetAllWithPeople(input.AssignedPersonId, input.State);

            List <TaskDto> taskDtos = new List <TaskDto>();

            foreach (var task in tasks)
            {
                TaskDto taskDto = new TaskDto();
                taskDto.Id = task.Id;
                taskDto.AssignedPersonId   = task.AssignedPersonId;
                taskDto.AssignedPersonName = task.AssignedPerson.Name;
                taskDto.CreationTime       = task.CreationTime;
                taskDto.Description        = task.Description;
                taskDto.State = (byte)task.State;
                taskDtos.Add(taskDto);
            }

            return(new GetTasksOutput
            {
                Tasks = taskDtos
            });
        }
コード例 #24
0
ファイル: TasksController.cs プロジェクト: RayLiu365/src
        public PartialViewResult GetList(GetTasksInput input)
        {
            var output = _taskAppService.GetTasks(input);

            return(PartialView("_List", output.Tasks));
        }