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