Пример #1
0
        public UserTask UserTaskToDTOModel(Models.UserTask userTaskModel)
        {
            if (userTaskModel == null)
            {
                throw new ArgumentNullException(nameof(userTaskModel));
            }

            return(new UserTask
            {
                Id = (ulong)userTaskModel.Id,
                Description = userTaskModel.Description,
                ExecuteTaskUntilDate = userTaskModel.ExecuteTaskUntilDate,
                ExecuteTaskUntilDateString = userTaskModel.ExecuteTaskUntilDate.ToString("dd.MM.yyyy"),
                ExecutorUser = userTaskModel.ExecutorUser?.Name,
                ExecutorUserId = userTaskModel.ExecutorUserId,
                PayloadId = userTaskModel.PayloadId,
                Priority = userTaskModel.Priority?.Name,
                PriorityId = userTaskModel.PriorityId,
                TaskManagerUser = userTaskModel.TaskManagerUser?.Name,
                TaskManagerUserId = userTaskModel.TaskManagerUserId,
                UserTaskState = userTaskModel.UserTaskState?.Name,
                UserTaskStateId = userTaskModel.UserTaskStateId,
                UserTaskType = userTaskModel.UserTaskType?.Name,
                UserTaskTypeId = userTaskModel.UserTaskTypeId
            });
        }
        public HttpResponseMessage UpdateTask(int id, int index, [FromBody] Models.UserTask task)
        {
            var tempAccount = UserAccounts.FirstOrDefault(x => x.UserId == id);

            tempAccount.UserTask[index].TaskName = task.TaskName;

            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "");

            return(response);
        }
Пример #3
0
        public Models.UserTask UserTaskDTOModelToModel(UserTask userTask)
        {
            if (userTask == null)
            {
                throw new ArgumentNullException(nameof(userTask));
            }

            Models.UserTask userTaskModel = new Models.UserTask
            {
                ExecutorUserId       = userTask.ExecutorUserId,
                Description          = userTask.Description,
                ExecuteTaskUntilDate = userTask.ExecuteTaskUntilDate,
                Id                = (long)userTask.Id,
                PayloadId         = userTask.PayloadId,
                PriorityId        = userTask.PriorityId,
                TaskManagerUserId = userTask.TaskManagerUserId,
                UserTaskStateId   = userTask.UserTaskStateId,
                UserTaskTypeId    = userTask.UserTaskTypeId
            };

            return(userTaskModel);
        }
Пример #4
0
        public async Task <IEnumerable <UserTask> > GetOrderedAndFilteredTasks(User user, int from, int to, string orderBy, string sortBy, string filterBy, string filterValue)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            try
            {
                var bindingFlags    = BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance;
                var propertyToOrder = new Models.UserTask().GetType()
                                      .GetProperty(sortBy, bindingFlags);

                if (propertyToOrder == null)
                {
                    throw new InvalidOperationException($"Data couldn't be ordered by this parameter! Parameter name: {sortBy}");
                }

                if (!string.IsNullOrWhiteSpace(filterBy) && !string.IsNullOrWhiteSpace(filterValue))
                {
                    PropertyInfo propertyToFilter = new Models.UserTask().GetType()
                                                    .GetProperty(filterBy, bindingFlags);

                    if (propertyToFilter == null)
                    {
                        throw new InvalidOperationException($"Data couldn't be filtered by this parameter! Parameter name: {filterBy}");
                    }

                    var tasks = await repository.UserTask
                                .Include(u => u.Payload)
                                .Include(u => u.Priority)
                                .Include(u => u.TaskManagerUser)
                                .Include(u => u.UserTaskState)
                                .Include(u => u.UserTaskType)
                                .Include(u => u.ExecutorUser).Where(u => u.ExecutorUserId == user.Id).ToListAsync();

                    tasks = tasks.Where(u => propertyToFilter.GetValue(u, null) != null &&
                                        propertyToFilter.GetValue(u, null).ToString().Contains(filterValue)).ToList();

                    if (orderBy == OrderBy.ASCENDING)
                    {
                        tasks = tasks.OrderBy(t => propertyToOrder.GetValue(t, null)).Skip(from).Take(to - from).ToList();
                    }
                    else
                    {
                        tasks = tasks.OrderByDescending(t => propertyToOrder.GetValue(t, null)).Skip(from).Take(to - from).ToList();
                    }

                    return(tasks);
                }

                if (orderBy == OrderBy.ASCENDING)
                {
                    var tasks = await repository.UserTask
                                .Include(u => u.Payload)
                                .Include(u => u.Priority)
                                .Include(u => u.TaskManagerUser)
                                .Include(u => u.UserTaskState)
                                .Include(u => u.UserTaskType)
                                .Include(u => u.ExecutorUser).Where(u => u.ExecutorUserId == user.Id).ToListAsync();

                    tasks = tasks
                            .Where(u => propertyToOrder.GetValue(u, null) != null)
                            .OrderBy(u => propertyToOrder.GetValue(u, null)).Skip(from).Take(to - from).ToList();

                    return(tasks);
                }
                else
                {
                    var tasks = await repository.UserTask
                                .Include(u => u.Payload)
                                .Include(u => u.Priority)
                                .Include(u => u.TaskManagerUser)
                                .Include(u => u.UserTaskState)
                                .Include(u => u.UserTaskType)
                                .Include(u => u.ExecutorUser).Where(u => u.ExecutorUserId == user.Id).ToListAsync();

                    tasks = tasks
                            .Where(u => propertyToOrder.GetValue(u, null) != null)
                            .OrderByDescending(u => propertyToOrder.GetValue(u, null)).Skip(from).Take(to - from).ToList();

                    return(tasks);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #5
0
 public DTOModels.UserTask UserTaskToDTOModel(Models.UserTask userTaskModel)
 {
     return(new DTOModels.UserTask());
 }