public Result SubscribeToDeparture(DepartureLocation departure) =>
 Result
 .FailureIf(
     _departureSubscriptions.Any(s => s.Departure == departure),
     "Already subscribed to this departure.")
 .Bind(() => ChatDepartureSubscription.Create(this, departure))
 .Tap(sc => _departureSubscriptions.Add(sc));
 public Result UnsubscribeFromDeparture(DepartureLocation departure) =>
 Result
 .SuccessIf(
     _departureSubscriptions.Any(s => s.Departure == departure),
     _departureSubscriptions.FirstOrDefault(s => s.Departure == departure),
     "You were not subscribed to this departure.")
 .Tap(sc => _departureSubscriptions.Remove(sc));
Example #3
0
 public HotTour(
     HotTourInfo info,
     HotelCategoryType hotelCategory,
     Duration duration,
     Price price,
     Country country,
     Resort resort,
     DepartureLocation departureLocation,
     DateTime departureDate)
 {
     Info              = info;
     HotelCategory     = hotelCategory;
     Duration          = duration;
     Price             = price;
     Country           = country;
     Resort            = resort;
     DepartureLocation = departureLocation;
     DepartureDate     = departureDate;
 }
 private ChatDepartureSubscription(ChatSettings settings, DepartureLocation departure)
 {
     Settings  = settings;
     Departure = departure;
 }
Example #5
0
 public Result ToggleDepartureSubscription(DepartureLocation departure) =>
 Settings.DepartureSubscriptions.Any(ds => ds.Departure == departure)
         ? Settings.UnsubscribeFromDeparture(departure)
         : Settings.SubscribeToDeparture(departure);
Example #6
0
 public bool CanReceiveUpdatesFromDeparture(DepartureLocation departure) =>
 !Settings.DepartureSubscriptions.Any() ||
 Settings.DepartureSubscriptions.Any(d => d.Departure == departure);
        private static void DepartureToggleAfterMap(CallbackQuery callbackQuery, SettingsDepartureToggleCommand command)
        {
            var departureId = ExtractCallbackQueryId(callbackQuery.Data);

            command.Departure = DepartureLocation.FromId(departureId);
        }