public async Task <string> Update(BarDTO barDto) //tested
        {
            barDto.ValidateIfNull(ExceptionMessages.BarDtoNull);
            var barToEdit = await this.GetBar(barDto.Id);

            barToEdit.ValidateIfNull(ExceptionMessages.BarNull);

            barDto.ImageUrl = _fileUploadService.SetUniqueImagePathForBar(barDto.BarImage);

            barToEdit = barDto.EditBarDTOToBar(barToEdit);
            var coctailsInBar = barDto.Cocktails.Select(c => c.MapToCocktailModel()).ToList();

            foreach (var cocktail in coctailsInBar)
            {
                AddCocktailToBar(cocktail, barToEdit);
            }

            await _context.SaveChangesAsync();

            return(barToEdit.Name);
        }
        public async Task <string> AddBarAsync(BarDTO barDTO) //tested
        {
            barDTO.ValidateIfNull(ExceptionMessages.BarDtoNull);
            barDTO.ImageUrl = _fileUploadService.SetUniqueImagePathForBar(barDTO.BarImage);

            var newBar     = barDTO.MapBarDTOToBar();              // to be tested in MapperTests
            var newAddress = barDTO.MapBarDTOToAddress();          // to be tested in MapperTests

            newBar.Address = newAddress;
            _context.Bars.Add(newBar);
            await _context.SaveChangesAsync();

            var coctailsInBar = barDTO.Cocktails.Select(c => c.MapToCocktailModel()).ToList();

            foreach (var cocktail in coctailsInBar)
            {
                AddCocktailToBar(cocktail, newBar);
            }

            await _context.SaveChangesAsync();

            return(newBar.Name);
        }