Merge
This commit is contained in:
commit
7921cf5e95
|
|
@ -6,15 +6,13 @@ namespace TIAM.Services;
|
|||
public class SignalRTags : AcSignalRTags
|
||||
{
|
||||
//[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)]
|
||||
public static readonly int UpdateTransferAsync = 7;
|
||||
public static readonly int GetCompaniesAsync = 8;
|
||||
|
||||
public static readonly int UpdateCompanyAsync = 9;
|
||||
public static readonly int CreateCompanyAsync = 10;
|
||||
|
||||
public const int UpdateTransferAsync = 7;
|
||||
public const int AddTransferAsync = 8;
|
||||
public const int DeleteTransferAsync = 9;
|
||||
public const int GetCompaniesAsync = 10;
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
@using AyCode.Core.Extensions;
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Interfaces.Entities
|
||||
@using TIAM.Services
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
|
@ -338,68 +339,75 @@
|
|||
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)
|
||||
{
|
||||
var transfer = (Transfer)e.DataItem;
|
||||
|
||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
//remove orderData from orderData array
|
||||
_logger.Info("orderData deleted");
|
||||
_logger.Info("transfer delete");
|
||||
|
||||
PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
||||
//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()
|
||||
{
|
||||
_logger.Info("UpdateAllDataAsync called");
|
||||
|
|
@ -472,7 +480,7 @@
|
|||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
Grid2.ShowColumnChooser();
|
||||
Grid2.ShowColumnChooser();
|
||||
}
|
||||
|
||||
IGrid Grid2 { get; set; }
|
||||
|
|
|
|||
|
|
@ -391,11 +391,11 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[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($"transferId: {transferID.ToString()}");
|
||||
var result = _adminDal.GetTransferById(transferID);
|
||||
_logger.Info($"Get transfer by id called; transferId: {transferId}");
|
||||
|
||||
var result = _adminDal.GetTransferById(transferId);
|
||||
|
||||
//TODO: Implementálni a Logout-ot kliens és szerver oldalon is! - J.
|
||||
return Ok(result);
|
||||
|
|
@ -406,7 +406,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[Route(APIUrls.UpdateTransferRouteName)]
|
||||
public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
|
||||
{
|
||||
_logger.Info($"UpdateTransfer called! + {transferToModify.Id}");
|
||||
_logger.Info($"UpdateTransfer called! + {Request?.ReadFormAsync()}");
|
||||
await _adminDal.UpdateTransferAsync(transferToModify);
|
||||
|
||||
return transferToModify;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ using TIAMWebApp.Server.Controllers;
|
|||
using System.Text.Json.Nodes;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
|
||||
namespace TIAMWebApp.Server.Services;
|
||||
|
||||
|
|
@ -59,55 +58,43 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
|
||||
try
|
||||
{
|
||||
if (messageTag == SignalRTags.GetTransfersAsync)
|
||||
switch (messageTag)
|
||||
{
|
||||
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();
|
||||
case SignalRTags.GetTransfersAsync:
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, await transferDataAPIController.GetTransfers()), requestId);
|
||||
return;
|
||||
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, json), requestId);
|
||||
}
|
||||
else if (messageTag == SignalRTags.UpdateTransferAsync)
|
||||
{
|
||||
case SignalRTags.GetPropertiesByOwnerIdAsync:
|
||||
var ownerId = message!.MessagePackTo<SignalRequestByIdMessage>().Id;
|
||||
var json = (await serviceProviderAPIController.GetServiceProvidersByOwnerId(ownerId)).ToJson();
|
||||
|
||||
//var jsonPostData = message!.MessagePackTo<SignalPostJsonDataMessage>().PostDataJson;
|
||||
//_logger.DetailConditional($"PostData: [{jsonPostData}]");
|
||||
//var transfer = jsonPostData.JsonTo<Transfer>()!;
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, json), requestId);
|
||||
|
||||
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage<Transfer>>().PostData;
|
||||
return;
|
||||
|
||||
await transferDataAPIController.UpdateTransfer(transfer);
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId);
|
||||
}
|
||||
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;
|
||||
case SignalRTags.UpdateTransferAsync:
|
||||
var transfer = message!.MessagePackTo<SignalPostJsonDataMessage<Transfer>>().PostData;
|
||||
|
||||
await serviceProviderAPIController.UpdateServiceProvider(company);
|
||||
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
|
||||
}
|
||||
else if (messageTag == SignalRTags.CreateCompanyAsync)
|
||||
{
|
||||
//var company = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
await transferDataAPIController.UpdateTransfer(transfer);
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId);
|
||||
|
||||
//await serviceProviderAPIController.CreateServiceProvider(company);
|
||||
//await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
|
||||
return;
|
||||
|
||||
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)
|
||||
{
|
||||
_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)
|
||||
|
|
|
|||
|
|
@ -104,9 +104,9 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
public virtual Task GetAllAsync<TResponseData>(int messageTag, Action<ISignalResponseMessage<TResponseData?>> 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);
|
||||
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);
|
||||
|
||||
#endregion CRUD
|
||||
|
|
@ -182,6 +182,7 @@ 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])
|
||||
|
|
@ -209,11 +210,14 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
|
||||
_responseByRequestId.TryRemove(reqId, out _);
|
||||
}
|
||||
|
||||
|
||||
OnMessageReceived(messageTag, message, requestId);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
if (requestId.HasValue)
|
||||
_responseByRequestId.TryRemove(requestId.Value, out _);
|
||||
|
||||
Logger.Error($"Client OnReceiveMessage; messageTag: {messageTag}; requestId: {requestId}; {ex.Message}", ex);
|
||||
throw;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue