예제 #1
0
        public async Task <CustomizedResult> Adicionar(OrphanageModel model)
        {
            var orphanage = model.ConvertToOrphanage();

            try
            {
                if (!orphanage.IsValid())
                {
                    var invalidResult = new CustomizedResult("Não foi possível adicionar o orphanato", orphanage);
                    invalidResult.AdicionarMensagensDeErro(orphanage.ErrorMessages);
                    return(invalidResult);
                }

                var response = await _orphanageRepository.Adicionar(orphanage);

                var fotos = await _service.Adicionar(new ImageModel(response, model.Images));

                var customizedResult = new CustomizedResult("Orphanato adicionado com sucesso.", response.ConvertToModel("~/", "~/"));
                return(customizedResult);
            }
            catch (InvalidOperationException e)
            {
                var customizedResult = new CustomizedResult("Não foi possível adicionar o orphanato", $"{e.Message} ");
                customizedResult.AdicionarMensagensDeErro(unicError: e.Message);
                return(customizedResult);
            }
            catch (Exception e)
            {
                var customizedResult = new CustomizedResult("Não foi possível adicionar o orphanato", $" {e.Message} ");
                customizedResult.AdicionarMensagensDeErro(unicError: $"exception \r {e.Message} \r {e.Data} \r {e.Source}  \r {e.StackTrace} \r {e.GetBaseException()}");
                return(customizedResult);
            }
        }
 public static Orphanage ConvertToOrphanage(this OrphanageModel orphanageModel, bool pending = true)
 {
     return(new Orphanage(orphanageModel.Name,
                          orphanageModel.Latitude,
                          orphanageModel.Longitude,
                          orphanageModel.About,
                          orphanageModel.Instructions,
                          orphanageModel.OpeningHours,
                          orphanageModel.OpenOnWeekends,
                          pending));
 }
예제 #3
0
 public async Task <IActionResult> Post(
     [FromServices] IOrphanageService _service,
     [FromForm] OrphanageModel orphanageModel)
 => CustomResponse(await _service.Adicionar(orphanageModel));