Пример #1
0
 public override async Task <List <DAL.App.DTO.UserTask> > AllAsync()
 {
     return(await RepositoryDbSet
            .Include(u => u.TaskGiver)
            .Include(u => u.Tasker)
            .Select(e => UserTaskMapper.MapFromDomain(e)).ToListAsync());
 }
Пример #2
0
        public IHttpActionResult Get(int id)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            #endregion

            try
            {
                logger.Info($"TasksController Get id: {id} ", users.First(u => u.UserName == User.Identity.Name).Id);

                var userTask = userTaskRepository.GetItem(id);

                var dtoTask = UserTaskMapper.TranslateModelUserTaskToDTOTask(userTask);

                return(Ok(dtoTask));
            }
            catch (Exception ex)
            {
                logger.Error($"TasksController Get id: {id}, Error:  {ex.Message}", users.First(u => u.UserName == User.Identity.Name).Id);
                return(InternalServerError());
            }
        }
Пример #3
0
        public IHttpActionResult Get(int id)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            #endregion

            try
            {
                var userTask = userTaskRepository.GetItem(id);

                var dtoTask = UserTaskMapper.TranslateModelUserTaskToDTOTask(userTask);

                return(Ok(dtoTask));
            }
            catch (Exception ex)
            {
                return(InternalServerError());
            }
        }
Пример #4
0
        public void Put(int id, DTO.Task task)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (task == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            UserTask userTask = null;

            task.Id  = id;
            userTask = UserTaskMapper.TranslateDTOTaskToModelUserTask(task);

            if (!userTaskRepository.Update(userTask))
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
        }
Пример #5
0
        public HttpResponseMessage Post([FromBody] DTO.Task task)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (task == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            var userTask = UserTaskMapper.TranslateDTOTaskToModelUserTask(task);

            int?newId = userTaskRepository.Add(userTask);

            if (newId == null)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }

            task.Id = newId.Value;

            var response = Request.CreateResponse <DTO.Task>(HttpStatusCode.Created, task);

            string uri = Url.Link("AddUserTask", new { id = task.Id });
            response.Headers.Location = new Uri(uri);
            return(response);
        }
Пример #6
0
        public IHttpActionResult Get(int?filterId = null, string sortBy = null, string sortOrder = null)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            #endregion

            try
            {
                logger.Info($"TasksController Get: {filterId}, sortBy: {sortBy}, sortOrder: {sortOrder}", users.First(u => u.UserName == User.Identity.Name).Id);

                IEnumerable <UserTask> userTasks = null;

                if (filterId != null)
                {
                    // This cast is appropriate, we need the specific UserTaskRepository behaviour here.
                    userTasks = ((UserTaskRepository)userTaskRepository).GetItems(filterId.Value);
                }
                else
                {
                    userTasks = userTaskRepository.GetItems();
                }

                var dtoTasks = userTasks.Select(ut => UserTaskMapper.TranslateModelUserTaskToDTOTask(ut));

                var taskInfoList = new DTO.TaskList
                {
                    Metadata = new DTO.TaskListMetadata
                    {
                        Count     = dtoTasks.Count(),
                        FilterId  = filterId,
                        SortBy    = sortBy,
                        SortOrder = sortOrder
                    },
                    Tasks = dtoTasks
                };

                logger.Info($"TasksController Get taskInfoList Count: {taskInfoList.Tasks.Count()}", users.First(u => u.UserName == User.Identity.Name).Id);

                return(Ok(taskInfoList));
            }
            catch (Exception ex)
            {
                logger.Error($"TasksController Get Error: {ex.Message}", users.First(u => u.UserName == User.Identity.Name).Id);
                return(InternalServerError());
            }
        }
Пример #7
0
        public HttpResponseMessage Post([FromBody] DTO.Task task)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (task == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            try
            {
                var userTask = UserTaskMapper.TranslateDTOTaskToModelUserTask(task);

                int?newId = userTaskRepository.Add(userTask);

                if (newId == null)
                {
                    string taskDataError = JsonConvert.SerializeObject(task);
                    logger.Error($"TasksController Post userTaskRepository Add Task Failed Task Data: {taskDataError}", users.First(u => u.UserName == User.Identity.Name).Id);
                    throw new HttpResponseException(HttpStatusCode.InternalServerError);
                }

                task.Id = newId.Value;

                var response = Request.CreateResponse <DTO.Task>(HttpStatusCode.Created, task);

                string uri = Url.Link("AddUserTask", new { id = task.Id });
                response.Headers.Location = new Uri(uri);

                string taskData = JsonConvert.SerializeObject(task);
                logger.Info($"Task Create id: {task.Id}, taskData: {taskData}", users.First(u => u.UserName == User.Identity.Name).Id);

                return(response);
            }

            catch (Exception ex)
            {
                string taskData = JsonConvert.SerializeObject(task);
                logger.Error($"api/Tasks Post Error: {ex.Message}, taskData: {taskData}", users.First(u => u.UserName == User.Identity.Name).Id);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
Пример #8
0
        public IHttpActionResult GetWorkingSetTasks(int workingSetId, int?filterId = null, string sortBy = null, string sortOrder = null)
        {
            try
            {
                logger.Info($"TasksController GetWorkingSetTasks workingSetId: {workingSetId}, filterId: {filterId}", users.First(u => u.UserName == User.Identity.Name).Id);

                IEnumerable <UserTask> userTasks = null;

                if (filterId != null)
                {
                    // This cast is appropriate, we need the specific UserTaskRepository behaviour here.
                    userTasks = ((UserTaskRepository)userTaskRepository).GetItems(filterId.Value, workingSetId);
                }
                else
                {
                    userTasks = userTaskRepository.GetItems(new Model.UserTaskFilter {
                        WorkingSetId = workingSetId
                    });
                }

                var dtoTasks = userTasks.Select(ut => UserTaskMapper.TranslateModelUserTaskToDTOTask(ut));

                var taskInfoList = new DTO.TaskList
                {
                    Metadata = new DTO.TaskListMetadata
                    {
                        Count     = dtoTasks.Count(),
                        FilterId  = filterId,
                        SortBy    = sortBy,
                        SortOrder = sortOrder
                    },
                    Tasks = dtoTasks
                };

                return(Ok(taskInfoList));
            }
            catch (Exception ex)
            {
                logger.Error($"TasksController GetWorkingSetTasks workingSetId: {workingSetId}, Error:  {ex.Message}", users.First(u => u.UserName == User.Identity.Name).Id);
                return(InternalServerError());
            }
        }
Пример #9
0
        public IHttpActionResult GetWorkingSetTasks(int workingSetId, int?filterId = null, string sortBy = null, string sortOrder = null)
        {
            try
            {
                IEnumerable <UserTask> userTasks = null;

                if (filterId != null)
                {
                    // This cast is appropriate, we need the specific UserTaskRepository behaviour here.
                    userTasks = ((UserTaskRepository)userTaskRepository).GetItems(filterId.Value, workingSetId);
                }
                else
                {
                    userTasks = userTaskRepository.GetItems(new Model.UserTaskFilter {
                        WorkingSetId = workingSetId
                    });
                }

                var dtoTaskInfos = userTasks.Select(ut => UserTaskMapper.TranslateModelUserTaskToDTOTaskInfo(ut));

                var taskInfoList = new DTO.TaskInfoList
                {
                    Metadata = new DTO.TaskInfoListMetadata
                    {
                        Count     = dtoTaskInfos.Count(),
                        FilterId  = filterId,
                        SortBy    = sortBy,
                        SortOrder = sortOrder
                    },
                    TaskInfos = dtoTaskInfos
                };

                return(Ok(taskInfoList));
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
Пример #10
0
        public HttpResponseMessage Put(int id, DTO.Task task)
        {
            #region Preconditions

            if (userTaskRepository == null)
            {
                throw new InvalidOperationException();
            }

            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (task == null)
            {
                throw new ArgumentNullException();
            }

            #endregion

            try
            {
                UserTask userTask = null;

                task.Id  = id;
                userTask = UserTaskMapper.TranslateDTOTaskToModelUserTask(task);

                if (!userTaskRepository.Update(userTask))
                {
                    string taskDataError = JsonConvert.SerializeObject(task);
                    logger.Error($"TasksController Put userTaskRepository Failed id: {id}, Task Data: {taskDataError}", users.First(u => u.UserName == User.Identity.Name).Id);
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }

                try
                {
                    new AppServices.NotificationsService().NotifyUsers(userTask);
                }
                catch (Exception ex)
                {
                    string taskDataError = JsonConvert.SerializeObject(task);
                    logger.Error($"TasksController Put userTaskRepository NotifyUsers Failed id: {id}, Message: {ex.Message}, taskData: {taskDataError}", users.First(u => u.UserName == User.Identity.Name).Id);
                }

                var response = Request.CreateResponse <DTO.Task>(HttpStatusCode.OK, task);

                string uri = Url.Link("UpdateUserTask", new { id = task.Id });
                response.Headers.Location = new Uri(uri);

                string taskData = JsonConvert.SerializeObject(task);
                logger.Info($"Task Update id: {task.Id}, taskData: {taskData}", users.First(u => u.UserName == User.Identity.Name).Id);

                return(response);
            }

            catch (Exception ex)
            {
                string taskDataError = JsonConvert.SerializeObject(task);
                logger.Error($"api/Tasks/id Put Id: {id}, Error: {ex.Message}, taskData: {taskDataError}", users.First(u => u.UserName == User.Identity.Name).Id);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
Пример #11
0
 public override async Task <BLL.App.DTO.UserTask> FindAsync(params object[] id)
 {
     return(UserTaskMapper.MapFromDAL(await Uow.UserTasks.FindAsync(id)));
 }