This commit is contained in:
Adam 2024-05-27 21:53:24 +02:00
commit 4184c08392
7 changed files with 43 additions and 33 deletions

View File

@ -233,7 +233,10 @@ namespace TIAM.Database.DataLayers.Admins
public Task<List<Company>> GetServiceProvidersAsync() => SessionAsync(ctx => ctx.GetServiceProviders().ToList());
public Task<string> GetServiceProvidersAsyncJson() => SessionAsync(ctx => ctx.GetServiceProviders().ToJson());
public Task<string> GetServiceProvidersJsonAsync()
{
return SessionAsync(ctx => ctx.ServiceProviders.ToJson());
}
public virtual Task<Company?> GetServiceProviderByIdAsync(Guid id) => SessionAsync(ctx => ctx.GetServiceProviderById(id));

View File

@ -1,12 +0,0 @@
using AyCode.Services.SignalRs;
namespace TIAM.Services;
public class SignalRTags : AcSignalRTags
{
public const int GetTransfersAsync = 5;
public const int GetPropertiesByOwnerIdAsync = 6;
public const int UpdateTransferAsync = 7;
public const int GetCompaniesAsync = 8;
public const int UpdateCompanyAsync = 9;
}

View File

@ -0,0 +1,16 @@
using AyCode.Services.SignalRs;
using TIAM.Entities.Transfers;
namespace TIAM.Services;
public class SignalRTags : AcSignalRTags
{
//[SignalMessageTag(null, typeof(SignalResponseMessage<string>), null, null)]
public static readonly int GetTransfersAsync = 5;
public static readonly int GetPropertiesByOwnerIdAsync = 6;
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
public static readonly int UpdateTransferAsync = 7;
public static readonly int GetCompaniesAsync = 8;
}

View File

@ -52,17 +52,17 @@ namespace TIAMWebApp.Client.Services
if (userModelDto != null)
{
Dictionary<Guid, string> userProperties = new Dictionary<Guid, string>();
var userProperties = new Dictionary<Guid, string>();
//get user's properties
bool hasProperties = userModelDto.ServiceProviders.Count > 0 ? true : userModelDto.ServiceProviders.Count == 0 ? false : false;
var hasProperties = userModelDto.ServiceProviders.Count > 0 ? true : (userModelDto.ServiceProviders.Count == 0 ? false : false);
if (hasProperties)
{
//var Properties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id);
var Properties = userModelDto.ServiceProviders;
var properties = userModelDto.ServiceProviders;
_logger.Info($"{Properties.Count} properties found");
foreach ( var property in Properties )
_logger.Info($"{properties.Count} properties found");
foreach ( var property in properties )
{
userProperties.Add(property.Id, property.Name);
}

View File

@ -82,7 +82,7 @@ namespace TIAMWebApp.Server.Controllers
[Route(APIUrls.GetServiceProvidersRouteName)]
public async Task<string> GetServiceProviders()
{
return await _adminDal.GetServiceProvidersAsyncJson();
return await _adminDal.GetServiceProvidersJsonAsync();
}
//18.

View File

@ -61,29 +61,30 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
{
if (messageTag == SignalRTags.GetTransfersAsync)
{
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, await transferDataAPIController.GetTransfers()), requestId);
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await transferDataAPIController.GetTransfers()), requestId);
}
else if (messageTag == SignalRTags.GetPropertiesByOwnerIdAsync)
{
var ownerId = message!.MessagePackTo<SignalRequestByIdMessage>().Id;
var json = (await serviceProviderAPIController.GetServiceProvidersByOwnerId(ownerId)).ToJson();
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, json), requestId);
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, json), requestId);
}
else if (messageTag == SignalRTags.UpdateTransferAsync)
{
//var jsonPostData = message!.MessagePackTo<SignalPostJsonDataMessage>().PostData;
//var jsonPostData = message!.MessagePackTo<SignalPostJsonDataMessage>().PostDataJson;
//_logger.DetailConditional($"PostData: [{jsonPostData}]");
//var transfer = jsonPostData.JsonTo<Transfer>()!;
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage>().PostData.JsonTo<Transfer>()!;
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage<Transfer>>().PostData;
await transferDataAPIController.UpdateTransfer(transfer);
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, transfer.ToJson()), requestId);
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId);
}
else if (messageTag == SignalRTags.GetCompaniesAsync)
{
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId);
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId);
}
else if (messageTag == SignalRTags.UpdateCompanyAsync)
{

View File

@ -88,8 +88,9 @@ namespace TIAMWebApp.Shared.Application.Services
Logger.DebugConditional($"Client SendMessageToServerAsync; {nameof(messageTag)}: {messageTag}; {nameof(requestId)}: {requestId};");
await StartConnection();
HubConnection.SendAsync(nameof(IAcSignalRHubClient.OnReceiveMessage), messageTag, message?.ToMessagePack(ContractlessStandardResolver.Options), requestId).Forget();
var msgp = message?.ToMessagePack(ContractlessStandardResolver.Options);
HubConnection.SendAsync(nameof(IAcSignalRHubClient.OnReceiveMessage), messageTag, msgp, requestId).Forget();
}
#region CRUD
@ -104,9 +105,9 @@ namespace TIAMWebApp.Shared.Application.Services
=> SendMessageToServerAsync(messageTag, null, responseCallback);
public virtual Task<TPostData?> UpdateAsync<TPostData>(int messageTag, TPostData postData) where TPostData : class
=> SendMessageToServerAsync<TPostData>(messageTag, new SignalPostJsonDataMessage(postData), AcDomain.NextUniqueInt32);
public virtual Task UpdateAsync<TPostData>(int messageTag, TPostData postData, Action<ISignalResponseMessage<TPostData?>> responseCallback)
=> SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage(postData!), responseCallback);
=> SendMessageToServerAsync<TPostData>(messageTag, new SignalPostJsonDataMessage<TPostData>(postData), AcDomain.NextUniqueInt32);
public virtual Task UpdateAsync<TPostData>(int messageTag, TPostData postData, Action<ISignalResponseMessage<TPostData?>> responseCallback) where TPostData : class
=> SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage<TPostData>(postData), responseCallback);
#endregion CRUD
@ -181,23 +182,24 @@ namespace TIAMWebApp.Shared.Application.Services
if (requestId.HasValue && _responseByRequestId.ContainsKey(requestId.Value))
{
var reqId = requestId.Value;
var responseMessage = message.MessagePackTo<SignalResponseJsonMessage>(ContractlessStandardResolver.Options);
switch (_responseByRequestId[reqId])
{
case null:
_responseByRequestId[reqId] = message.MessagePackTo<SignalResponseMessage<string>>();
_responseByRequestId[reqId] = responseMessage;
return Task.CompletedTask;
case Action<ISignalResponseMessage<string>> messagePackCallback:
_responseByRequestId.TryRemove(reqId, out _);
messagePackCallback.Invoke(message.MessagePackTo<SignalResponseMessage<string>>(ContractlessStandardResolver.Options));
messagePackCallback.Invoke(responseMessage);
return Task.CompletedTask;
//case Action<string> jsonCallback:
// _responseByRequestId.TryRemove(reqId, out _);
// jsonCallback.Invoke(message.MessagePackTo<string>());
// jsonCallback.Invoke(responseMessage);
// return Task.CompletedTask;
default: