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); } }
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(); }
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)); }