Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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;
            }
        }