示例#1
0
        public TaskCreateResponse CreateTaskCreateResponse(Task task)
        {
            var response = new TaskCreateResponse
            {
                Data = CreateDto(task)
            };

            return(response);
        }
示例#2
0
        public TaskCreate(TaskCreateRequest request)
        {
            if (request != null)
            {
                if (string.IsNullOrWhiteSpace(request.Name))
                {
                    Response = new TaskCreateResponse
                    {
                        Type = TaskCreateResponseType.NameEmpty
                    };
                    return;
                }

                using (var dbContext = new ApplicationDbContext())
                {
                    var project = dbContext.Projects.SingleOrDefault(aProject => aProject.Identifier == request.ProjectIdentifier);

                    if (project == null)
                    {
                        Response = new TaskCreateResponse
                        {
                            Type = TaskCreateResponseType.ProjectDoesNotExist
                        };
                        return;
                    }

                    if (project.Tasks.Any(aTask => aTask.Name.Trim().ToLower() == request.Name.Trim().ToLower()))
                    {
                        Response = new TaskCreateResponse
                        {
                            Type = TaskCreateResponseType.NameExists
                        };
                        return;
                    }

                    project.Set(request);
                    dbContext.SaveChanges();

                    var task = new Task();
                    task.Set(request, $"{project.Key}-{project.TasksCreatedTotal}");
                    dbContext.Tasks.Add(task);
                    dbContext.SaveChanges();

                    Response = new TaskCreateResponse
                    {
                        Identifier = task.Identifier,
                        Type       = TaskCreateResponseType.Success
                    };
                }
            }
        }
        public IHttpActionResult Post([FromUri] long projectId, [FromBody] TaskCreateRequest taskObj)
        {
            TaskCreateResponse result = new TaskCreateResponse();

            using (var context = new KanbanDBModel())
            {
                var cmd = context.Database.Connection.CreateCommand();
                cmd.CommandText = "[dbo].[InsertTask]";
                cmd.CommandType = System.Data.CommandType.StoredProcedure;


                cmd.Parameters.Add(new SqlParameter("ProjectId", projectId));
                cmd.Parameters.Add(new SqlParameter("TaskName", taskObj.TaskName));
                cmd.Parameters.Add(new SqlParameter("TaskDescription", taskObj.TaskDescription));
                cmd.Parameters.Add(new SqlParameter("TaskStatus", taskObj.TaskStatus));

                try
                {
                    context.Database.Connection.Open();
                    var reader = cmd.ExecuteReader();

                    var operationStatusQuery = ((IObjectContextAdapter)context)
                                               .ObjectContext
                                               .Translate <OperationStatusInfo>(reader);

                    result.Result = operationStatusQuery.FirstOrDefault();

                    reader.NextResult();

                    var taskQuery = ((IObjectContextAdapter)context)
                                    .ObjectContext
                                    .Translate <TaskInfo>(reader);

                    result.Task = taskQuery.FirstOrDefault();

                    return(Ok(result));
                }
                catch (Exception ex)
                {
                    return(InternalServerError(ex));
                }
                finally
                {
                    context.Database.Connection.Close();
                }
            }
        }
示例#4
0
        public async Task <TaskCreateResponse> TaskCreate(TaskCreateRequest request)
        {
            TaskCreateResponse response;

            var board = await _boardRepository.GetAsync(request.BoardId);

            if (board == null)
            {
                response = new TaskCreateResponse {
                    Data = null
                };
                response.Failed(_errorService.GetError(ErrorType.ItemNotFound));

                return(response);
            }

            if (board.CreatedById != request.UserId)
            {
                response = new TaskCreateResponse {
                    Data = null
                };
                response.Failed(_errorService.GetError(ErrorType.AccessDenied));

                return(response);
            }

            if (board.Tasks == null)
            {
                board.Tasks = new List <Task>();
            }

            var task = _taskCreator.CreateTask(request);

            await _boardRepository.InsertTaskAsync(request.BoardId, task);

            response = _taskCreator.CreateTaskCreateResponse(task);
            response.Succeeded();

            return(response);
        }