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);
        }
Пример #3
0
 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
     });
 }
Пример #4
0
        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);
        }