コード例 #1
0
        private List <string> ValidateForUpdate(TaskListApiModel taskList)
        {
            List <string> errors = new List <string>();

            if (taskList == null)
            {
                errors.Add("Tasklist To Update Not Provided");
                return(errors);
            }
            if (!TaskListRepository.Exists(taskList.Id))
            {
                errors.Add("The Tasklist does not exist");
                return(errors);
            }
            if (string.IsNullOrWhiteSpace(taskList.Name))
            {
                errors.Add("Must specify Tasklist Name");
            }
            // make sure not updating with tasks that belong to other tasklists
            if (taskList.Tasks != null)
            {
                foreach (var task in taskList.Tasks)
                {
                    if (task.TaskListId != taskList.Id)
                    {
                        errors.Add(string.Format("The Task with id {0} belongs to a different tasklist", task.Id));
                    }
                }
            }
            return(errors);
        }
コード例 #2
0
        public TaskListApiModel Create(TaskListApiModel taskList)
        {
            //set to 0 in case user has attempted to explicitly set id
            taskList.Id = 0;
            var errors = ValidateForCreate(taskList);

            if (errors.Count > 0)
            {
                throw new ApiException(errors, 400);
            }
            var createdTaskList = TaskListRepository.Create(Mapper.Map <TaskListApiModel, TaskList>(taskList));

            return(Mapper.Map <TaskList, TaskListApiModel>(createdTaskList));
        }
コード例 #3
0
        private List <string> ValidateForCreate(TaskListApiModel taskList)
        {
            List <string> errors = new List <string>();

            if (taskList == null)
            {
                errors.Add("Tasklist To Create Not Provided");
                return(errors);
            }
            if (string.IsNullOrWhiteSpace(taskList.Name))
            {
                errors.Add("Must specify Tasklist Name");
            }

            return(errors);
        }
コード例 #4
0
        public TaskListApiModel Update(TaskListApiModel taskList)
        {
            if (!TaskListRepository.Exists(taskList.Id))
            {
                throw new ApiException("Tasklist Not Found", 404);
            }
            //validation
            var errorMessages = ValidateForUpdate(taskList);

            if (errorMessages.Count > 0)
            {
                throw new ApiException(errorMessages, 400);
            }

            var updatedTaskList = TaskListRepository.Update(Mapper.Map <TaskListApiModel, TaskList>(taskList));

            return(Mapper.Map <TaskList, TaskListApiModel>(updatedTaskList));
        }
コード例 #5
0
        public ActionResult Put(TaskListApiModel taskListApiModel)
        {
            var responseModel = TaskListApiService.Update(taskListApiModel);

            return(Ok(responseModel));
        }
コード例 #6
0
        public TaskListApiModel GetTasks(int contactId, int currentPage, int pageSize, string query)
        {
            var dbTasks  = _dealRepository.GetTasks(contactId, currentPage, pageSize, query);
            var apiModel = new TaskListApiModel();

            apiModel.tasks = new List <TaskListApiModel.TaskInfo>();
            foreach (var t in dbTasks.tasks)
            {
                var taskInfo = new TaskListApiModel.TaskInfo();
                if (t.MEETINGs.Count > 0)
                {
                    var meeting = t.MEETINGs.FirstOrDefault();
                    if (meeting != null)
                    {
                        taskInfo.id        = meeting.ID;
                        taskInfo.title     = t.Title;
                        taskInfo.startDate = meeting.FromDate.GetValueOrDefault();
                        taskInfo.owner     = new UserLinkApiModel()
                        {
                            id = meeting.HostUser.ID, email = meeting.HostUser.Email, username = meeting.HostUser.Username
                        };
                        taskInfo.type = "meetings";
                        if (t.PRIORITY != null)
                        {
                            taskInfo.priority = t.PRIORITY.Name;
                        }
                        taskInfo.endDate = meeting.ToDate.GetValueOrDefault();
                        if (t.TASK_STATUS != null)
                        {
                            taskInfo.status = t.TASK_STATUS.Name;
                        }
                        apiModel.tasks.Add(taskInfo);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else if (t.CALLs.Count > 0)
                {
                    var call = t.CALLs.FirstOrDefault();
                    if (call != null)
                    {
                        taskInfo.id    = call.ID;
                        taskInfo.title = t.Title;

                        taskInfo.startDate = t.CreatedAt.GetValueOrDefault();
                        taskInfo.owner     = new UserLinkApiModel()
                        {
                            id = call.Owner.ID, email = call.Owner.Email, username = call.Owner.Username
                        };
                        taskInfo.type = "calls";
                        if (t.PRIORITY != null)
                        {
                            taskInfo.priority = t.PRIORITY.Name;
                        }
                        taskInfo.endDate = t.DueDate.GetValueOrDefault();
                        if (t.TASK_STATUS != null)
                        {
                            taskInfo.status = t.TASK_STATUS.Name;
                        }
                        apiModel.tasks.Add(taskInfo);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else if (t.TASKs.Count > 0)
                {
                    var task = t.TASKs.FirstOrDefault();
                    if (task != null)
                    {
                        taskInfo.id        = task.ID;
                        taskInfo.title     = t.Title;
                        taskInfo.startDate = t.CreatedAt.GetValueOrDefault();
                        taskInfo.owner     = new UserLinkApiModel()
                        {
                            id = task.USER.ID, email = task.USER.Email, username = task.USER.Username
                        };
                        taskInfo.type = "tasks";
                        if (t.PRIORITY != null)
                        {
                            taskInfo.priority = t.PRIORITY.Name;
                        }
                        taskInfo.endDate = t.DueDate.GetValueOrDefault();
                        if (t.TASK_STATUS != null)
                        {
                            taskInfo.status = t.TASK_STATUS.Name;
                        }
                        apiModel.tasks.Add(taskInfo);
                    }
                    else
                    {
                        return(null);
                    }
                }
                //taskInfo.id = t.ID
            }
            //apiModel.tasks = dbTasks.tasks.Select(c => new TaskListApiModel.TaskInfo() { id = c.ID, type = c.}).ToList();
            apiModel.pageInfo = dbTasks.p;
            return(apiModel);
        }