using AutoMapper; using SessionCompanion.Database.Repositories.Base; using SessionCompanion.Database.Tables; using SessionCompanion.Services.Base; using SessionCompanion.Services.Interfaces; using SessionCompanion.ViewModels.CharacterViewModels; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using System.Linq; using Microsoft.EntityFrameworkCore.Internal; using Microsoft.EntityFrameworkCore; using AutoMapper.QueryableExtensions; using System.IO; using Newtonsoft.Json.Linq; namespace SessionCompanion.Services.Services { public class CharacterService : ServiceBase, ICharacterService { public CharacterService(IMapper mapper, IRepository repository) : base(mapper, repository) { } /// /// Funkcja zwraca listę postaci przypisanych do podanego użytkownika /// /// identyfikator użytkownika /// Lista postaci dosępnych dla podanego użytkownika public async Task> GetUserLoginCharacters(int userId) { var characters = await Repository.Get(c => c.UserId.Equals(userId)) .Include(x => x.Biography) .Include(x => x.Statistics) .Include(x => x.Biography).ThenInclude(b => b.Class).ToListAsync(); var result = Mapper.Map>(characters); return result; } /// /// Funkcja zwraca podstawowy widok postaci na podstawie ich id /// /// Lista identyfikatorów postaci /// Podstawowy widok podanych postaci public async Task> GetBasicCharactersData(List charactersId) { var characters = await Repository.Get(c => charactersId.Contains(c.Id)) .Include(x => x.Biography) .ThenInclude(x => x.Class) .Include(x => x.Statistics).ToListAsync(); var result = Mapper.Map>(characters); return result; } } }