using Cloud_Manager; using Cloud_Manager.Models.CustomModels; using Cloud_Manager.Models.Enums; using Cloud_Manager.Models.Interfaces; using Cloud_Manager.Models.POSModels; using Microsoft.EntityFrameworkCore; using Microsoft.Net.Http.Headers; using MySqlConnector; using System.Text.Json; namespace Cloud_Manager.Services { public class CustomerService : ICustomer { private readonly BiskAcdbContext m_context; private readonly IKeyService m_tokenService; private readonly HttpContext m_httpContext; public CustomerService(BiskAcdbContext a_context, IKeyService a_tokenService, IHttpContextAccessor a_httpContextAccessor) { m_context = a_context; m_tokenService = a_tokenService; m_httpContext = a_httpContextAccessor?.HttpContext; } public IEnumerable FetchCustomers() { throw new NotImplementedException(); } public Task> GetCustomers() { throw new NotImplementedException(); } public async Task SyncCustomers(List a_details) { string apiKey = m_httpContext.Request.Headers["BISK-API-KEY"]!; if (AuthEnums.Valid == m_tokenService.ValidateKey(apiKey)) { string jsonString = JsonSerializer.Serialize(a_details); using (var command = m_context.Database.GetDbConnection().CreateCommand()) { m_context.Database.OpenConnection(); command.CommandText = "CALL CustomerSync(@p0)"; command.Parameters.Add(new MySqlParameter("@p0", jsonString)); command.ExecuteNonQuery(); } } } } }