public async Task <SymptomDTO> AddSymptomAsync(SymptomDTO s) { var symptom = _symptomFactory.Transform(s); await _symptomRepository.AddAsync(symptom); return(_symptomFactory.Transform(symptom)); }
public Symptom Transform(SymptomDTO dto) { return(new Symptom { Id = dto.Id ?? 0, Name = dto.Name }); }
public async Task <SymptomDTO> AddAsync(SymptomDTO dto) { var symptom = SymptomDTO.CreateFromDTO(dto); await _uow.Symptoms.AddAsync(symptom); await _uow.SaveChangesAsync(); return(SymptomDTO.CreateFromDomain(symptom)); }
public async Task <IActionResult> PostSymptom([FromBody] SymptomDTO symptom) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } symptom = await _symptomService.AddAsync(symptom); return(CreatedAtAction("GetSymptom", new { id = symptom.SymptomId }, symptom)); }
public async Task <IActionResult> Post([FromBody] SymptomDTO symptom) { if (symptom?.Id != null) { return(BadRequest(new FeedbackDTO("Id Can not be set when posting"))); } if (symptom.Name == null) { return(BadRequest(new FeedbackDTO("Symptom must have a name"))); } return(Ok(await _symptomService.AddSymptomAsync(symptom))); }
public async Task <SymptomDTO> Update(SymptomDTO dto) { var symptom = await _uow.Symptoms.FindAsync(dto.SymptomId); if (symptom == null) { return(null); } symptom.SymptomName = dto.SymptomName; symptom = _uow.Symptoms.Update(symptom); await _uow.SaveChangesAsync(); return(SymptomDTO.CreateFromDomain(symptom)); }
public async Task <IActionResult> PutSymptom([FromRoute] int id, [FromBody] SymptomDTO symptom) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != symptom.SymptomId) { return(BadRequest()); } var dbSymptom = await _symptomService.GetByIdAsync(symptom.SymptomId); if (dbSymptom == null) { return(NotFound()); } try { dbSymptom.SymptomName = symptom.SymptomName; await _symptomService.Update(dbSymptom); } catch (DbUpdateConcurrencyException) { if (!await SymptomExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private SymptomDTO GetSymptomForQuestionAsync(List <Disease> diseases) { if (!diseases.Any()) { throw new ArgumentNullException(); } var opt = diseases.Count / 2; // Select symptoms and group by disease Count. var symptoms = diseases .SelectMany(d => d.Symptoms) .GroupBy(s => s.Symptom.SymptomName) .GroupBy(x => x.Count()); // Pick first closest symptom var symptom = symptoms .OrderBy(x => Math.Abs((long)x.Key - opt)) .First() .ElementAt(0) .ElementAt(0); return(SymptomDTO.CreateFromDomain(symptom.Symptom)); }
public async Task <SymptomDTO> GetByIdAsync(int id) { var symptom = await _uow.Symptoms.FindAsync(id); return(SymptomDTO.CreateFromDomain(symptom)); }