FruitBankHybridApp/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs

111 lines
4.4 KiB
C#

using AyCode.Core.Helpers;
using AyCode.Core.Loggers;
using AyCode.Services.Server.SignalRs;
using AyCode.Services.SignalRs;
using FruitBank.Common;
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;
namespace FruitBankHybrid.Shared.Services.SignalRs
{
public class FruitBankSignalRClient : AcSignalRClientBase, IFruitBankDataControllerClient
{
public FruitBankSignalRClient( /*IServiceProvider serviceProvider, */ IEnumerable<IAcLogWriterClientBase> logWriters) : base($"{FruitBankConstClient.BaseUrl}/{FruitBankConstClient.DefaultHubName}", new LoggerClient(nameof(FruitBankSignalRClient), logWriters.ToArray()))
{
ConstHelper.NameByValue<SignalRTags>(0);
}
public Task<MeasuringModel?> GetMeasuringModelByShippingId(int shippingId)
=> GetByIdAsync<MeasuringModel>(SignalRTags.GetMeasuringModelByShippingId, shippingId);
//public Task GetWelcomeMessageAsync(string message, Action? callback = null)
//{
// Logger.Detail($"GetWelcomeMessageAsync client called; message: {message}");
// return GetAllAsync<string>(SignalRTags.GetAllTransferDestinations, callback);
//}
public Task<List<MeasuringModel>?> GetMeasuringModels()
=> GetAllAsync<List<MeasuringModel>>(SignalRTags.GetMeasuringModels);
public Task<List<Partner>?> GetPartners()
=> GetAllAsync<List<Partner>>(SignalRTags.GetPartners);
#region Partner
public Task<Partner?> GetPartnerById(int id)
=> GetByIdAsync<Partner?>(SignalRTags.GetPartnerById, id);
public Task<Partner?> UpdatePartner(Partner partner)
=> PostDataAsync(SignalRTags.UpdatePartner, partner);
#endregion Partner
#region Shipping
public Task<List<Shipping>?> GetShippings()
=> GetAllAsync<List<Shipping>>(SignalRTags.GetShippings);
public Task<List<Shipping>?> GetNotMeasuredShippings()
=> GetAllAsync<List<Shipping>>(SignalRTags.GetNotMeasuredShippings);
public Task<Shipping?> GetShippingById(int id)
=> GetByIdAsync<Shipping?>(SignalRTags.GetShippingById, id);
public Task<Shipping?> UpdateShipping(Shipping shipping)
=> PostDataAsync(SignalRTags.UpdateShipping, shipping);
#endregion Shipping
#region ShippingItem
public Task<List<ShippingItem>?> GetShippingItems()
=> GetAllAsync<List<ShippingItem>>(SignalRTags.GetShippingItems);
public Task<ShippingItem?> GetShippingItemById(int id)
=> GetByIdAsync<ShippingItem?>(SignalRTags.GetShippingItemById, id);
public Task<ShippingItem?> UpdateShippingItem(ShippingItem shippingItem)
=> PostDataAsync(SignalRTags.UpdateShippingItem, shippingItem);
#endregion ShippingItem
#region ShippingDocument
public Task<List<ShippingDocument>?> GetShippingDocuments()
=> GetAllAsync<List<ShippingDocument>>(SignalRTags.GetShippingDocuments);
public Task<ShippingDocument?> GetShippingDocumentById(int id)
=> GetByIdAsync<ShippingDocument?>(SignalRTags.GetShippingDocumentById, id);
public Task<ShippingDocument?> UpdateShippingDocument(ShippingDocument shippingDocument)
=> PostDataAsync(SignalRTags.UpdateShippingDocument, shippingDocument);
#endregion ShippingDocument
#region Customer
public Task<List<CustomerDto>?> GetMeasuringUsers()
=> GetAllAsync<List<CustomerDto>>(SignalRTags.GetMeasuringUsers);
#endregion Customer
#region Product
public Task<List<ProductDto>?> GetProductDtos()
=> GetAllAsync<List<ProductDto>>(SignalRTags.GetProductDtos);
#endregion Product
#region Authenticate
public Task<MgLoginModelResponse?> LoginMeasuringUser(string customerEmail, string customerPassword)
=> LoginMeasuringUser(new MgLoginModelRequest(customerEmail, customerPassword));
public Task<MgLoginModelResponse?> LoginMeasuringUser(MgLoginModelRequest loginModelRequest)
=> PostDataAsync<MgLoginModelRequest, MgLoginModelResponse>(SignalRTags.AuthenticateUser, loginModelRequest);
#endregion Authenticate
}
}