Not working createServiceProvider

This commit is contained in:
Adam 2024-05-28 13:20:28 +02:00
parent cf117ba079
commit 61f6a49836
13 changed files with 108 additions and 57 deletions

View File

@ -4,6 +4,8 @@ using AyCode.Database.DbSets.Messages;
using AyCode.Database.DbSets.Users;
using AyCode.Models.Enums;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using TIAM.Core;
//using TIAM.Database.DataLayers.ServiceProviders;
using TIAM.Database.DbContexts.Admins;
@ -251,7 +253,8 @@ namespace TIAM.Database.DataLayers.Admins
#region ServiceProviders
//14. (IserviceProviderDataService) Update service provider
public Task<Company> UpdateServiceProviderAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider(company));
public Task<bool> UpdateServiceProviderAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider(company));
//13. (IserviceProviderDataService) delete service provider
public Task<bool> DeleteServiceProviderAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id));

View File

@ -1,9 +1,12 @@
using TIAM.Database.DbSets.Permissions;
using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbSets.Permissions;
using TIAM.Database.DbSets.Products;
using TIAM.Database.DbSets.Transfers;
using TIAM.Database.DbSets.Users;
using TIAM.Entities.Permissions;
using TIAM.Entities.Products;
using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Transfers;
using TIAM.Entities.Users;
namespace TIAM.Database.DbContexts.Admins
@ -123,16 +126,8 @@ namespace TIAM.Database.DbContexts.Admins
return serviceProvider;
}
public static Company UpdateServiceProvider(this IAdminDbContext ctx, Company serviceProvider)
{
if (serviceProvider == null) return null;
var existingServiceProvider = ctx.ServiceProviders.FirstOrDefault(u => u.Id == serviceProvider.Id);
if (existingServiceProvider == null) return null;
existingServiceProvider.Name = serviceProvider.Name;
existingServiceProvider.OwnerId = serviceProvider.OwnerId;
return existingServiceProvider;
}
public static bool UpdateServiceProvider(this IAdminDbContext ctx, Company serviceProvider)
=> ctx.ServiceProviders.Update(serviceProvider).State == EntityState.Modified;
}
}

View File

@ -1,5 +1,7 @@
using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbSets.Transfers;
using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Transfers;
namespace TIAM.Database.DbSets.ServiceProvider;

View File

@ -15,5 +15,6 @@ public class SignalRTags : AcSignalRTags
public static readonly int GetCompaniesAsync = 8;
public static readonly int UpdateCompanyAsync = 9;
public static readonly int CreateCompanyAsync = 10;
}

View File

@ -277,12 +277,12 @@
}
else
{
var transferEditModel = (Company)e.EditModel; //TODO not valid cast
transferEditModel.Id = Guid.NewGuid();
transferEditModel.AffiliateId = Guid.NewGuid();
transferEditModel.Name = "Company name";
transferEditModel.OwnerId = Guid.Empty;
transferEditModel.ProfileId = Guid.NewGuid();
var companyEditModel = (Company)e.EditModel; //TODO not valid cast
companyEditModel.Id = Guid.NewGuid();
companyEditModel.AffiliateId = Guid.NewGuid();
companyEditModel.Name = "Company name";
companyEditModel.OwnerId = Guid.Empty;
companyEditModel.ProfileId = Guid.NewGuid();
}
}
@ -294,7 +294,7 @@
{
//add new orderData to orderData array
_logger.Info("New orderData added");
//await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
resultCompany = await serviceProviderDataService.CreateServiceProviderAsync((Company)e.EditModel);
}
else
{
@ -302,18 +302,7 @@
resultCompany = await serviceProviderDataService.UpdateServiceProviderAsync((Company)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 (resultCompany!=null)
{

View File

@ -472,7 +472,7 @@
void ColumnChooserButton_Click()
{
Grid2.ShowColumnChooser();
Grid2.ShowColumnChooser();
}
IGrid Grid2 { get; set; }

View File

@ -11,6 +11,9 @@ using TIAM.Entities.Users;
using TIAMWebApp.Shared.Application.Models;
using Product = TIAM.Entities.Products.Product;
using TIAM.Entities.Transfers;
using System.Text.Json.Nodes;
using System.Text.Json;
using Newtonsoft.Json.Linq;
namespace TIAMWebApp.Server.Controllers
{
@ -30,36 +33,43 @@ namespace TIAMWebApp.Server.Controllers
}
//15.
[AllowAnonymous]
[HttpPost]
[Route(APIUrls.CreateServiceProviderRouteName)]
[Tags("In-Progress", "ServiceProvider")]
[EndpointSummary("Create assigned user")]
[EndpointSummary("Create service provider")]
public async Task<IActionResult> CreateServiceProvider([FromBody] ServiceProviderModel serializedServiceProviderModel)
{
GlobalLogger.Info(@"CreateUser called");
//if (serializedServiceProviderModel.GetArrayLength() == 0)
if (serializedServiceProviderModel == null)
{
return BadRequest("SerializedLoginModel is required");
}
else
{
//ServiceProviderModel? serviceProvider = JObject.Parse(serializedServiceProviderModel.GetRawText()).ToObject<ServiceProviderModel>();
//Company? serviceProvider = JObject.Parse(serializedServiceProviderModel.GetRawText()).ToObject<Company>();
var serviceProvider = serializedServiceProviderModel;
if (serviceProvider != null)
{
//add userModel to users array
//Array.Resize(ref users, users.Length + 1);
//users[users.Length - 1] = new UserModel(user.Email, user.PhoneNumber, user.Password);
var id = Guid.NewGuid();
var name = serializedServiceProviderModel.Name;
var ownerId = serializedServiceProviderModel.OwnerId;
var name = serviceProvider.Name;
var commissionRate = serviceProvider.CommissionPercent;
Guid ownerId;
if(serviceProvider.OwnerId == Guid.Empty)
{
//no owner set yet
ownerId = serviceProvider.OwnerId;
}
else
{
ownerId = serviceProvider.OwnerId;
}
if (name is null || ownerId == Guid.Empty)
if (name is null)
{
return BadRequest("Invalid request");
}
@ -67,12 +77,27 @@ namespace TIAMWebApp.Server.Controllers
{
GlobalLogger.Info($@"ServiceProvider to be created: {id}, {name}, {ownerId}");
await _adminDal.CreateServiceProviderAsync(new Company(id, name, ownerId, Guid.NewGuid()));
Company toCreate = new Company(id, name, ownerId, Guid.NewGuid());
toCreate.CommissionPercent = commissionRate;
var result = await _adminDal.CreateServiceProviderAsync(toCreate);
if (!result)
{
serviceProvider = null;
return BadRequest(result);
}
else
{
return Ok(toCreate);
}
}
}
return Ok("yes");
else {
return BadRequest();
}
}
}
@ -101,10 +126,17 @@ namespace TIAMWebApp.Server.Controllers
[Route(APIUrls.UpdateServiceProviderRouteName)]
public async Task<Company> UpdateServiceProvider(Company companyToModify)
{
GlobalLogger.Info($"UpdateServiceProvider called! + {Request.ReadFormAsync()}");
GlobalLogger.Info($"UpdateServiceProvider called! + {companyToModify.Id}");
var result = await _adminDal.UpdateServiceProviderAsync(companyToModify);
if(result)
{
return companyToModify;
return result;
}
else
{
return null;
}
}
//17.

View File

@ -293,6 +293,7 @@ namespace TIAMWebApp.Server.Controllers
}
[AllowAnonymous]
[HttpPost]
[Route(APIUrls.CreateTransfersRouteName)]
@ -405,7 +406,7 @@ namespace TIAMWebApp.Server.Controllers
[Route(APIUrls.UpdateTransferRouteName)]
public async Task<Transfer> UpdateTransfer(Transfer transferToModify)
{
_logger.Info($"UpdateTransfer called! + {Request.ReadFormAsync()}");
_logger.Info($"UpdateTransfer called! + {transferToModify.Id}");
await _adminDal.UpdateTransferAsync(transferToModify);
return transferToModify;

View File

@ -88,12 +88,19 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
}
else if (messageTag == SignalRTags.UpdateCompanyAsync)
{
var company = message!.MessagePackTo<SignalPostJsonDataMessage>().PostData.JsonTo<Company>()!;
var company = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
await serviceProviderAPIController.UpdateServiceProvider(company);
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
}
return;
else if (messageTag == SignalRTags.CreateCompanyAsync)
{
//var company = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
//await serviceProviderAPIController.CreateServiceProvider(company);
//await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
}
return;
}
catch (Exception ex)
{

View File

@ -24,7 +24,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces
public Task<Company> UpdateServiceProviderAsync(Company serviceProvider);
//15. Create service provider
public Task<bool> CreateServiceProviderAsync(Company serviceProvider);
public Task<Company> CreateServiceProviderAsync(Company serviceProvider);
//16. (IServiceProviderDataService) get all service providers
public Task<List<Company>> GetServiceProvidersAsync();

View File

@ -102,7 +102,7 @@ namespace TIAMWebApp.Shared.Application.Models
public const string UpdateTransferDestination = TransferDataAPI + UpdateTransferDestinationRouteName;
//serviceprovider
public const string CreateServiceProviderRouteName = "CreateServiceProvider";
public const string CreateServiceProviderRouteName = "CreateServiceProvider/";
public const string CreateServiceProvider = ServiceProviderAPI+CreateServiceProviderRouteName;
public const string GetServiceProviderByIdRouteName = "GetServiceProviderById";

View File

@ -11,12 +11,14 @@ namespace TIAMWebApp.Shared.Application.Models
public Guid Id { get; set; }
public string? Name { get; set; }
public Guid OwnerId { get; set; }
public int CommissionPercent { get; set; }
public ServiceProviderModel() { }
public ServiceProviderModel(Guid id, string name, Guid ownerId)
public ServiceProviderModel(Guid id, string name, Guid ownerId, int commissionPercent)
{
Id = id;
Name = name;
OwnerId = ownerId;
CommissionPercent = commissionPercent;
}
}
}

View File

@ -53,9 +53,28 @@ namespace TIAMWebApp.Shared.Application.Services
}
//15.
public Task<bool> CreateServiceProviderAsync(Company serviceProvider)
public async Task<Company> CreateServiceProviderAsync(Company serviceProvider)
{
throw new NotImplementedException();
var url = $"{Setting.ApiBaseUrl}/{APIUrls.CreateServiceProvider}";
var response = await http.PostAsJsonAsync(url, serviceProvider);
if (response != null)
{
var resultCompany = await response.Content.ReadFromJsonAsync(typeof(Company));
if(resultCompany != null)
{
return (resultCompany as Company)!;
}
else
{
return null;
}
}
else
{
return null;
}
}
//21.