public async Task <SymptomDTO> AddSymptomAsync(SymptomDTO s)
        {
            var symptom = _symptomFactory.Transform(s);
            await _symptomRepository.AddAsync(symptom);

            return(_symptomFactory.Transform(symptom));
        }
Ejemplo n.º 2
0
 public Symptom Transform(SymptomDTO dto)
 {
     return(new Symptom
     {
         Id = dto.Id ?? 0,
         Name = dto.Name
     });
 }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 5
0
        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)));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 9
0
        public async Task <SymptomDTO> GetByIdAsync(int id)
        {
            var symptom = await _uow.Symptoms.FindAsync(id);

            return(SymptomDTO.CreateFromDomain(symptom));
        }