public async Task <JsonResult> GetMenuInfos()
        {
            var t1 = new HotelManager(CurrHotel.ConnectionString).GetFormatedMenuClasses();
            var t2 = new HotelManager(CurrHotel.ConnectionString).GetFormatedMenus();
            var t3 = new HotelManager(CurrHotel.ConnectionString).GetFormatedMenuOnSales();
            var t4 = new HotelManager(CurrHotel.ConnectionString).GetFormatedMenuSetMeals();
            var t5 = new HotelManager(CurrHotel.ConnectionString).GetFormatedPayKinds(new List <PayKindType> {
                PayKindType.Online, PayKindType.Other
            });
            var t6        = new HotelManager(CurrHotel.ConnectionString).GetHotelConfig();
            var t7        = new HotelManager(CurrHotel.ConnectionString).GetTimeDiscounts();
            var t8        = new HotelManager(CurrHotel.ConnectionString).GetVipDiscounts();
            var currHotel = await new YummyOnlineManager().GetHotelById(CurrHotel.Id);

            var result = new {
                MenuClasses     = await t1,
                Menus           = await t2,
                MenuOnSales     = await t3,
                MenuSetMeals    = await t4,
                PayKinds        = await t5,
                DiscountMethods = new {
                    TimeDiscounts = await t7,
                    VipDiscounts  = await t8
                },
                Hotel = DynamicsCombination.CombineDynamics(await t6, new {
                    currHotel.Name,
                    currHotel.Address,
                    currHotel.Tel,
                    currHotel.OpenTime,
                    currHotel.CloseTime
                })
            };

            return(Json(result));
        }
Exemple #2
0
 public async Task <JsonResult> GetHotelConfig()
 {
     return(Json(DynamicsCombination.CombineDynamics(await HotelManager.GetHotelConfig(), new {
         CurrHotel.Name,
         CurrHotel.Address,
         CurrHotel.Tel,
         CurrHotel.OpenTime,
         CurrHotel.CloseTime
     })));
 }
Exemple #3
0
        public async Task <dynamic> GetUsers(Role role, int countPerPage = 0, int currPage = 0, bool withDineCount = false)
        {
            IQueryable <UserRole> linq = ctx.UserRoles.Where(p => p.Role == role).OrderByDescending(p => p.UserId);

            if (countPerPage != 0)
            {
                linq = linq.Skip(countPerPage * (currPage - 1)).Take(countPerPage);
            }

            var users = await linq.Select(p => new {
                p.User.Id,
                p.User.CreateDate,
                p.User.UserName,
                p.User.PhoneNumber,
                p.User.Email,
            }).ToListAsync();

            if (!withDineCount)
            {
                return(users);
            }

            Dictionary <string, int> userDineCounts = new Dictionary <string, int>();

            List <Hotel> hotels = await GetHotels();

            foreach (var h in hotels)
            {
                HotelManager hotelManager = new HotelManager(h.ConnectionString);
                foreach (var user in users)
                {
                    if (!userDineCounts.ContainsKey(user.Id))
                    {
                        userDineCounts[user.Id] = await hotelManager.GetDineCount(user.Id);
                    }
                    else
                    {
                        userDineCounts[user.Id] += await hotelManager.GetDineCount(user.Id);
                    }
                }
            }

            List <dynamic> userWithDineCounts = new List <dynamic>();

            foreach (var user in users)
            {
                userWithDineCounts.Add(DynamicsCombination.CombineDynamics(user, new {
                    DineCount = userDineCounts[user.Id]
                }));
            }

            return(userWithDineCounts);
        }
Exemple #4
0
        public async Task <JsonResult> GetMenuInfos()
        {
            string connStr        = CurrHotel.ConnectionString;
            var    tMenuClasses   = new HotelManager(connStr).GetFormatedMenuClasses();
            var    tMenus         = new HotelManager(connStr).GetFormatedMenus();
            var    tMenuOnSales   = new HotelManager(connStr).GetFormatedMenuOnSales();
            var    tMenuSetMeals  = new HotelManager(connStr).GetFormatedMenuSetMeals();
            var    tHotel         = new HotelManager(connStr).GetHotelConfig();
            var    tTimeDiscounts = new HotelManager(connStr).GetTimeDiscounts();
            var    tVipDiscounts  = new HotelManager(connStr).GetVipDiscounts();

            var tPayKind = new HotelManager(connStr).GetOtherPayKind();
            var tDesks   = new HotelManager(connStr).GetDesks();

            var result = new {
                MenuClasses     = await tMenuClasses,
                Menus           = await tMenus,
                MenuOnSales     = await tMenuOnSales,
                MenuSetMeals    = await tMenuSetMeals,
                DiscountMethods = new {
                    TimeDiscounts = await tTimeDiscounts,
                    VipDiscounts  = await tVipDiscounts
                },
                Hotel = DynamicsCombination.CombineDynamics(await tHotel, new {
                    CurrHotel.Name,
                    CurrHotel.Address,
                    CurrHotel.Tel,
                    CurrHotel.OpenTime,
                    CurrHotel.CloseTime
                }),
                Desks   = await tDesks,
                PayKind = await tPayKind,
            };

            return(Json(result));
        }