예제 #1
0
 private void ValidateRestaurantWaiter(RestaurantWaiterDTO restaurantWaiterDto, long restaurantId)
 {
     if (string.IsNullOrEmpty(restaurantWaiterDto.Name))
     {
         throw new ValidationException(ErrorCodes.EmptyRestaurantWaiterUserName);
     }
     if (restaurantWaiterDto.Name.Length > 100)
     {
         throw new ValidationException(ErrorCodes.RestaurantWaiterNameExceedLength);
     }
     if (string.IsNullOrEmpty(restaurantWaiterDto.UserName))
     {
         throw new ValidationException(ErrorCodes.EmptyRestaurantWaiterUserName);
     }
     if (restaurantWaiterDto.UserName.Length > 100)
     {
         throw new ValidationException(ErrorCodes.RestaurantWaiterNameExceedLength);
     }
     if (string.IsNullOrEmpty(restaurantWaiterDto.Password))
     {
         throw new ValidationException(ErrorCodes.EmptyRestaurantAdminPassword);
     }
     if (restaurantWaiterDto.Password.Length < 8 || restaurantWaiterDto.Password.Length > 25)
     {
         throw new ValidationException(ErrorCodes.RestaurantAdminPasswordLengthNotMatched);
     }
     if (_restaurantWaiterService.CheckUserNameDuplicated(restaurantWaiterDto.UserName, restaurantId))
     {
         throw new ValidationException(ErrorCodes.RestaurantAdminUserNameAlreadyExist);
     }
     if (_UserService.CheckUserNameDuplicated(restaurantWaiterDto.UserName, restaurantWaiterDto.UserId))
     {
         throw new ValidationException(ErrorCodes.RestaurantAdminUserNameAlreadyExist);
     }
 }
예제 #2
0
        public void UpdateRestaurantWaiter(RestaurantWaiterDTO restaurantWaiterDto)
        {
            var restaurantWaiter = _restaurantWaiterService.Find(restaurantWaiterDto.UserId);

            if (restaurantWaiter == null)
            {
                throw new NotFoundException(ErrorCodes.UserNotFound);
            }

            ValidateRestaurantWaiter(restaurantWaiterDto, restaurantWaiter.RestaurantId);
            restaurantWaiter.Name     = restaurantWaiterDto.Name;
            restaurantWaiter.UserName = restaurantWaiterDto.UserName;
            restaurantWaiter.Password = PasswordHelper.Encrypt(restaurantWaiterDto.Password);
            restaurantWaiter.BranchId = restaurantWaiterDto.BranchId;
            _restaurantWaiterService.Update(restaurantWaiter);
            SaveChanges();
        }
예제 #3
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));
        }