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.Database.DbSets.Users;
using AyCode.Models.Enums; using AyCode.Models.Enums;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using TIAM.Core; using TIAM.Core;
//using TIAM.Database.DataLayers.ServiceProviders; //using TIAM.Database.DataLayers.ServiceProviders;
using TIAM.Database.DbContexts.Admins; using TIAM.Database.DbContexts.Admins;
@ -251,7 +253,8 @@ namespace TIAM.Database.DataLayers.Admins
#region ServiceProviders #region ServiceProviders
//14. (IserviceProviderDataService) Update service provider //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 //13. (IserviceProviderDataService) delete service provider
public Task<bool> DeleteServiceProviderAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id)); 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.Products;
using TIAM.Database.DbSets.Transfers;
using TIAM.Database.DbSets.Users; using TIAM.Database.DbSets.Users;
using TIAM.Entities.Permissions; using TIAM.Entities.Permissions;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Transfers;
using TIAM.Entities.Users; using TIAM.Entities.Users;
namespace TIAM.Database.DbContexts.Admins namespace TIAM.Database.DbContexts.Admins
@ -123,16 +126,8 @@ namespace TIAM.Database.DbContexts.Admins
return serviceProvider; 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); public static bool UpdateServiceProvider(this IAdminDbContext ctx, Company serviceProvider)
if (existingServiceProvider == null) return null; => ctx.ServiceProviders.Update(serviceProvider).State == EntityState.Modified;
existingServiceProvider.Name = serviceProvider.Name;
existingServiceProvider.OwnerId = serviceProvider.OwnerId;
return existingServiceProvider;
}
} }
} }

View File

@ -1,5 +1,7 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbSets.Transfers;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Transfers;
namespace TIAM.Database.DbSets.ServiceProvider; 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 GetCompaniesAsync = 8;
public static readonly int UpdateCompanyAsync = 9; public static readonly int UpdateCompanyAsync = 9;
public static readonly int CreateCompanyAsync = 10;
} }

View File

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

View File

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

View File

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

View File

@ -88,11 +88,18 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
} }
else if (messageTag == SignalRTags.UpdateCompanyAsync) 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 serviceProviderAPIController.UpdateServiceProvider(company);
await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId); await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, company.ToJson()), requestId);
} }
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; return;
} }
catch (Exception ex) catch (Exception ex)

View File

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

View File

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

View File

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

View File

@ -53,9 +53,28 @@ namespace TIAMWebApp.Shared.Application.Services
} }
//15. //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. //21.