Merge
This commit is contained in:
commit
7921cf5e95
|
|
@ -6,15 +6,13 @@ namespace TIAM.Services;
|
||||||
public class SignalRTags : AcSignalRTags
|
public class SignalRTags : AcSignalRTags
|
||||||
{
|
{
|
||||||
//[SignalMessageTag(null, typeof(SignalResponseMessage<string>), null, null)]
|
//[SignalMessageTag(null, typeof(SignalResponseMessage<string>), null, null)]
|
||||||
public static readonly int GetTransfersAsync = 5;
|
public const int GetTransfersAsync = 5;
|
||||||
|
|
||||||
public static readonly int GetPropertiesByOwnerIdAsync = 6;
|
public const int GetPropertiesByOwnerIdAsync = 6;
|
||||||
|
|
||||||
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
|
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
|
||||||
public static readonly int UpdateTransferAsync = 7;
|
public const int UpdateTransferAsync = 7;
|
||||||
public static readonly int GetCompaniesAsync = 8;
|
public const int AddTransferAsync = 8;
|
||||||
|
public const int DeleteTransferAsync = 9;
|
||||||
public static readonly int UpdateCompanyAsync = 9;
|
public const int GetCompaniesAsync = 10;
|
||||||
public static readonly int CreateCompanyAsync = 10;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
@using AyCode.Core.Extensions;
|
@using AyCode.Core.Extensions;
|
||||||
@using AyCode.Core
|
@using AyCode.Core
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
|
@using AyCode.Interfaces.Entities
|
||||||
@using TIAM.Services
|
@using TIAM.Services
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
|
|
@ -338,68 +339,75 @@
|
||||||
transferEditModel.ContactEmail = "your@email.address";
|
transferEditModel.ContactEmail = "your@email.address";
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
|
||||||
{
|
|
||||||
bool success = false;
|
|
||||||
Transfer? transfer = null;
|
|
||||||
|
|
||||||
if (e.IsNew)
|
|
||||||
{
|
|
||||||
//add new orderData to orderData array
|
|
||||||
_logger.Info("New orderData added");
|
|
||||||
//await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_logger.Info("orderData updated at id " + ((Transfer)e.EditModel).Id);
|
|
||||||
|
|
||||||
transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel);
|
|
||||||
//transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel);
|
|
||||||
|
|
||||||
}
|
|
||||||
//get transfer from TransferData by Id
|
|
||||||
|
|
||||||
// foreach (var transferToModify in (List<Transfer>)TransferData)
|
|
||||||
// {
|
|
||||||
// myModel = (Transfer)e.EditModel;
|
|
||||||
|
|
||||||
// if (transferToModify.Id == myModel.Id)
|
|
||||||
// {
|
|
||||||
// //transferToModify.Driver = myModel.Driver;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//if (success)
|
|
||||||
if (transfer != null)
|
|
||||||
{
|
|
||||||
UpdateDataSources(transfer);
|
|
||||||
|
|
||||||
//e.Reload = true;
|
|
||||||
}
|
|
||||||
else UpdateAllDataAsync().Forget();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateDataSources(Transfer transfer)
|
|
||||||
{
|
|
||||||
var transferIndex = TransferDataList.FindIndex(x => x.Id == transfer.Id);
|
|
||||||
if (transferIndex > -1) TransferDataList[transferIndex] = transfer;
|
|
||||||
else TransferDataList.Add(transfer);
|
|
||||||
|
|
||||||
var appointment = CreateAppointmentModel(transfer);
|
|
||||||
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
|
||||||
|
|
||||||
if (appointmentIndex > -1) AppointmentModels[appointmentIndex] = appointment;
|
|
||||||
else AppointmentModels.Add(appointment);
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||||
{
|
{
|
||||||
|
var transfer = (Transfer)e.DataItem;
|
||||||
|
|
||||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||||
//remove orderData from orderData array
|
//remove orderData from orderData array
|
||||||
_logger.Info("orderData deleted");
|
_logger.Info("transfer delete");
|
||||||
|
|
||||||
|
PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
||||||
//await UpdateDataAsync();
|
//await UpdateDataAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
||||||
|
{
|
||||||
|
var transfer = (Transfer)e.EditModel;
|
||||||
|
var logText = e.IsNew ? "add" : "update";
|
||||||
|
|
||||||
|
_logger.Info($"EditModelSaving, {logText} transfer; transferId " + transfer.Id);
|
||||||
|
|
||||||
|
PostDataToServerAsync(transfer, e.IsNew ? SignalRTags.AddTransferAsync : SignalRTags.UpdateTransferAsync).Forget();
|
||||||
|
|
||||||
|
//await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
|
||||||
|
//transfer = await transferDataService.UpdateTransferAsync(transfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Task PostDataToServerAsync<T>(T transfer, int messageTag, bool isDelete = false) where T : Transfer //IEntityGuid
|
||||||
|
{
|
||||||
|
_logger.Info("PostDataToServerAsync called; transferId " + transfer.Id);
|
||||||
|
|
||||||
|
RefreshDataSources(transfer, isDelete); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
||||||
|
|
||||||
|
return devAdminSignalClient.PostDataAsync(messageTag, transfer, repsonse =>
|
||||||
|
{
|
||||||
|
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||||
|
{
|
||||||
|
UpdateAllDataAsync().Forget();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshDataSources(repsonse.ResponseData, isDelete);
|
||||||
|
StateHasChanged();
|
||||||
|
});
|
||||||
|
|
||||||
|
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshDataSources(Transfer transfer, bool isDelete)
|
||||||
|
{
|
||||||
|
var transferIndex = TransferDataList.FindIndex(x => x.Id == transfer.Id);
|
||||||
|
|
||||||
|
if (isDelete && transferIndex > -1) TransferDataList.RemoveAt(transferIndex);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (transferIndex > -1) TransferDataList[transferIndex] = transfer;
|
||||||
|
else TransferDataList.Add(transfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
||||||
|
if (isDelete && appointmentIndex > -1) AppointmentModels.RemoveAt(appointmentIndex);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var appointment = CreateAppointmentModel(transfer);
|
||||||
|
|
||||||
|
if (appointmentIndex > -1) AppointmentModels[appointmentIndex] = appointment;
|
||||||
|
else AppointmentModels.Add(appointment);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Task UpdateAllDataAsync()
|
public Task UpdateAllDataAsync()
|
||||||
{
|
{
|
||||||
_logger.Info("UpdateAllDataAsync called");
|
_logger.Info("UpdateAllDataAsync called");
|
||||||
|
|
@ -472,7 +480,7 @@
|
||||||
|
|
||||||
void ColumnChooserButton_Click()
|
void ColumnChooserButton_Click()
|
||||||
{
|
{
|
||||||
Grid2.ShowColumnChooser();
|
Grid2.ShowColumnChooser();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGrid Grid2 { get; set; }
|
IGrid Grid2 { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -391,11 +391,11 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route(APIUrls.GetTransferByIdRouteName)]
|
[Route(APIUrls.GetTransferByIdRouteName)]
|
||||||
public async Task<IActionResult> GetTransferById([FromBody] Guid transferID)
|
public async Task<IActionResult> GetTransferById([FromBody] Guid transferId)
|
||||||
{
|
{
|
||||||
_logger.Info(@"Get transfer by id called");
|
_logger.Info($"Get transfer by id called; transferId: {transferId}");
|
||||||
_logger.Info($"transferId: {transferID.ToString()}");
|
|
||||||
var result = _adminDal.GetTransferById(transferID);
|
var result = _adminDal.GetTransferById(transferId);
|
||||||
|
|
||||||
//TODO: Implementálni a Logout-ot kliens és szerver oldalon is! - J.
|
//TODO: Implementálni a Logout-ot kliens és szerver oldalon is! - J.
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
|
|
@ -406,7 +406,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Route(APIUrls.UpdateTransferRouteName)]
|
[Route(APIUrls.UpdateTransferRouteName)]
|
||||||
public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
|
public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
|
||||||
{
|
{
|
||||||
_logger.Info($"UpdateTransfer called! + {transferToModify.Id}");
|
_logger.Info($"UpdateTransfer called! + {Request?.ReadFormAsync()}");
|
||||||
await _adminDal.UpdateTransferAsync(transferToModify);
|
await _adminDal.UpdateTransferAsync(transferToModify);
|
||||||
|
|
||||||
return transferToModify;
|
return transferToModify;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ using TIAMWebApp.Server.Controllers;
|
||||||
using System.Text.Json.Nodes;
|
using System.Text.Json.Nodes;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using TIAM.Entities.ServiceProviders;
|
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Services;
|
namespace TIAMWebApp.Server.Services;
|
||||||
|
|
||||||
|
|
@ -59,55 +58,43 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (messageTag == SignalRTags.GetTransfersAsync)
|
switch (messageTag)
|
||||||
{
|
{
|
||||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await transferDataAPIController.GetTransfers()), requestId);
|
case SignalRTags.GetTransfersAsync:
|
||||||
}
|
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await transferDataAPIController.GetTransfers()), requestId);
|
||||||
else if (messageTag == SignalRTags.GetPropertiesByOwnerIdAsync)
|
return;
|
||||||
{
|
|
||||||
var ownerId = message!.MessagePackTo<SignalRequestByIdMessage>().Id;
|
|
||||||
var json = (await serviceProviderAPIController.GetServiceProvidersByOwnerId(ownerId)).ToJson();
|
|
||||||
|
|
||||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, json), requestId);
|
case SignalRTags.GetPropertiesByOwnerIdAsync:
|
||||||
}
|
var ownerId = message!.MessagePackTo<SignalRequestByIdMessage>().Id;
|
||||||
else if (messageTag == SignalRTags.UpdateTransferAsync)
|
var json = (await serviceProviderAPIController.GetServiceProvidersByOwnerId(ownerId)).ToJson();
|
||||||
{
|
|
||||||
|
|
||||||
//var jsonPostData = message!.MessagePackTo<SignalPostJsonDataMessage>().PostDataJson;
|
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, json), requestId);
|
||||||
//_logger.DetailConditional($"PostData: [{jsonPostData}]");
|
|
||||||
//var transfer = jsonPostData.JsonTo<Transfer>()!;
|
|
||||||
|
|
||||||
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage<Transfer>>().PostData;
|
return;
|
||||||
|
|
||||||
await transferDataAPIController.UpdateTransfer(transfer);
|
case SignalRTags.UpdateTransferAsync:
|
||||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId);
|
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage<Transfer>>().PostData;
|
||||||
}
|
|
||||||
else if (messageTag == SignalRTags.GetCompaniesAsync)
|
|
||||||
{
|
|
||||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId);
|
|
||||||
}
|
|
||||||
else if (messageTag == SignalRTags.UpdateCompanyAsync)
|
|
||||||
{
|
|
||||||
var company = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
|
||||||
|
|
||||||
await serviceProviderAPIController.UpdateServiceProvider(company);
|
await transferDataAPIController.UpdateTransfer(transfer);
|
||||||
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
|
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId);
|
||||||
}
|
|
||||||
else if (messageTag == SignalRTags.CreateCompanyAsync)
|
|
||||||
{
|
|
||||||
//var company = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
|
||||||
|
|
||||||
//await serviceProviderAPIController.CreateServiceProvider(company);
|
return;
|
||||||
//await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
|
|
||||||
|
case SignalRTags.GetCompaniesAsync:
|
||||||
|
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId);
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
_logger.Error($"Server OnReceiveMessage; messageTag not found! messageTag: {messageTag}");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Error($"Server OnReceiveMessage; {ex.Message}", ex);
|
_logger.Error($"Server OnReceiveMessage; {ex.Message}", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
await ResponseToCaller(messageTag, new SignalResponseMessage<byte[]>(SignalResponseStatus.Error, null), requestId);
|
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Error), requestId);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task ResponseToCaller(int messageTag, ISignalRMessage message, int? requestId)
|
protected async Task ResponseToCaller(int messageTag, ISignalRMessage message, int? requestId)
|
||||||
|
|
|
||||||
|
|
@ -104,9 +104,9 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
public virtual Task GetAllAsync<TResponseData>(int messageTag, Action<ISignalResponseMessage<TResponseData?>> responseCallback)
|
public virtual Task GetAllAsync<TResponseData>(int messageTag, Action<ISignalResponseMessage<TResponseData?>> responseCallback)
|
||||||
=> SendMessageToServerAsync(messageTag, null, responseCallback);
|
=> SendMessageToServerAsync(messageTag, null, responseCallback);
|
||||||
|
|
||||||
public virtual Task<TPostData?> UpdateAsync<TPostData>(int messageTag, TPostData postData) where TPostData : class
|
public virtual Task<TPostData?> PostDataAsync<TPostData>(int messageTag, TPostData postData) where TPostData : class
|
||||||
=> SendMessageToServerAsync<TPostData>(messageTag, new SignalPostJsonDataMessage<TPostData>(postData), AcDomain.NextUniqueInt32);
|
=> 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
|
public virtual Task PostDataAsync<TPostData>(int messageTag, TPostData postData, Action<ISignalResponseMessage<TPostData?>> responseCallback) where TPostData : class
|
||||||
=> SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage<TPostData>(postData), responseCallback);
|
=> SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage<TPostData>(postData), responseCallback);
|
||||||
|
|
||||||
#endregion CRUD
|
#endregion CRUD
|
||||||
|
|
@ -182,6 +182,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
if (requestId.HasValue && _responseByRequestId.ContainsKey(requestId.Value))
|
if (requestId.HasValue && _responseByRequestId.ContainsKey(requestId.Value))
|
||||||
{
|
{
|
||||||
var reqId = requestId.Value;
|
var reqId = requestId.Value;
|
||||||
|
|
||||||
var responseMessage = message.MessagePackTo<SignalResponseJsonMessage>(ContractlessStandardResolver.Options);
|
var responseMessage = message.MessagePackTo<SignalResponseJsonMessage>(ContractlessStandardResolver.Options);
|
||||||
|
|
||||||
switch (_responseByRequestId[reqId])
|
switch (_responseByRequestId[reqId])
|
||||||
|
|
@ -209,11 +210,14 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
|
|
||||||
_responseByRequestId.TryRemove(reqId, out _);
|
_responseByRequestId.TryRemove(reqId, out _);
|
||||||
}
|
}
|
||||||
|
|
||||||
OnMessageReceived(messageTag, message, requestId);
|
OnMessageReceived(messageTag, message, requestId);
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
|
if (requestId.HasValue)
|
||||||
|
_responseByRequestId.TryRemove(requestId.Value, out _);
|
||||||
|
|
||||||
Logger.Error($"Client OnReceiveMessage; messageTag: {messageTag}; requestId: {requestId}; {ex.Message}", ex);
|
Logger.Error($"Client OnReceiveMessage; messageTag: {messageTag}; requestId: {requestId}; {ex.Message}", ex);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue