FichaBackend/FichaBackend/Services/IPublicDataService.cs
Sergey Karmanov 79aa6fedea
All checks were successful
Create and publish a Docker image / Publish image (push) Successful in 18s
Create and publish a Docker image / Deploy image (push) Successful in 3s
Добавил ImageUrl
2023-08-25 02:17:10 +03:00

57 lines
1.8 KiB
C#

using FichaBackend.Models;
using Microsoft.EntityFrameworkCore;
namespace FichaBackend.Services;
public interface IPublicDataService
{
public Task<IEnumerable<City>> GetAllCity();
public Task<IEnumerable<Film>> GetAllFilmsInCity(string cityName);
public Task UpdateFilmsInCity(IEnumerable<FilmDto> films);
public bool CityExsist(string cityName);
}
public class PublicDataService : IPublicDataService
{
private readonly DatabaseContext _databaseContext;
public PublicDataService(DatabaseContext databaseContext)
{
_databaseContext = databaseContext;
}
public async Task<IEnumerable<City>> GetAllCity()
{
return await _databaseContext.Cities.ToListAsync();
}
public async Task<IEnumerable<Film>> GetAllFilmsInCity(string cityName)
{
return await _databaseContext.Films.Where(x => x.City.Name.ToLower() == cityName.ToLower()).ToListAsync();
}
public async Task UpdateFilmsInCity(IEnumerable<FilmDto> films)
{
await _databaseContext.Films.Where(x => x.City.Name == films.First().City).ForEachAsync(x => _databaseContext.Films.Remove(x));
foreach (var filmDto in films)
{
var film = new Film();
film.FilmName = filmDto.FilmName;
film.Cinema = filmDto.Cinema;
film.Price = filmDto.Price ?? 0;
film.Genre = filmDto.Genre;
film.Time = filmDto.Time;
film.ImageURL = filmDto.ImageURL;
film.City = await _databaseContext.Cities.FirstOrDefaultAsync(x => x.Name == filmDto.City);
await _databaseContext.Films.AddAsync(film);
}
await _databaseContext.SaveChangesAsync();
}
public bool CityExsist(string cityName)
{
return _databaseContext.Cities.Any(x => x.Name.ToLower() == cityName.ToLower());
}
}