Ejemplo n.º 1
0
        public void AddRestaurantWaiter(RestaurantWaiterDTO restaurantWaiterDto, long restaurantAdminId)
        {
            ValidateRestaurantWaiter(restaurantWaiterDto, 0);
            var restaurant = _restaurantService.GetRestaurantByAdminId(restaurantAdminId);

            if (restaurant == null)
            {
                throw new NotFoundException(ErrorCodes.RestaurantNotFound);
            }
            //var consumedWaiters = restaurant.GlobalAdmin.Restaurants.Where(x => !x.IsDeleted).Select(x => x.WaitersLimit).Sum();
            // var consumedWaiters = _packageService.Query(x => x.GlobalAdminId == restaurant.GlobalAdminId).Select(x => x.Waiters.Count(w=>!w.IsDeleted)).Sum();
            //Package package;

            //var packages = _packageService.Query(x => x.AdminId == restaurant.GlobalAdminId).Include(x => x.Waiters).Select().ToList();
            //package = packages.OrderBy(x => x.Start).FirstOrDefault();
            //int count = 1;
            //while (true)
            //{
            //    if (package.MaxNumberOfWaiters > package.Waiters.Count(x => !x.IsDeleted))
            //    {
            //        break;
            //    }
            //    //else
            //    //{
            //    //    consumedWaiters = consumedWaiters - package.MaxNumberOfWaiters;
            //    //}

            //    package = packages.OrderBy(x => x.Start).Skip(count).FirstOrDefault();
            //    count++;
            //}
            ///var packages = restaurant.GlobalAdmin.Packages;
            RestaurantWaiter restaurantWaiter = Mapper.Map <RestaurantWaiter>(restaurantWaiterDto);

            restaurantWaiter.RestaurantId = restaurant.RestaurantId;
            restaurantWaiter.Password     = PasswordHelper.Encrypt(restaurantWaiterDto.Password);
            restaurantWaiter.Role         = Enums.RoleType.Waiter;
            restaurantWaiter.IsActive     = true;
            //restaurantWaiter.PackageId = package.PackageId;
            _restaurantWaiterService.Insert(restaurantWaiter);
            SaveChanges();
            //UpdateSubscription(restaurant.GlobalAdminId, package.PackageGuid, package.Waiters.Count(x => !x.IsDeleted));
        }