public async Task <ActionResult <ProjectViewModel> > Post([FromBody] ProjectPayload value) { try { var result = await service.CreateProject(value, this.UserId); return(Ok(result)); } catch (ProjectException ex) { return(BadRequest(ex.Message)); } }
public async Task <ProjectViewModel> CreateProject(ProjectPayload payload, Guid userId) { var project = this.Map <Project, ProjectPayload>(payload); project.DateCreated = DateTime.Now; project.CreatedByUserId = userId; project.PreviewLinks = new System.Collections.Generic.List <string>(); await Task.Run(() => this.repository.CreateNew(project)); var item = this.repository.QueryAsync().FirstOrDefault(x => x.Id == project.Id); if (item is null) { throw new ProjectException("Failed to create project, please check back later"); } return(this.Map <ProjectViewModel, ProjectListItem>(item)); }