public async Task <ActionResult <Shelter> > PostShelter(Shelter shelter)
 {
     try
     {
         _repository.AddShelter(shelter);
     }
     catch (DbUpdateException)
     {
         if (ShelterExists(shelter.Id))
         {
             return(Conflict());
         }
         else
         {
             throw;
         }
     }
     return(Ok());
 }
Exemple #2
0
        public async Task <ServiceResponse <ShelterDto, GetAccountDto> > AddShelter(ShelterDto shelterDto)
        {
            var shelter = mapper.Map <Shelter>(shelterDto);

            shelter.IsApproved = true;
            var addShelterResult = await shelterRepository.AddShelter(shelter);

            var serviceResponse = mapper.Map <RepositoryResponse <Shelter>, ServiceResponse <ShelterDto, GetAccountDto> >(addShelterResult);

            if (addShelterResult.Successful)
            {
                var addAccountResult = await accountService.AddShelterAccount(addShelterResult.Data);

                if (addAccountResult.Successful)
                {
                    serviceResponse.Metadata = addAccountResult.Data;
                }
                else
                {
                    serviceResponse.Data       = null;
                    serviceResponse.Successful = false;
                    var deleteResult = await shelterRepository.DeleteShelter(addShelterResult.Data.Id);

                    if (deleteResult.Successful)
                    {
                        serviceResponse.Message = $"Failed to add shelter acccount: {addAccountResult.Message}";
                    }
                    else
                    {
                        serviceResponse.Message = $"Data corrupted! Failed to add shelter account and remove shelter after failing to add acccount: {addAccountResult.Message} {deleteResult.Message}";
                    }
                }
            }
            else
            {
                serviceResponse.StatusCode = StatusCodes.Status400BadRequest;
            }

            return(serviceResponse);
        }
Exemple #3
0
 public IActionResult Create(Shelter newShelter)
 {
     repository.AddShelter(newShelter);
     return(RedirectToAction("List"));
 }
        public async void AddShelterSuccessfulForValidShelter()
        {
            var addShelter = GetValidShelter();
            var result     = await shelterRepository.AddShelter(addShelter);

            Assert.True(result.Successful);
        }