WizardProcessor improvements, fixes, etc...

This commit is contained in:
jozsef.b@aycode.com 2024-01-08 21:33:42 +01:00
parent f5301076f8
commit f678a5a8e4
13 changed files with 92 additions and 31 deletions

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AyCode.Database;
using AyCode.Utils.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.Identity.Client;
using TIAM.Database.DbContexts.Transfers;
@ -21,7 +22,11 @@ public class TransferDestinationDal : DalBase<TransferDestinationDbContext>
public Task<bool> CreateTransferDestinationAsync(TransferDestination transferDestination)
{
//transferDestination.Created = DateTime.UtcNow;
//transferDestination.Modified = DateTime.UtcNow;
//transferDestination.Modified = DateTime.UtcNow;
if (transferDestination.Id.IsNullOrEmpty())
transferDestination.Id = Guid.NewGuid();
Context.TransferDestinations.Add(transferDestination);
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
}

View File

@ -20,9 +20,17 @@ namespace TIAM.Entities.TransferDestinations
public TransferDestination() { }
public TransferDestination(double latitude, double longitude, string address) : this(Guid.NewGuid(), latitude, longitude, address) { }
public TransferDestination(Guid id, double latitude, double longitude, string address) : base(Guid.NewGuid(), latitude, longitude, address) { }
public TransferDestination(Guid id, string name, double latitude, double longitude, string address) : base(id, latitude,longitude, address) { }
public TransferDestination(Guid id, string name, string description, double latitude, double longitude, string address) : base(id, latitude,longitude, address) { }
public TransferDestination(Guid id, double latitude, double longitude, string address) : base(id, latitude, longitude, address) { }
public TransferDestination(Guid id, string name, double latitude, double longitude, string address) : this(id, latitude, longitude, address)
{
Name = name;
}
public TransferDestination(Guid id, string name, string description, double latitude, double longitude, string address) : this(id, name, latitude, longitude, address)
{
Description = description;
}
}
}

View File

@ -17,11 +17,25 @@ namespace TIAMMobileApp.Services
this.http = http;
}
public async Task<bool> CreateTransferDestination(TransferDestinationWizardModel model)
public async Task<TransferDestination?> CreateTransferDestination(TransferDestinationWizardModel model)
{
var url = $"{Setting.BaseUrl}/{APIUrls.CreateTransferDestination}";
var response = await http.PostAsJsonAsync(url, model);
return response.IsSuccessStatusCode;
//var result = new WizardProcessorResult();
//if (response.IsSuccessStatusCode)
//{
// result.IsSucces = true;
// result.ResultJson = await response.Content.ReadAsStringAsync();
//}
if (!response.IsSuccessStatusCode)
return null;
var result = (TransferDestination)(await response.Content.ReadFromJsonAsync(typeof(TransferDestination)))!;
return result;
}
/// <summary>

View File

@ -1,5 +1,6 @@
using TIAM.Entities.TransferDestinations;
using TIAMWebApp.Shared.Application.Interfaces;
using TIAMWebApp.Shared.Application.Models;
using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels;
namespace TIAMMobileApp.Services
@ -16,20 +17,22 @@ namespace TIAMMobileApp.Services
this.userDataService = userDataService;
}
public async Task<string> ProcessWizardAsync(Type type, object data)
public async Task<TModelType?> ProcessWizardAsync<TModelType>(Type type, object data) where TModelType: class
{
switch (type.Name)
{
case "TransferDestinationWizardModel":
var result = await transferDataService.CreateTransferDestination((TransferDestinationWizardModel)data);
if (result)
return "Success";
else
return "Failed";
return result as TModelType;
//var a = new WizardProcessorResult<TransferDestination>();
//a.Model = result;
//return a as TResult;
case "ServiceProvider":
return null;
default:
return "Not implemented";
return null;
}
}

View File

@ -29,6 +29,7 @@
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>

View File

@ -3,6 +3,7 @@
@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Utility
@using TIAM.Entities.TransferDestinations
@inject LogToBrowserConsole logToBrowserConsole
@inject IWizardProcessor WizardProcessor
<h3>TestPage</h3>
@ -94,9 +95,8 @@
};
public List<string> TransferDestinationIgnorList = new List<string>
{
"Id",
"Created",
"Modified"
"Latitude",
"Longitude"
};
@ -130,7 +130,7 @@
public async Task SubmitForm(object Result)
{
//await WizardProcessor.ProcessWizardAsync(Result.GetType(), Result);
var transferDestination = await WizardProcessor.ProcessWizardAsync<TransferDestination>(Result.GetType(), Result);
logToBrowserConsole.LogToBC($"Submitted nested form: {Result.GetType().FullName}");
}
}

View File

@ -39,11 +39,25 @@ namespace TIAMWebApp.Client.Services
return await http.GetFromJsonAsync<TransferDestination>(url);
}
public async Task<bool> CreateTransferDestination(TransferDestinationWizardModel model)
public async Task<TransferDestination?> CreateTransferDestination(TransferDestinationWizardModel model)
{
var url = $"{Setting.BaseUrl}/{APIUrls.CreateTransferDestination}";
var response = await http.PostAsJsonAsync(url, model);
return response.IsSuccessStatusCode;
//var result = new WizardProcessorResult();
//if (response.IsSuccessStatusCode)
//{
// result.IsSucces = true;
// result.ResultJson = await response.Content.ReadAsStringAsync();
//}
if (!response.IsSuccessStatusCode)
return null;
var result = (TransferDestination)(await response.Content.ReadFromJsonAsync(typeof(TransferDestination)))!;
return result;
}
}
}

View File

@ -16,20 +16,18 @@ namespace TIAMWebApp.Client.Services
this.userDataService = userDataService;
}
public async Task<string> ProcessWizardAsync(Type type, object data)
public async Task<TModelType?> ProcessWizardAsync<TModelType>(Type type, object data) where TModelType: class
{
switch (type.Name)
{
case "TransferDestinationWizardModel":
var result = await transferDataService.CreateTransferDestination((TransferDestinationWizardModel)data);
if (result)
return "Success";
else
return "Failed";
return result as TModelType;
case "ServiceProvider":
return null;
default:
return "Not implemented";
return null;
}
}

View File

@ -86,8 +86,8 @@ namespace TIAMWebApp.Server.Controllers
if (transferDestinationModel != null)
{
var Id = Guid.NewGuid();
TransferDestination transferDestination = new TransferDestination(Id, transferDestinationModel.Name, transferDestinationModel.Description, transferDestinationModel.Latitude, transferDestinationModel.Longitude, transferDestinationModel.Address);
var id = Guid.NewGuid();
TransferDestination transferDestination = new TransferDestination(id, transferDestinationModel.Name, transferDestinationModel.Description, transferDestinationModel.Latitude, transferDestinationModel.Longitude, transferDestinationModel.Address);
if (string.IsNullOrEmpty(transferDestinationModel.Name) || string.IsNullOrEmpty(transferDestinationModel.Address))
@ -96,14 +96,14 @@ namespace TIAMWebApp.Server.Controllers
}
else
{
Console.WriteLine($"TransferDestination to be created: {Id}");
Console.WriteLine($"TransferDestination to be created: {id}");
Console.WriteLine($"TransferDestination to be created: {transferDestination.Latitude}");
Console.WriteLine($"TransferDestination to be created: {transferDestination.Longitude}");
Console.WriteLine($"TransferDestination to be created: {transferDestination.Address}");
//await _transferDestinationDal.Context.TransferDestinations.AddAsync(transferDestination);
await _transferDestinationDal.CreateTransferDestinationAsync(transferDestination);
return Ok("yes");
return Ok(transferDestination);
}
}

View File

@ -9,6 +9,6 @@ namespace TIAMWebApp.Shared.Application.Interfaces
Task<TransferDestination[]> GetDestinationsAsync();
Task<TransferDestination?> GetTransferDestinationbyCoordinatesAsync(string destinationId);
Task<TransferDestination?> GetTransferDestinationbyAddressAsync(string destinationId);
Task<bool> CreateTransferDestination(TransferDestinationWizardModel model);
Task<TransferDestination?> CreateTransferDestination(TransferDestinationWizardModel model);
}
}

View File

@ -8,7 +8,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces
{
public interface IWizardProcessor
{
public Task<string> ProcessWizardAsync(Type type, object data);
public Task<TModelType?> ProcessWizardAsync<TModelType>(Type type, object data) where TModelType : class;
public Task<string> ValidateWizardStepAsync(Type type, string fieldName, object fieldValue);
}

View File

@ -0,0 +1,8 @@
namespace TIAMWebApp.Shared.Application.Interfaces;
public interface IWizardProcessorResult<TModelType>
{
public TModelType Model { get; set; }
public string ResultJson { get; set; }
public bool IsSucces { get; set; }
}

View File

@ -0,0 +1,10 @@
using TIAMWebApp.Shared.Application.Interfaces;
namespace TIAMWebApp.Shared.Application.Models;
public class WizardProcessorResult<TModel> : IWizardProcessorResult<TModel>
{
public TModel Model { get; set; }
public string ResultJson { get; set; }
public bool IsSucces { get; set; }
}