public async Task <IActionResult> Create() { var id = User.Claims.Where(c => c.Type == "Id").Select(c => c.Value).SingleOrDefault(); if (String.IsNullOrEmpty(id)) { return(Unauthorized()); } Guid createdById = new(id); using (var reader = new StreamReader(Request.Body)) { var body = await reader.ReadToEndAsync(); try { ProjectForCreateDto projectForCreate = JsonSerializer.Deserialize <ProjectForCreateDto>(body); await _projectsService.Create(projectForCreate, createdById); return(Ok()); } catch (Exception e) { return(BadRequest(e.Message)); } } }
public async Task <IActionResult> AddProject(ProjectForCreateDto projectForCreateDto) { projectForCreateDto.ProjectName = projectForCreateDto.ProjectName.ToLower(); if (await _repo.ProjectExists(projectForCreateDto.ProjectName)) { return(BadRequest("Ce project exist déjà")); } var ProjectToReturn = _mapper.Map <Project>(projectForCreateDto); var projectToCreate = await _repo.AddProject(ProjectToReturn); return(CreatedAtRoute("GetProject", new{ id = projectToCreate.Id }, projectToCreate)); }
public async System.Threading.Tasks.Task Create(ProjectForCreateDto projectForCreate, Guid actorId) { projectForCreate.Project.CreatedById = actorId; projectForCreate.Project.CreatedAt = DateTime.UtcNow; await _projectsRepository.Create(projectForCreate.Project); await _statusesRepository.Create(new Status() { ProjectId = projectForCreate.Project.Id, Name = "ToDo", Index = 0 }); await _statusesRepository.Create(new Status() { ProjectId = projectForCreate.Project.Id, Name = "InProgress", Index = 1 }); await _statusesRepository.Create(new Status() { ProjectId = projectForCreate.Project.Id, Name = "Done", Index = 2 }); await _projectParticipationRepository.Create(new ProjectParticipation() { ProjectId = projectForCreate.Project.Id, UserId = actorId, TeamId = null, ParticipationType = ParticipationType.Creator }); if (projectForCreate.Members != null) { foreach (var memberId in projectForCreate.Members) { await _projectParticipationRepository.Create(new ProjectParticipation() { ProjectId = projectForCreate.Project.Id, UserId = memberId, TeamId = null, ParticipationType = ParticipationType.Executor }); } } }
public async Task <IActionResult> CreateAsync([FromBody] ProjectForCreateDto projectForCreateDto) { var subject = await _subjectService.GetSubjectByIdAsync(projectForCreateDto.SubjectId); if (subject == null) { return(BadRequest($@"No Subject with {projectForCreateDto.SubjectId} has been found")); } var project = _mapper.Map <Project>(projectForCreateDto); var isSuccess = await _projectService.CreateAsync(project); if (!isSuccess) { return(StatusCode(StatusCodes.Status500InternalServerError, "Something went wrong while saving the project in the database")); } var projectForReturnDto = _mapper.Map <ProjectForReturnDto>(project); return(CreatedAtRoute("GetProject", new { id = projectForReturnDto.Id }, projectForReturnDto)); }