Esempio n. 1
0
        public async Task <ActionResult <ConsultantViewModel[]> > Get(bool includeAddresses = false, bool includeCompetences = false)
        {
            try
            {
                var results = await repository.GetAllConsultantsAsync(includeAddresses);

                if (includeCompetences)
                {
                    ConsultantViewModel[] consultants = mapper.Map <ConsultantViewModel[]>(results);
                    foreach (ConsultantViewModel consultant in consultants)
                    {
                        Competence[] competences = await repository.GetAllCompetencesForConsultantAsync(consultant.ConsultantId);

                        if (competences == null)
                        {
                            continue;
                        }
                        consultant.Competences = mapper.Map <CompetenceViewModel[]>(competences);
                    }
                    return(consultants);
                }
                return(mapper.Map <ConsultantViewModel[]>(results));
            }
            catch (Exception)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Error in database"));
            }
        }