public async Task <int> UpdateAsync(int id, MinuteService minuteService) { var minuteServiceToUpdate = await _db.MinuteServices.FirstOrDefaultAsync(ms => ms.Id == id); if (minuteServiceToUpdate != null) { if (!minuteServiceToUpdate.IsDeleted) { foreach (PropertyInfo prop in minuteService.GetType().GetProperties()) { var value = prop.GetValue(minuteService); if (value != null && prop.Name.ToLower() != "id") { prop.SetValue(minuteServiceToUpdate, value); } } _db.MinuteServices.Update(minuteServiceToUpdate); await _db.SaveChangesAsync(); return(id); } throw new KeyNotFoundException("Requested minute service is deleted"); } throw new NullReferenceException("Requested minute service does not exist"); }
public async Task <int> AddAsync(MinuteService minuteService) { minuteService.IsDeleted = false; await _db.MinuteServices.AddAsync(minuteService); await _db.SaveChangesAsync(); return(minuteService.Id); }
public GetMinuteServiceDto MinuteServiceToGetMinuteServiceDto(MinuteService minuteService) { return(new GetMinuteServiceDto { Id = minuteService.Id, Name = minuteService.Name, Description = minuteService.Description, PricePerMinute = minuteService.PricePerMinute, MinTime = minuteService.MinTime, MaxTime = minuteService.MaxTime, IsAvailable = minuteService.IsAvailable }); }
public async Task ShouldAssignServiceToReservation() { //Arrange var context = new iReceptionDbContext(DbOptions); var returnedMinuteService = new MinuteService { Id = 1, PricePerMinute = 10 }; var msRepository = new Mock <IMinuteServiceRepository>(); msRepository .Setup(r => r.GetAsync(It.IsAny <int>())) .ReturnsAsync(returnedMinuteService); var repository = new MinuteServiceToReservationRepository(context, msRepository.Object); var convertedMinuteServiceToReservation = new MinuteServiceToReservation { ReservationId = 1, MinuteServiceId = 12, Duration = 30 }; //Act var actual = await repository.AddAsync(convertedMinuteServiceToReservation); var expected = convertedMinuteServiceToReservation.MinuteServiceId; var actualCost = (await context.MinuteServicesToReservation.FirstAsync( mstr => mstr.MinuteServiceId == 12)).Cost; var expectedCost = convertedMinuteServiceToReservation.Duration * returnedMinuteService.PricePerMinute; //Assert Assert.Equal(expected, actual); Assert.Equal(expectedCost, actualCost); }