using AyCode.Core.Helpers; using AyCode.Core.Loggers; using AyCode.Services.Server.SignalRs; using AyCode.Services.SignalRs; using FruitBank.Common; using FruitBank.Common.Dtos; using FruitBank.Common.Entities; using FruitBank.Common.Interfaces; using FruitBank.Common.Models; using FruitBank.Common.SignalRs; using FruitBankHybrid.Shared.Services.Loggers; using Mango.Nop.Core.Dtos; using Mango.Nop.Core.Models; using Nop.Core.Domain.Customers; namespace FruitBankHybrid.Shared.Services.SignalRs { public class FruitBankSignalRClient : AcSignalRClientBase, IFruitBankDataControllerClient, ICustomOrderSignalREndpointClient { public FruitBankSignalRClient( /*IServiceProvider serviceProvider, */ IEnumerable logWriters) : base($"{FruitBankConstClient.BaseUrl}/{FruitBankConstClient.DefaultHubName}", new LoggerClient(nameof(FruitBankSignalRClient), logWriters.ToArray())) { ConstHelper.NameByValue(0); } public Task?> GetMeasuringModels() => GetAllAsync>(SignalRTags.GetMeasuringModels); public Task?> GetPartners() => GetAllAsync>(SignalRTags.GetPartners); #region Partner public Task GetPartnerById(int id) => GetByIdAsync(SignalRTags.GetPartnerById, id); public Task UpdatePartner(Partner partner) => PostDataAsync(SignalRTags.UpdatePartner, partner); #endregion Partner #region Shipping public Task?> GetShippings() => GetAllAsync>(SignalRTags.GetShippings); public Task?> GetNotMeasuredShippings() => GetAllAsync>(SignalRTags.GetNotMeasuredShippings); public Task GetShippingById(int id) => GetByIdAsync(SignalRTags.GetShippingById, id); public Task UpdateShipping(Shipping shipping) => PostDataAsync(SignalRTags.UpdateShipping, shipping); #endregion Shipping #region ShippingItem public Task?> GetShippingItems() => GetAllAsync>(SignalRTags.GetShippingItems); public Task GetShippingItemById(int id) => GetByIdAsync(SignalRTags.GetShippingItemById, id); public Task UpdateShippingItem(ShippingItem shippingItem) => PostDataAsync(SignalRTags.UpdateShippingItem, shippingItem); public Task UpdateMeasuredShippingItem(ShippingItem shippingItem) => PostDataAsync(SignalRTags.UpdateMeasuredShippingItem, shippingItem); #endregion ShippingItem #region ShippingItemPallet public Task AddShippingItemPallet(ShippingItemPallet shippingItemPallet) => PostDataAsync(SignalRTags.AddShippingItemPallet, shippingItemPallet); public Task UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet) => PostDataAsync(SignalRTags.UpdateShippingItemPallet, shippingItemPallet); public Task AddOrUpdateMeasuredShippingItemPallets(List shippingItemPallets) => PostDataAsync, ShippingItem>(SignalRTags.UpdateShippingItemPallet, shippingItemPallets); #endregion ShippingItemPallet #region ShippingDocument public Task?> GetShippingDocuments() => GetAllAsync>(SignalRTags.GetShippingDocuments); public Task GetShippingDocumentById(int id) => GetByIdAsync(SignalRTags.GetShippingDocumentById, id); public Task UpdateShippingDocument(ShippingDocument shippingDocument) => PostDataAsync(SignalRTags.UpdateShippingDocument, shippingDocument); #endregion ShippingDocument #region Customer public Task?> GetMeasuringUsers() => GetAllAsync>(SignalRTags.GetMeasuringUsers); public Task?> GetCustomerRolesByCustomerId(int customerId) => GetAllAsync>(SignalRTags.GetCustomerRolesByCustomerId, [customerId]); #endregion Customer #region Product public Task?> GetProductDtos() => GetAllAsync>(SignalRTags.GetProductDtos); public Task?> GetAllMeasuringProductDtos() => GetAllAsync>(SignalRTags.GetAllMeasuringProductDtos); public Task GetMeasuringProductDtoById(int productId) => GetByIdAsync(SignalRTags.GetMeasuringProductDtoById, productId); #endregion Product #region Authenticate public Task LoginMeasuringUser(string customerEmail, string customerPassword) => LoginMeasuringUser(new MgLoginModelRequest(customerEmail, customerPassword)); public Task LoginMeasuringUser(MgLoginModelRequest loginModelRequest) => PostDataAsync(SignalRTags.AuthenticateUser, loginModelRequest); #endregion Authenticate #region Orders public Task?> GetAllOrderDtos() => GetAllAsync>(SignalRTags.GetAllOrderDtos); public Task GetOrderDtoById(int orderId) => GetByIdAsync(SignalRTags.GetOrderDtoById, orderId); public Task?> GetPendingOrderDtos() => GetAllAsync>(SignalRTags.GetPendingOrderDtos); #endregion Orders } }