public async Task <ApiResult <ProjectResult> > Post(ProjectModel model) { try { var token = Request.Headers["token"]; if (token == StringValues.Empty) { throw new Exception(ApiResult.InvalidTokenErrorMessage); } var project = await dbContext.Projects.FirstOrDefaultAsync(f => f.Id == model.Id); if (project == null) { project = new StorageModels.Project { Token = await GetUniqeTokenAsync() }; var user = await dbContext.Users.FirstOrDefaultAsync(f => f.Token == token.ToString()); project.UserProjects.Add(new StorageModels.UserProject { User = user }); await dbContext.Projects.AddAsync(project); } project.Title = model.Title; await dbContext.SaveChangesAsync(); return(new ApiResult <ProjectResult> { Success = true, Data = new ProjectResult { Id = project.Id, Title = project.Title, ExceptionLogsCount = await dbContext.ExceptionLogs.CountAsync(f => f.ProjectId == project.Id) } }); } catch (Exception exception) { return(new ApiResult <ProjectResult> { ErrorMessage = exception.Message }); } }
private async Task <StorageModels.Project> GetProjectAsync(ExceptionModel model) { var project = await dbContext.Projects.FirstOrDefaultAsync(f => f.Token == model.Token); if (project == null) { project = new StorageModels.Project { Token = model.Token }; } return(project); }