public async Task <ResultDto <Guid, PatientCreateStatus> > Create(ProblemCreateRequest request, string externalId) { try { var model = _mapper.Map <ProblemCreateRequest, Problems>(request); try { model.RecordedDate = DateTime.UtcNow; model.ExternalId = externalId; var result = await _repository.Create(model); return(result); } catch (DbUpdateConcurrencyException) { return(new ResultDto <Guid, PatientCreateStatus>(PatientCreateStatus.InternalServerError)); } catch (Exception ex) { return(new ResultDto <Guid, PatientCreateStatus>(PatientCreateStatus.InternalServerError)); } } catch (Exception ex) { return(new ResultDto <Guid, PatientCreateStatus>(PatientCreateStatus.InternalServerError)); } }
public async Task <ActionResult <ProblemResponse> > CreateProblem([FromBody] ProblemCreateRequest problemToCreate) { // verify author exists var author = await _context.Accounts.FindAsync(problemToCreate.AuthorId); if (author == null) { return(NotFound()); } // verify CourseIds exist var courses = await _context.Courses.Where(c => problemToCreate.CourseIds.Contains(c.Id)).ToListAsync(); if (courses == null) { return(NotFound()); } // map request to entity var problem = _mapper.Map <Problem> (problemToCreate); problem.Author = author; problem.CourseProblems = courses.Select(course => new CourseProblem() { Course = course, Problem = problem } ).ToList(); // save problem _context.Problems.Add(problem); await _context.SaveChangesAsync(); // map entity to response var problemResponse = _mapper.Map <ProblemResponse> (problem); return(CreatedAtAction(nameof(GetProblem), new { problemId = problemResponse.Id }, problemResponse)); }
public async Task <IActionResult> CreatePatientProblemDetail(string patientId, [FromBody] ProblemCreateRequest problem) { var diagnosis = new Diagnosis { Author = problem.Author, Code = problem.Code, DateCreated = DateTime.UtcNow, DateOfOnset = problem.DateOfOnset, Description = problem.Description, Problem = problem.Problem, PatientId = patientId, Source = "source-new", SourceId = $"{Guid.NewGuid()}", Terminology = problem.Terminology }; await this.Diagnoses.AddOrUpdate(diagnosis); return(this.Ok()); }