using System.Threading.Tasks; using AutoMapper; using EstusShots.Server.Models; using EstusShots.Shared.Interfaces; using EstusShots.Shared.Models; using EstusShots.Shared.Models.Parameters; using Microsoft.Extensions.Logging; namespace EstusShots.Server.Services { public class PlayersService : IPlayersController { private readonly ILogger _logger; private readonly EstusShotsContext _context; private readonly IMapper _mapper; public PlayersService(ILogger logger, EstusShotsContext context, IMapper mapper) { _logger = logger; _context = context; _mapper = mapper; } public async Task> GetPlayers(GetPlayersParameter parameter) { throw new System.NotImplementedException(); } public async Task> GetPlayerDetails(GetPlayerDetailsParameter parameter) { throw new System.NotImplementedException(); } public async Task> SavePlayer(SavePlayerParameter parameter) { var player = _mapper.Map(parameter.Player); if (player.PlayerId.IsEmpty()) { _context.Players.Add(player); var count = await _context.SaveChangesAsync(); _logger.LogInformation($"Created {count} rows"); return new ApiResponse(new SavePlayerResponse(player.PlayerId)); } // TODO Update Player return new ApiResponse(new OperationResult(false, "NotImplemented")); } public async Task> DeletePlayers(DeletePlayerParameter parameter) { throw new System.NotImplementedException(); } } }