public bool TrySetPickUpDate(string bookingId, DateTime pickUpDate, out string error) { bookingId = bookingId ?? _cartSession.BookingId; error = ""; var preparationTime = GetPreparationTime(bookingId); var discount = GetDiscount(bookingId); var pickUpOptions = _calendarRepository.GetPickUpOption(preparationTime, discount); var validSelectedSlots = pickUpOptions.Where(x => x.Key <= pickUpDate && x.Key.Add(x.Value) >= pickUpDate); var validSlot = validSelectedSlots.Any(); if (validSlot) { var pickUp = new ShoppingCartPickUpDate { BookingId = bookingId, From = validSelectedSlots.First().Key, To = validSelectedSlots.First().Value, UserSubmitted = true }; _appDbContext.ShoppingCartPickUpDates.Add(pickUp); _appDbContext.SaveChanges(); return(true); } else { error = "La fecha seleccionada no es válida."; return(false); } }
private ShoppingCartPickUpDate InsertPickUpDate(string bookingId, KeyValuePair <DateTime, TimeSpan> defaultOption, bool userSubmitted, string message) { var pickUp = new ShoppingCartPickUpDate { BookingId = bookingId, From = defaultOption.Key, To = defaultOption.Value, UserSubmitted = userSubmitted, Message = message }; _appDbContext.ShoppingCartPickUpDates.Add(pickUp); _appDbContext.SaveChanges(); return(pickUp); }