refactoring, improvements, etc...
This commit is contained in:
parent
a4faa0c2b7
commit
ec93fc7afd
|
|
@ -1,22 +0,0 @@
|
|||
using AyCode.Core.Loggers;
|
||||
using AyCode.Services.SignalRs;
|
||||
using FruitBank.Common.Loggers;
|
||||
using FruitBank.Common.Models;
|
||||
using FruitBank.Common.SignalRs;
|
||||
|
||||
namespace FruitBank.Common.Server.Controllers
|
||||
{
|
||||
public class FruitBankDataController(IEnumerable<IAcLogWriterBase> logWriters)//: IFruitBankDataControllerCommon
|
||||
{
|
||||
private readonly ILogger _logger = new Logger<FruitBankDataController>(logWriters.ToArray());
|
||||
|
||||
|
||||
[SignalR(SignalRTags.GetMeasuringModel)]
|
||||
public MeasuringModel GetMeasuringModel()
|
||||
{
|
||||
_logger.Detail($"GetMeasuringModel invoked");
|
||||
|
||||
return new MeasuringModel($"GetMeasuringModel invoked [{DateTime.Now}]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -39,4 +39,8 @@
|
|||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Controllers\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
using AyCode.Core.Loggers;
|
||||
using AyCode.Models.Server.DynamicMethods;
|
||||
using AyCode.Services.SignalRs;
|
||||
using FruitBank.Common.Interfaces;
|
||||
using FruitBank.Common.Loggers;
|
||||
using FruitBank.Common.Server.Controllers;
|
||||
using FruitBank.Common.SignalRs;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
|
@ -28,7 +28,7 @@ namespace FruitBank.Common.Server.Services.SignalRs;
|
|||
|
||||
public class DevAdminSignalRHub : AcWebSignalRHubWithSessionBase<SignalRTags, Logger<DevAdminSignalRHub>>
|
||||
{
|
||||
public DevAdminSignalRHub(IConfiguration configuration, FruitBankDataController fruitBankDataController/*, SessionService sessionService*/, IEnumerable<IAcLogWriterBase> logWriters)
|
||||
public DevAdminSignalRHub(IConfiguration configuration, IFruitBankDataControllerServer fruitBankDataController/*, SessionService sessionService*/, IEnumerable<IAcLogWriterBase> logWriters)
|
||||
: base(configuration, new Logger<DevAdminSignalRHub>(logWriters.ToArray()))
|
||||
{
|
||||
DynamicMethodCallModels.Add(new AcDynamicMethodCallModel<SignalRAttribute>(fruitBankDataController));
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using AyCode.Interfaces.TimeStampInfo;
|
|||
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
public interface ISippingDocument: IEntityInt, ITimeStampInfo
|
||||
public interface IShippingDocument: IEntityInt, ITimeStampInfo
|
||||
{
|
||||
public int PartnerId { get; set; }
|
||||
public int ShippingId { get; set; }
|
||||
|
|
@ -1,6 +1,12 @@
|
|||
namespace FruitBank.Common.Entities;
|
||||
using FruitBank.Common.Entities;
|
||||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Entities;
|
||||
|
||||
public class Partner : IPartner
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
[Table(Name = FruitBankConstClient.PartnerDbTableName)]
|
||||
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.PartnerDbTableName)]
|
||||
public class Partner : MgEntityBase, IPartner
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
|
@ -11,6 +17,7 @@ public class Partner : IPartner
|
|||
public string City { get; set; }
|
||||
public string Street { get; set; }
|
||||
|
||||
[SkipValuesOnUpdate]
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
}
|
||||
|
|
@ -1,12 +1,18 @@
|
|||
namespace FruitBank.Common.Entities;
|
||||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Entities;
|
||||
|
||||
public class Shipping : IShipping
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
[Table(Name = FruitBankConstClient.ShippingDbTableName)]
|
||||
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingDbTableName)]
|
||||
public class Shipping : MgEntityBase, IShipping
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int PartnerId { get; set; }
|
||||
public DateTime ShippingDate { get; set; }
|
||||
public string LicencePlate { get; set; }
|
||||
|
||||
[SkipValuesOnUpdate]
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Entities;
|
||||
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
[Table(Name = FruitBankConstClient.ShippingDocumentDbTableName)]
|
||||
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingDocumentDbTableName)]
|
||||
public class ShippingDocument : MgEntityBase, IShippingDocument
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int PartnerId { get; set; }
|
||||
public int ShippingId { get; set; }
|
||||
public int ShippingItemId { get; set; }
|
||||
public DateTime ShippingDate { get; set; }
|
||||
public string Country { get; set; }
|
||||
|
||||
[SkipValuesOnUpdate]
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
}
|
||||
|
|
@ -1,6 +1,12 @@
|
|||
namespace FruitBank.Common.Entities;
|
||||
using AyCode.Core.Interfaces;
|
||||
using LinqToDB.Mapping;
|
||||
using Mango.Nop.Core.Entities;
|
||||
|
||||
public class ShippingItem : IShippingItem
|
||||
namespace FruitBank.Common.Entities;
|
||||
|
||||
[Table(Name = FruitBankConstClient.ShippingItemDbTableName)]
|
||||
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingItemDbTableName)]
|
||||
public class ShippingItem : MgEntityBase, IShippingItem
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int ShippingDocumentId { get; set; }
|
||||
|
|
@ -10,6 +16,7 @@ public class ShippingItem : IShippingItem
|
|||
public double MeasuredNetWeight { get; set; }
|
||||
public double MeasuredGrossWeight { get; set; }
|
||||
|
||||
[SkipValuesOnUpdate]
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
namespace FruitBank.Common.Entities;
|
||||
|
||||
public class SippingDocument : ISippingDocument
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int PartnerId { get; set; }
|
||||
public int ShippingId { get; set; }
|
||||
public int ShippingItemId { get; set; }
|
||||
public DateTime ShippingDate { get; set; }
|
||||
public string Country { get; set; }
|
||||
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="linq2db.EntityFrameworkCore" Version="9.0.0" />
|
||||
<PackageReference Include="MessagePack" Version="3.1.4" />
|
||||
<PackageReference Include="MessagePack.Annotations" Version="3.1.4" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.8" />
|
||||
|
|
@ -30,6 +31,12 @@
|
|||
<Reference Include="AyCode.Services">
|
||||
<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\Debug\net9.0\AyCode.Services.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Mango.Nop.Core">
|
||||
<HintPath>..\..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Core\bin\FruitBank\Debug\net9.0\Mango.Nop.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Nop.Core">
|
||||
<HintPath>..\..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Core\bin\FruitBank\Debug\net9.0\Nop.Core.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,11 @@ public static class FruitBankConstClient
|
|||
public static string DefaultHubName = "fbHub";
|
||||
public static string LoggerHubName = "loggerHub";
|
||||
|
||||
public const string PartnerDbTableName = "fbPartner";
|
||||
public const string ShippingDbTableName = "fbShipping";
|
||||
public const string ShippingItemDbTableName = "fbShippingItem";
|
||||
public const string ShippingDocumentDbTableName = "fbShippingDocument";
|
||||
|
||||
|
||||
//public static Guid[] DevAdminIds = new Guid[2] { Guid.Parse("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd"), Guid.Parse("4cbaed43-2465-4d99-84f1-c8bc6b7025f7") };
|
||||
//public static Guid[] SysAdmins = new Guid[3]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface IFruitBankDataControllerClient : IFruitBankDataControllerCommon
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
using FruitBank.Common.Entities;
|
||||
using FruitBank.Common.Models;
|
||||
|
||||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface IFruitBankDataControllerCommon
|
||||
{
|
||||
public Task<List<MeasuringModel>?> GetMeasuringModels();
|
||||
public Task<MeasuringModel?> GetMeasuringModelByShippingId(int shippingId);
|
||||
|
||||
public Task<List<Partner>?> GetPartners();
|
||||
public Task<Partner?> GetPartnerById(int id);
|
||||
|
||||
public Task<List<Shipping>?> GetShippings();
|
||||
public Task<Shipping?> GetShippingById(int id);
|
||||
|
||||
public Task<List<ShippingItem>?> GetShippingItem();
|
||||
public Task<ShippingItem?> GetShippingItemById(int id);
|
||||
|
||||
public Task<List<ShippingDocument>?> GetShippingDocuments();
|
||||
public Task<ShippingDocument?> GetShippingDocumentById(int id);
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
namespace FruitBank.Common.Interfaces;
|
||||
|
||||
public interface IFruitBankDataControllerServer : IFruitBankDataControllerCommon
|
||||
{
|
||||
}
|
||||
|
|
@ -6,12 +6,24 @@ public class SignalRTags : AcSignalRTags
|
|||
{
|
||||
public const int GetSiteViewModelByUserId = int.MaxValue;
|
||||
|
||||
public const int GetMeasuringModel = 10;
|
||||
public const int GetMeasuringModels = 10;
|
||||
public const int GetMeasuringModelByShippingId = 11;
|
||||
|
||||
public const int GetPartners = 20;
|
||||
public const int GetPartnerById = 21;
|
||||
|
||||
public const int GetShippings = 40;
|
||||
public const int GetShippingById = 41;
|
||||
|
||||
public const int GetShippingItems = 50;
|
||||
public const int GetShippingItemById = 51;
|
||||
|
||||
public const int GetShippingDocuments = 60;
|
||||
public const int GetShippingDocumentById = 61;
|
||||
|
||||
|
||||
public const int AuthenticateUser = 160;
|
||||
public const int RefreshToken = 200;
|
||||
|
||||
|
||||
public const int GetAllLogItemsByFilterText = 1000;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<h3>AI Chat</h3>
|
||||
|
||||
<input @bind="_userName" placeholder="Your name" />
|
||||
<input @bind="_message" placeholder="Type message..." />
|
||||
<input @bind="_message" placeholder="Partner ID..." />
|
||||
<button @onclick="Send">Send</button>
|
||||
|
||||
<ul>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
using AyCode.Core.Loggers;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Core.Loggers;
|
||||
using AyCode.Models.Users;
|
||||
using FruitBank.Common.Loggers;
|
||||
using FruitBank.Common.Models;
|
||||
using FruitBankHybrid.Shared.Services.Loggers;
|
||||
using FruitBankHybrid.Shared.Services.SignalRs;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
|
@ -8,6 +11,7 @@ using Microsoft.JSInterop;
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
|
@ -35,9 +39,14 @@ namespace FruitBankHybrid.Shared.Pages
|
|||
|
||||
private async Task Send()
|
||||
{
|
||||
_message = string.Empty;
|
||||
var measuringModel = new MeasuringModel();
|
||||
|
||||
var measuringModel = (await FruitBankSignalRClient.GetMeasuringModelAsync())!;
|
||||
if (int.TryParse(_message, out var partnerId))
|
||||
{
|
||||
_message = string.Empty;
|
||||
|
||||
measuringModel.Name = (await FruitBankSignalRClient.GetPartnerById(partnerId))?.Name!;
|
||||
}
|
||||
|
||||
_messages.Add((_userName, measuringModel?.Name ?? "ERROR"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,28 +3,56 @@ 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;
|
||||
|
||||
namespace FruitBankHybrid.Shared.Services.SignalRs
|
||||
{
|
||||
public class FruitBankSignalRClient : AcSignalRClientBase//, IFruitBankDataControllerClient
|
||||
public class FruitBankSignalRClient : AcSignalRClientBase, IFruitBankDataControllerClient
|
||||
{
|
||||
public FruitBankSignalRClient(/*IServiceProvider serviceProvider, */IEnumerable<IAcLogWriterClientBase> logWriters) : base($"{FruitBankConstClient.BaseUrl}/{FruitBankConstClient.DefaultHubName}", new LoggerClient(nameof(FruitBankSignalRClient), logWriters.ToArray()))
|
||||
public FruitBankSignalRClient( /*IServiceProvider serviceProvider, */ IEnumerable<IAcLogWriterClientBase> logWriters) : base($"{FruitBankConstClient.BaseUrl}/{FruitBankConstClient.DefaultHubName}", new LoggerClient(nameof(FruitBankSignalRClient), logWriters.ToArray()))
|
||||
{
|
||||
//var a = ActivatorUtilities.GetServiceOrCreateInstance<TransferDataService>(serviceProvider);
|
||||
ConstHelper.NameByValue<SignalRTags>(0);
|
||||
}
|
||||
|
||||
public Task<MeasuringModel?> GetMeasuringModelAsync()
|
||||
=> GetAllAsync<MeasuringModel>(SignalRTags.GetMeasuringModel);
|
||||
public Task<MeasuringModel?> GetMeasuringModelByShippingId(int shippingId)
|
||||
=> GetAllAsync<MeasuringModel>(SignalRTags.GetMeasuringModelByShippingId);
|
||||
|
||||
//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);
|
||||
|
||||
public Task<Partner?> GetPartnerById(int id)
|
||||
=> GetByIdAsync<Partner?>(SignalRTags.GetPartnerById, id);
|
||||
|
||||
public Task<List<Shipping>?> GetShippings()
|
||||
=> GetAllAsync<List<Shipping>>(SignalRTags.GetShippings);
|
||||
|
||||
public Task<Shipping?> GetShippingById(int id)
|
||||
=> GetByIdAsync<Shipping?>(SignalRTags.GetShippingById, id);
|
||||
|
||||
public Task<List<ShippingItem>?> GetShippingItem()
|
||||
=> GetAllAsync<List<ShippingItem>>(SignalRTags.GetShippingItems);
|
||||
|
||||
public Task<ShippingItem?> GetShippingItemById(int id)
|
||||
=> GetByIdAsync<ShippingItem?>(SignalRTags.GetShippingItemById, id);
|
||||
|
||||
public Task<List<ShippingDocument>?> GetShippingDocuments()
|
||||
=> GetAllAsync<List<ShippingDocument>>(SignalRTags.GetShippingDocuments);
|
||||
|
||||
public Task<ShippingDocument?> GetShippingDocumentById(int id)
|
||||
=> GetByIdAsync<ShippingDocument?>(SignalRTags.GetShippingDocumentById, id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
using AyCode.Core.Loggers;
|
||||
using AyCode.Services.Server.SignalRs;
|
||||
using FruitBank.Common;
|
||||
using FruitBank.Common.Interfaces;
|
||||
using FruitBank.Common.Loggers;
|
||||
using FruitBank.Common.Server.Controllers;
|
||||
using FruitBank.Common.Server.Services.Loggers;
|
||||
using FruitBank.Common.Server.Services.SignalRs;
|
||||
using FruitBankHybrid.Shared.Services;
|
||||
|
|
@ -22,7 +22,7 @@ builder.Services.AddSingleton<LoggerToLoggerApiController>();
|
|||
builder.Services.AddSingleton<IAcLogWriterBase, ConsoleLogWriter>();
|
||||
//builder.Services.AddSingleton<SessionService>();
|
||||
|
||||
builder.Services.AddScoped<FruitBankDataController>();
|
||||
//builder.Services.AddScoped<IFruitBankDataControllerServer, FruitBankDataController>();
|
||||
builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 256 * 1024);
|
||||
|
||||
var app = builder.Build();
|
||||
|
|
|
|||
Loading…
Reference in New Issue