public IActionResult CreateInstitution(InstitutionResource institutionResource)
        {
            if (institutionResource == null)
            {
                ProblemDetails problem = new ProblemDetails
                {
                    Title    = "Failed creating the institution.",
                    Detail   = "The institution resource is null.",
                    Instance = "E80F9611-EE07-4FF0-8D53-7693CE1AE26E"
                };
                return(BadRequest(problem));
            }

            Institution institution = mapper.Map <InstitutionResource, Institution>(institutionResource);

            try
            {
                institutionService.Add(institution);
                institutionService.Save();
                InstitutionResourceResult model = mapper.Map <Institution, InstitutionResourceResult>(institution);
                return(Created(nameof(CreateInstitution), model));
            } catch (DbUpdateException e)
            {
                Log.Logger.Error(e, "Database exception");

                ProblemDetails problem = new ProblemDetails
                {
                    Title    = "Failed Saving the institution.",
                    Detail   = "Failed saving the institution to the database.",
                    Instance = "20C197B7-24E1-4112-8999-6BB3DFD03FB6"
                };
                return(BadRequest(problem));
            }
        }
        public async Task <IActionResult> UpdateInstitution(int institutionId,
                                                            [FromBody] InstitutionResource institutionResource)
        {
            Institution institution = await institutionService.FindAsync(institutionId);

            if (institution == null)
            {
                ProblemDetails problem = new ProblemDetails
                {
                    Title    = "Failed getting the institution.",
                    Detail   = "The database does not contain an institution with that id.",
                    Instance = "FA51F980-D114-44B3-85BD-9419B58D68F2"
                };
                return(NotFound(problem));
            }

            mapper.Map(institutionResource, institution);

            institutionService.Update(institution);
            institutionService.Save();

            return(Ok(mapper.Map <Institution, InstitutionResourceResult>(institution)));
        }