public async Task SaveAsyncWhenSaveReturnsSaved()
        {
            //Arrange
            var mockVetProfileRepository    = GetDefaultIVetProfileRepositoryInstance();
            var mockVetVeterinaryRepository = GetDefaultIVetVeterinaryRepositoryInstance();
            var mockUnitOfWork         = GetDefaultIUnitOfWorkInstance();
            var mockCityRepository     = GetDefaultICityRepositoryInstance();
            var mockProvinceRepository = GetDefaultIProvinceRepositoryInstance();
            var mockUserRepository     = GetDefaultIUserRepositoryInstance();

            User user = new User {
                Id = 1, Mail = "*****@*****.**", UserTypeVet = true
            };
            Province province = new Province {
                Id = 1, Name = "Lima"
            };
            City city = new City {
                Id = 10, Name = "SJL", ProvinceId = 1
            };
            VetProfile vetProfile = new VetProfile {
                Id = 10, Name = "Jose", Code = 15
            };

            mockUserRepository.Setup(p => p.AddAsync(user))
            .Returns(Task.FromResult <User>(user));

            mockUserRepository.Setup(p => p.FindByIdAsync(1))
            .Returns(Task.FromResult <User>(user));

            mockProvinceRepository.Setup(p => p.AddAsync(province))
            .Returns(Task.FromResult <Province>(province));

            mockProvinceRepository.Setup(p => p.FindById(1))
            .Returns(Task.FromResult <Province>(province));

            mockCityRepository.Setup(r => r.AddAsync(city))
            .Returns(Task.FromResult <City>(city));

            mockCityRepository.Setup(p => p.FindById(10))
            .Returns(Task.FromResult <City>(city));


            mockVetProfileRepository.Setup(r => r.AddAsync(vetProfile))
            .Returns(Task.FromResult <VetProfile>(null));

            var service = new VetProfileService(mockVetProfileRepository.Object, mockVetVeterinaryRepository.Object, mockUnitOfWork.Object,
                                                mockProvinceRepository.Object, mockCityRepository.Object, mockUserRepository.Object);

            //Act
            VetProfileResponse result = await service.SaveAsync(1, 10, 1, vetProfile);

            //Assert
            result.Resource.Should().Be(vetProfile);
        }
Ejemplo n.º 2
0
        public async Task <VetProfileResponse> UpdateAsync(int id, VetProfile vetProfile)
        {
            var existingVetProfile = await _vetProfileRepository.FindById(id);

            if (existingVetProfile == null)
            {
                return(new VetProfileResponse("VetProfile not found"));
            }
            existingVetProfile.BirthDate        = vetProfile.BirthDate;
            existingVetProfile.ExperienceYear   = vetProfile.ExperienceYear;
            existingVetProfile.Name             = vetProfile.Name;
            existingVetProfile.TelephonicNumber = existingVetProfile.TelephonicNumber;
            try
            {
                _vetProfileRepository.Update(existingVetProfile);
                await _unitOfWork.CompleteAsync();

                return(new VetProfileResponse(existingVetProfile));
            }
            catch (Exception ex)
            {
                return(new VetProfileResponse($"An error ocurred whike updating VetProfile: {ex.Message}"));
            }
        }
Ejemplo n.º 3
0
        public async Task <VetProfileResponse> SaveAsync(int provinceId, int cityId, int userId, VetProfile vetProfile)
        {
            var existingProvince = await _provinceRepository.FindById(provinceId);

            var existingCity = await _cityRepository.FindById(cityId);

            var existingUser = await _userRepository.FindByIdAsync(userId);

            if (existingProvince == null)
            {
                return(new VetProfileResponse("Province not found, a vet needs a province to exist"));
            }
            if (existingCity == null)
            {
                return(new VetProfileResponse("City not found, a vet needs a city to exist"));
            }
            if (existingCity.ProvinceId != provinceId)
            {
                return(new VetProfileResponse("The City does not exist in the province"));
            }
            if (existingUser == null)
            {
                return(new VetProfileResponse("The User does not exist, a profile of vet depends of an user"));
            }
            IEnumerable <VetProfile> vetProfiles = await ListAsync();

            List <VetProfile> vetProfilesList = vetProfiles.ToList();
            bool differentUserId = true;

            vetProfilesList.ForEach(vetP =>
            {
                if (vetP.UserId == userId)
                {
                    differentUserId = false;
                }
            });
            if (!differentUserId)
            {
                return(new VetProfileResponse("The User is on used of other profile"));
            }
            if (existingUser.UserTypeVet == false)
            {
                return(new VetProfileResponse("The User is for owner profiles"));
            }
            try
            {
                await _vetProfileRepository.AddAsync(vetProfile);

                await _unitOfWork.CompleteAsync();

                return(new VetProfileResponse(vetProfile));
            }
            catch (Exception ex)
            {
                return(new VetProfileResponse($"An error ocurred while saving VetProfile: {ex.Message}"));
            }
        }
Ejemplo n.º 4
0
 public void Update(VetProfile vetProfile)
 {
     _context.VetProfiles.Update(vetProfile);
 }
Ejemplo n.º 5
0
 public void Remove(VetProfile vetProfile)
 {
     _context.VetProfiles.Remove(vetProfile);
 }
Ejemplo n.º 6
0
 public async Task AddAsync(VetProfile vetProfile)
 {
     await _context.VetProfiles.AddAsync(vetProfile);
 }