Ejemplo n.º 1
0
        public IActionResult CreateProject([FromBody] ProjectForCreationDto project)
        {
            try
            {
                if (project == null)
                {
                    _logger.LogError("Project object sent from client is null.");
                    return(BadRequest("Project object is null"));
                }

                if (!ModelState.IsValid)
                {
                    _logger.LogError("Invalid project object sent from client.");
                    return(BadRequest("Invalid model object"));
                }

                var projectEntity = _mapper.Map <Project>(project);

                _repository.Project.CreateProject(projectEntity);
                _repository.Save();

                var createdProject = _mapper.Map <ProjectDto>(projectEntity);

                return(CreatedAtRoute("ProjectById", new { id = createdProject.ProjectId }, createdProject));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong inside CreateProject action: {ex.Message}");
                return(StatusCode(500, "Internal server error"));
            }
        }
Ejemplo n.º 2
0
        public ActionResult <ProjectDto> CreateProject(ProjectForCreationDto projectInput)
        {
            var projectToCreate = mapper.Map <Project>(projectInput);

            projectRepository.CreateProject(projectToCreate);
            projectRepository.Save();

            var projectToReturn = mapper.Map <ProjectDto>(projectToCreate);

            return(CreatedAtRoute("GetProject",
                                  new { projectId = projectToReturn.Id },
                                  projectToReturn));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> EditProject(int id, ProjectForCreationDto projectForCreationDto)
        {
            var projectFromRepo = await _repo.GetProject(id);

            _mapper.Map(projectForCreationDto, projectFromRepo);

            if (await _repo.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to update project"));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreationDto)
        {
            var project = _mapper.Map <Project>(projectForCreationDto);

            _repo.Add(project);

            if (await _repo.SaveAll())
            {
                return(CreatedAtRoute("GetProject", new{ id = project.Id }, project));
            }

            return(BadRequest("Failed to save project"));
        }
Ejemplo n.º 5
0
        public ActionResult <ProjectDto> UpdateProject(Guid projectId,
                                                       ProjectForCreationDto projectInput)
        {
            if (!projectRepository.ProjectExist(projectId))
            {
                return(NotFound());
            }

            var projectToUpdate = mapper.Map <Project>(projectInput);

            projectRepository.UpdateProject(projectId, projectToUpdate);
            projectRepository.Save();

            var projectToReturn = mapper.Map <ProjectDto>(
                projectRepository.GetProject(projectId));

            return(CreatedAtRoute("GetProject",
                                  new { projectId = projectToReturn.Id },
                                  projectToReturn));
        }
        public async Task <IActionResult> AddProject([FromBody] ProjectForCreationDto newProject)
        {
            if (newProject == null)
            {
                return(BadRequest("could not be seerialized"));
            }

            var validator = new ProjectForCreationDtoValidator();
            var results   = validator.Validate(newProject);

            if (!results.IsValid)
            {
                return(BadRequest(results));
            }

            Project projectToCreate = Mapper.Map <Project>(newProject);

            projectToCreate.ApiKey = "testing123";
            _imersiveRepo.AddProject(projectToCreate, 3);
            return(NoContent());
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreationDto)
        {
            if (await _repo.ExistProject(projectForCreationDto.Name))
            {
                return(BadRequest("Project already exists"));
            }

            var projectToCreate = _mapper.Map <Project>(projectForCreationDto);

            var projectDirectoryInfo = await _fileRepo.CreateProjectDirectory(projectForCreationDto.Name);

            projectToCreate.Path = projectDirectoryInfo.ToString();

            if (await _repo.CreateProject(projectToCreate))
            {
                var projectToReturn = _mapper.Map <ProjectToReturnDto>(projectToCreate);
                return(CreatedAtRoute("GetProject", new { id = projectToCreate.Id }, projectToReturn));
            }

            throw new System.Exception("Creating the Project failed");
        }
Ejemplo n.º 8
0
        public IActionResult CreateProject([FromBody] ProjectForCreationDto projectForCreationDto)
        {
            if (projectForCreationDto == null)
            {
                return(BadRequest());
            }

            //todo: Better validation checks
            if (projectForCreationDto.Description == projectForCreationDto.Name)
            {
                ModelState.AddModelError("Description", "The provided description should be different from the name.");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var project = Mapper.Map <Project>(projectForCreationDto);

            //todo: Improve this
            project.WorkItems = new List <WorkItem>();

            _hoursApiRepository.AddProject(project);

            if (!_hoursApiRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var createdProjectToReturn = Mapper.Map <Models.ProjectDto>(project);

            _logger.LogInformation("$Project created with id {createdProjectToReturn.Id}.");

            return(CreatedAtRoute("GetProject",
                                  new { id = createdProjectToReturn.Id }, createdProjectToReturn));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreation)
        {
            var dateCheck = ValidateProjectDates(projectForCreation);

            if (dateCheck)
            {
                return(BadRequest("Start Date must be from today and less than End Date"));
            }

            var project = _mapper.Map <Project>(projectForCreation);

            _repository.Project.Create(project);

            var saveProject = await _repository.SaveAsync();

            if (!saveProject)
            {
                throw new Exception($"Failed to Create Project");
            }

            var projectToReturn = _mapper.Map <ProjectForDetailedDto>(project);

            return(CreatedAtRoute("GetProject", new { projectId = projectToReturn.ProjectId }, projectToReturn));
        }