private static async Task <DateRange> _getTrackedOptionDates(OptionChoice optChoice, ResotelContext ctx) { DateRange trackedOptDates = await ctx.Set <DateRange>().FirstOrDefaultAsync(dr => dr.Id == optChoice.TakenDates.Id); if (trackedOptDates == null) { trackedOptDates = ctx.Set <DateRange>().Add(optChoice.TakenDates); } return(trackedOptDates); }
private static async Task <DateRange> _getTrackedBookingDates(DateRange newBookingDates, ResotelContext ctx) { DateRange trackedBookingDates = await ctx.Set <DateRange>().FirstOrDefaultAsync(dr => dr.Id == newBookingDates.Id); if (trackedBookingDates == null) { trackedBookingDates = ctx.Set <DateRange>().Attach(newBookingDates); } else { // check ctx.Entry(trackedBookingDates).CurrentValues.SetValues(newBookingDates); } return(trackedBookingDates); }
private static async Task <OptionChoice> _getTrackedOptionChoice(OptionChoice optChoice, ResotelContext ctx) { OptionChoice trackedOptChoice = await ctx.Set <OptionChoice>() .Include(optC => optC.Option) .Include(optC => optC.Option.Discounts) .Include(optC => optC.Option.Rooms) .Include(optC => optC.TakenDates) .FirstOrDefaultAsync(optC => optC.Id == optChoice.Id); if (trackedOptChoice == null) { trackedOptChoice = ctx.Set <OptionChoice>().Add(optChoice); } return(trackedOptChoice); }
private static async Task _updateRoomPacks(Booking trackedBooking, IList <AppliedPack> trackedRoomPacks, IList <AppliedPack> newRoomPacks, ResotelContext ctx) { trackedRoomPacks.Clear(); foreach (AppliedPack appliedPack in newRoomPacks) { AppliedPack trackedAppliedPack = await ctx.Set <AppliedPack>().FirstOrDefaultAsync(ap => ap.Id == appliedPack.Id); if (trackedAppliedPack == null) { trackedAppliedPack = ctx.Set <AppliedPack>().Add(appliedPack); } Room trackedRoom = await ctx.Rooms.FirstOrDefaultAsync(r => r.Id == appliedPack.Room.Id); Pack trackedPack = await ctx.Set <Pack>().FirstOrDefaultAsync(p => p.Id == appliedPack.RoomPack.Id); trackedAppliedPack.Room = trackedRoom; trackedAppliedPack.RoomPack = trackedPack; trackedAppliedPack.Booking = trackedBooking; } }