예제 #1
0
        public void AddSideItem(SideItemDTO sideItemDto, long restaurantAdminId, string language)
        {
            var restaurant = _restaurantService.GetRestaurantByAdminId(restaurantAdminId);

            if (restaurant == null)
            {
                throw new NotFoundException(ErrorCodes.RestaurantNotFound);
            }
            if (restaurant.IsDeleted)
            {
                throw new ValidationException(ErrorCodes.RestaurantDeleted);
            }
            ValidateSideItem(sideItemDto, language, restaurantAdminId);
            var sideItem = new SideItem();

            sideItem.SideItemTranslations.Add(new SideItemTranslation
            {
                SideItemName = sideItemDto.SideItemName,
                Language     = language
            });
            sideItem.Value        = sideItemDto.Value;
            sideItem.RestaurantId = restaurant.RestaurantId;
            _sideItemService.Insert(sideItem);
            _sideItemTranslationService.InsertRange(sideItem.SideItemTranslations);
            SaveChanges();
        }
예제 #2
0
        public void UpdateSideItem(SideItemDTO sideItemDto, long restaurantAdminId, string language)
        {
            var restaurant = _restaurantService.GetRestaurantByAdminId(restaurantAdminId);

            if (restaurant == null)
            {
                throw new NotFoundException(ErrorCodes.RestaurantNotFound);
            }
            if (restaurant.IsDeleted)
            {
                throw new ValidationException(ErrorCodes.RestaurantDeleted);
            }
            var sideItem = _sideItemService.Find(sideItemDto.SideItemId);

            if (sideItem == null)
            {
                throw new NotFoundException(ErrorCodes.SizeNotFound);
            }
            ValidateSideItem(sideItemDto, language, restaurantAdminId);
            var sizeTranslation = sideItem.SideItemTranslations.FirstOrDefault(x => x.Language.ToLower() == language.ToLower());

            sideItem.Value = sideItemDto.Value;
            if (sizeTranslation == null)
            {
                sideItem.SideItemTranslations.Add(new SideItemTranslation
                {
                    Language     = language,
                    SideItemName = sideItemDto.SideItemName
                });
            }
            else
            {
                sizeTranslation.SideItemName = sideItemDto.SideItemName;
            }
            sideItem.RestaurantId = restaurant.RestaurantId;
            _sideItemService.Update(sideItem);
            SaveChanges();
        }
예제 #3
0
 private void ValidateSideItem(SideItemDTO sideItemDto, string language, long restaurantAdminId)
 {
     if (string.IsNullOrEmpty(sideItemDto.SideItemName))
     {
         throw new ValidationException(ErrorCodes.EmptySideItemName);
     }
     if (sideItemDto.SideItemName.Length > 100)
     {
         throw new ValidationException(ErrorCodes.SideItemNameExceedLength);
     }
     if (sideItemDto.SideItemName.Length < 3)
     {
         throw new ValidationException(ErrorCodes.SideItemNameMinimumLength);
     }
     if (sideItemDto.Value <= 0)
     {
         throw new ValidationException(ErrorCodes.InvalidSideItemValue);
     }
     if (_sideItemTranslationService.CheckSideItemNameExist(sideItemDto.SideItemName, language, sideItemDto.SideItemId, restaurantAdminId))
     {
         throw new ValidationException(ErrorCodes.SideItemNameAlreadyExist);
     }
 }