Add PermissionViewSql; refactoring, improvements, etc...
This commit is contained in:
parent
c896cf8a5c
commit
231119963e
|
|
@ -2,5 +2,7 @@
|
||||||
|
|
||||||
public enum ProductType : byte
|
public enum ProductType : byte
|
||||||
{
|
{
|
||||||
|
NotDefined = 0,
|
||||||
|
Transfer = 5,
|
||||||
|
Hotel = 10,
|
||||||
}
|
}
|
||||||
|
|
@ -8,6 +8,7 @@ using AyCode.Database.DataLayers.Users;
|
||||||
using TIAM.Database.DataLayers.ServiceProviders;
|
using TIAM.Database.DataLayers.ServiceProviders;
|
||||||
using TIAM.Database.DataLayers.Users;
|
using TIAM.Database.DataLayers.Users;
|
||||||
using TIAM.Database.DbContexts.ServiceProviders;
|
using TIAM.Database.DbContexts.ServiceProviders;
|
||||||
|
using TIAM.Database.DbSets.Permissions;
|
||||||
|
|
||||||
namespace TIAM.Database.Test
|
namespace TIAM.Database.Test
|
||||||
{
|
{
|
||||||
|
|
@ -24,15 +25,52 @@ namespace TIAM.Database.Test
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
[DataRow("42968456-6EF3-4D9C-8BC4-0569A129AC05")]
|
||||||
public async Task GetPermissionContextMappingByContext_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString)
|
public void GetPermissionViewBySubjectId_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string subjectIdString)
|
||||||
{
|
{
|
||||||
var contextId = Guid.Parse(contextIdString);
|
var subjectId= Guid.Parse(subjectIdString);
|
||||||
|
|
||||||
var permMapping = await Dal.GetPermissionContextMappingByContextIdAsync(contextId);
|
//var permMapping = Dal.GetPermissionByContextId(contextId);
|
||||||
|
var permMapping = Dal.GetPermissionContextsViewBySubjectId(subjectId).ToList();
|
||||||
|
|
||||||
Assert.IsNotNull(permMapping, "Result is null");
|
Assert.IsNotNull(permMapping, "Result is null");
|
||||||
Assert.IsTrue(permMapping.Count > 0, "Result count: 0");
|
Assert.IsTrue(permMapping.Count > 0, "Result count: 0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
[DataRow("814b5495-c2e9-4f1d-a73f-37cd5d353078")]
|
||||||
|
public void GetPermissionViewByContextId_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString)
|
||||||
|
{
|
||||||
|
var contextId = Guid.Parse(contextIdString);
|
||||||
|
|
||||||
|
//var permMapping = Dal.GetPermissionByContextId(contextId);
|
||||||
|
var permMapping = Dal.GetPermissionContextsViewByContextId(contextId).ToList();
|
||||||
|
|
||||||
|
Assert.IsNotNull(permMapping, "Result is null");
|
||||||
|
Assert.IsTrue(permMapping.Count > 0, "Result count: 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
[DataRow("814b5495-c2e9-4f1d-a73f-37cd5d353078")]
|
||||||
|
public async Task GetPermissionContextMappingByContextIdAsync_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string contextIdString)
|
||||||
|
{
|
||||||
|
var contextId = Guid.Parse(contextIdString);
|
||||||
|
|
||||||
|
var permMapping = await Dal.GetPermissionContextsViewByContextIdAsync(contextId);
|
||||||
|
|
||||||
|
Assert.IsNotNull(permMapping, "Result is null");
|
||||||
|
Assert.IsTrue(permMapping.Count > 0, "Result count: 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
[DataRow("814B5495-C2E9-4F1D-A73F-37CD5D353078")]
|
||||||
|
public void GetProductById_ReturnsProduct_WhenProductExists(string productIdString)
|
||||||
|
{
|
||||||
|
var productId = Guid.Parse(productIdString);
|
||||||
|
|
||||||
|
var product = Dal.GetProductById(productId);
|
||||||
|
|
||||||
|
Assert.IsNotNull(product, "Result is null");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ using TIAM.Database.DbContexts.ServiceProviders;
|
||||||
using TIAM.Database.DbSets.Permissions;
|
using TIAM.Database.DbSets.Permissions;
|
||||||
using TIAM.Database.DbSets.Users;
|
using TIAM.Database.DbSets.Users;
|
||||||
using AyCode.Database.DataLayers;
|
using AyCode.Database.DataLayers;
|
||||||
|
using TIAM.Database.DbSets.Products;
|
||||||
|
|
||||||
|
|
||||||
namespace TIAM.Database.DataLayers.ServiceProviders
|
namespace TIAM.Database.DataLayers.ServiceProviders
|
||||||
|
|
@ -78,7 +79,7 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
||||||
if (dbServiceProvider != null)
|
if (dbServiceProvider != null)
|
||||||
{
|
{
|
||||||
//get products for this provider
|
//get products for this provider
|
||||||
var products = Context.Products.Where(x => x.OwnerId == id).ToList();
|
var products = Context.Products.Where(x => x.ServiceProviderId == id).ToList();
|
||||||
|
|
||||||
/*foreach (var productItem in products)
|
/*foreach (var productItem in products)
|
||||||
{
|
{
|
||||||
|
|
@ -192,8 +193,17 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
||||||
|
|
||||||
#region PermissionMappings
|
#region PermissionMappings
|
||||||
|
|
||||||
public Task<List<PermissionContextMapping>> GetPermissionContextMappingByContextIdAsync(Guid contextId)
|
public List<PermissionContextMapping> GetPermissionContextsView(Guid subjectId, Guid contextId)
|
||||||
=> SessionAsync(x => x.GetPermissionContextMappingByContextId(contextId).ToList());
|
=> Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList());
|
||||||
|
|
||||||
|
public List<PermissionContextMapping> GetPermissionContextsViewBySubjectId(Guid contextId)
|
||||||
|
=> Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList());
|
||||||
|
|
||||||
|
public List<PermissionContextMapping> GetPermissionContextsViewByContextId(Guid contextId)
|
||||||
|
=> Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||||
|
|
||||||
|
public Task<List<PermissionContextMapping>> GetPermissionContextsViewByContextIdAsync(Guid contextId)
|
||||||
|
=> SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||||
|
|
||||||
//3. (IPermissionService) get permissions of assigned users and groups
|
//3. (IPermissionService) get permissions of assigned users and groups
|
||||||
public Task<List<AssignedPermissionModel>> GetPermissionsOfUserProductMappingsAndGroupsAsyncByContextId(Guid contextId)
|
public Task<List<AssignedPermissionModel>> GetPermissionsOfUserProductMappingsAndGroupsAsyncByContextId(Guid contextId)
|
||||||
|
|
@ -358,21 +368,24 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
||||||
|
|
||||||
#region Products
|
#region Products
|
||||||
|
|
||||||
|
public Product? GetProductById(Guid contextId)
|
||||||
|
=> Session(x => x.GetProductById(contextId));
|
||||||
|
|
||||||
//* 19. (IServiceProviderDataService) Create product
|
//* 19. (IServiceProviderDataService) Create product
|
||||||
public bool CreateProductAsync(TiamProduct product)
|
public bool CreateProductAsync(Product product)
|
||||||
{
|
{
|
||||||
Context.CreateProduct(product);
|
Context.CreateProduct(product);
|
||||||
Console.WriteLine($"Saving product to db {product.Id}, {product.Name}, {product.OwnerId}");
|
Console.WriteLine($"Saving product to db {product.Id}, {product.Name}, {product.ServiceProviderId}");
|
||||||
var _result = Context.SaveChangesAsync();
|
var _result = Context.SaveChangesAsync();
|
||||||
return _result.Result > 0;
|
return _result.Result > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//* 20. (IServiceProviderDataService) Update product
|
//* 20. (IServiceProviderDataService) Update product
|
||||||
public TiamProduct UpdateProduct(TiamProduct product)
|
public Product UpdateProduct(Product product)
|
||||||
{
|
{
|
||||||
|
|
||||||
var prod = Context.UpdateProduct(product);
|
var prod = Context.UpdateProduct(product);
|
||||||
Console.WriteLine($"Saving product to db {product.Id}, {product.Name}, {product.OwnerId}");
|
Console.WriteLine($"Saving product to db {product.Id}, {product.Name}, {product.ServiceProviderId}");
|
||||||
Context.SaveChanges();
|
Context.SaveChanges();
|
||||||
return prod;
|
return prod;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
using AyCode.Database.DataLayers.Users;
|
using AyCode.Database.DataLayers.Users;
|
||||||
using AyCode.Models.Enums;
|
using AyCode.Models.Enums;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
|
using TIAM.Database.DbContexts;
|
||||||
using TIAM.Database.DbContexts.ServiceProviders;
|
using TIAM.Database.DbContexts.ServiceProviders;
|
||||||
using TIAM.Database.DbSets.Permissions;
|
using TIAM.Database.DbSets.Permissions;
|
||||||
|
using TIAM.Database.DbSets.Products;
|
||||||
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;
|
||||||
|
|
@ -13,7 +16,7 @@ namespace TIAM.Database.DataLayers.ServiceProviders;
|
||||||
|
|
||||||
public static class ServiceProviderDalExtension
|
public static class ServiceProviderDalExtension
|
||||||
{
|
{
|
||||||
public static IQueryable<UserProductMapping> GetUserProductMappingsByPermissionGroupId(this ServiceProviderDbContext ctx, Guid permissionGroupId)
|
public static IQueryable<UserProductMapping> GetUserProductMappingsByPermissionGroupId(this IServiceProviderDbContext ctx, Guid permissionGroupId)
|
||||||
{
|
{
|
||||||
return ctx.UserProductMappings
|
return ctx.UserProductMappings
|
||||||
.Where(user => ctx.PermissionGroupUserMappings
|
.Where(user => ctx.PermissionGroupUserMappings
|
||||||
|
|
@ -22,16 +25,6 @@ public static class ServiceProviderDalExtension
|
||||||
.Contains(user.Id));
|
.Contains(user.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByContextId(this IServiceProviderDbContext ctx, Guid contextId)
|
|
||||||
{
|
|
||||||
var subjectIds = ctx.GetUserProductMappingsByProductId(contextId).Select(x => x.Id).
|
|
||||||
Concat(ctx.PermissionGroups.Where(x => x.OwnerId == contextId).Select(x => x.Id)).ToHashSet();
|
|
||||||
|
|
||||||
return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void CleanUpAndRemoveUserProductMappings(this IServiceProviderDbContext ctx, IEnumerable<UserProductMapping> userProductMappings)
|
public static void CleanUpAndRemoveUserProductMappings(this IServiceProviderDbContext ctx, IEnumerable<UserProductMapping> userProductMappings)
|
||||||
{
|
{
|
||||||
foreach (var userProductMapping in userProductMappings)
|
foreach (var userProductMapping in userProductMappings)
|
||||||
|
|
@ -81,20 +74,20 @@ public static class ServiceProviderDalExtension
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool CreateProduct(this IServiceProviderDbContext ctx, TiamProduct myproduct)
|
public static bool CreateProduct(this IServiceProviderDbContext ctx, Product myproduct)
|
||||||
{
|
{
|
||||||
if (myproduct == null) return false;
|
if (myproduct == null) return false;
|
||||||
//Automatically add assigneduser for owner
|
//Automatically add assigneduser for owner
|
||||||
TiamServiceProvider? productOwner = ctx.ServiceProviders.FirstOrDefault(x => x.Id == myproduct.OwnerId);
|
TiamServiceProvider? productOwner = ctx.ServiceProviders.FirstOrDefault(x => x.Id == myproduct.ServiceProviderId);
|
||||||
if(productOwner == null) return false;
|
if(productOwner == null) return false;
|
||||||
var userProductMapping = new UserProductMapping(myproduct.Id, productOwner.OwnerId);
|
var userProductMapping = new UserProductMapping(myproduct.Id, productOwner.OwnerId);
|
||||||
ctx.CreateAssignedUser(userProductMapping);
|
ctx.CreateAssignedUser(userProductMapping);
|
||||||
ctx.Products.Add(myproduct);
|
ctx.AddProduct(myproduct);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TiamProduct UpdateProduct(this IServiceProviderDbContext ctx, TiamProduct product)
|
public static Product UpdateProduct(this IServiceProviderDbContext ctx, Product product)
|
||||||
{
|
{
|
||||||
if (product == null) return null;
|
if (product == null) return null;
|
||||||
|
|
||||||
|
|
@ -102,7 +95,7 @@ public static class ServiceProviderDalExtension
|
||||||
if (existingProduct == null) return null;
|
if (existingProduct == null) return null;
|
||||||
|
|
||||||
existingProduct.Name = product.Name;
|
existingProduct.Name = product.Name;
|
||||||
existingProduct.OwnerId = product.OwnerId;
|
existingProduct.ServiceProviderId = product.ServiceProviderId;
|
||||||
existingProduct.Description = product.Description;
|
existingProduct.Description = product.Description;
|
||||||
existingProduct.Price = product.Price;
|
existingProduct.Price = product.Price;
|
||||||
existingProduct.JsonDetails = product.JsonDetails;
|
existingProduct.JsonDetails = product.JsonDetails;
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@ using TIAM.Database.DbSets.Users;
|
||||||
|
|
||||||
namespace TIAM.Database.DbContexts.ServiceProviders;
|
namespace TIAM.Database.DbContexts.ServiceProviders;
|
||||||
|
|
||||||
public interface IServiceProviderDbContext : IServiceProviderDbSet, ITiamProductDbSet, IAssignedUserDbSet, IPermissionsDbSetContext
|
public interface IServiceProviderDbContext : IServiceProviderDbSet, IProductDbSet, IAssignedUserDbSet, IPermissionsDbSetContext
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ namespace TIAM.Database.DbContexts.ServiceProviders
|
||||||
public class ServiceProviderDbContext : DbContextBase, IServiceProviderDbContext
|
public class ServiceProviderDbContext : DbContextBase, IServiceProviderDbContext
|
||||||
{
|
{
|
||||||
public DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
public DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
||||||
public DbSet<TiamProduct> Products { get; set; }
|
public DbSet<Product> Products { get; set; }
|
||||||
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
||||||
|
|
||||||
public DbSet<PermissionsType> PermissionsTypes { get; set; }
|
public DbSet<PermissionsType> PermissionsTypes { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
using TIAM.Database.DbContexts.ServiceProviders;
|
using AyCode.Database;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
|
using TIAM.Database.DbContexts;
|
||||||
|
using TIAM.Database.DbContexts.ServiceProviders;
|
||||||
using TIAM.Database.DbSets.Users;
|
using TIAM.Database.DbSets.Users;
|
||||||
using TIAM.Entities.Permissions;
|
using TIAM.Entities.Permissions;
|
||||||
|
using TIAM.Entities.Products;
|
||||||
|
|
||||||
namespace TIAM.Database.DbSets.Permissions;
|
namespace TIAM.Database.DbSets.Permissions;
|
||||||
|
|
||||||
|
|
@ -22,6 +27,16 @@ public static class PermissionsDbSetExtensions
|
||||||
// return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
// return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
public static IQueryable<PermissionContextMapping> GetPermissionContextsViewBySubjectId(this IPermissionContextMappingDbSet ctx, Guid subjectId)
|
||||||
|
=> ctx.PermissionContextMappings.FromSqlRaw(PermissionSqls.PermissionViewSql).Where(x => x.SubjectId == subjectId);
|
||||||
|
|
||||||
|
public static IQueryable<PermissionContextMapping> GetPermissionContextsViewByContextId(this IPermissionContextMappingDbSet ctx, Guid contextId)
|
||||||
|
=> ctx.PermissionContextMappings.FromSqlRaw(PermissionSqls.PermissionViewSql).Where(x => x.ContextId == contextId);
|
||||||
|
|
||||||
|
public static IQueryable<PermissionContextMapping> GetPermissionContextsView(this IPermissionContextMappingDbSet ctx, Guid subjectId, Guid contextId)
|
||||||
|
=> ctx.PermissionContextMappings.FromSqlRaw(PermissionSqls.PermissionViewSql).Where(x => x.SubjectId == subjectId && x.ContextId == contextId);
|
||||||
|
|
||||||
|
|
||||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingsBySubjectIds(this IPermissionsDbSetContext ctx, IEnumerable<Guid> subjectIds)
|
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingsBySubjectIds(this IPermissionsDbSetContext ctx, IEnumerable<Guid> subjectIds)
|
||||||
=> ctx.PermissionContextMappings.Where(x => subjectIds.Contains(x.SubjectId));
|
=> ctx.PermissionContextMappings.Where(x => subjectIds.Contains(x.SubjectId));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ using TIAM.Entities.Products;
|
||||||
|
|
||||||
namespace TIAM.Database.DbSets.Products;
|
namespace TIAM.Database.DbSets.Products;
|
||||||
|
|
||||||
public interface ITiamProductDbSet
|
public interface IProductDbSet
|
||||||
{
|
{
|
||||||
public DbSet<TiamProduct> Products { get; }
|
public DbSet<Product> Products { get; }
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using TIAM.Entities.Products;
|
||||||
|
|
||||||
|
namespace TIAM.Database.DbSets.Products;
|
||||||
|
|
||||||
|
public static class ProductDbSetExtensins
|
||||||
|
{
|
||||||
|
#region Add, Update, Remove
|
||||||
|
public static bool AddProduct(this IProductDbSet ctx, Product product)
|
||||||
|
=> ctx.Products.Add(product).State == EntityState.Added;
|
||||||
|
#endregion Add, Update, Remove
|
||||||
|
|
||||||
|
public static Product? GetProductById(this IProductDbSet ctx, Guid productId)
|
||||||
|
=> ctx.Products.FirstOrDefault(x => x.Id == productId);
|
||||||
|
}
|
||||||
|
|
@ -17,7 +17,6 @@
|
||||||
<Folder Include="DataLayers\Permissions\" />
|
<Folder Include="DataLayers\Permissions\" />
|
||||||
<Folder Include="DataLayers\Products\" />
|
<Folder Include="DataLayers\Products\" />
|
||||||
<Folder Include="DbSets\ServiceProvider\" />
|
<Folder Include="DbSets\ServiceProvider\" />
|
||||||
<Folder Include="DbSets\Products\" />
|
|
||||||
<Folder Include="Extensions\" />
|
<Folder Include="Extensions\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,33 +6,16 @@ using TIAM.Core;
|
||||||
|
|
||||||
namespace TIAM.Entities.Products;
|
namespace TIAM.Entities.Products;
|
||||||
|
|
||||||
|
[Table("Products")]
|
||||||
public class Product : IEntityGuid, ITimeStampInfo
|
public class Product : ProductBase
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
public Guid ServiceProviderId { get; set; }
|
||||||
public Guid Id { get; set; }
|
|
||||||
|
|
||||||
public ProductType ProductType { get; set; }
|
public Product(){}
|
||||||
public Guid UserMediaId { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
public Product(Guid ownerId, ProductType productType, Guid userMediaId, string name, string description, float price, string jsonDetails) : this(Guid.NewGuid(), ownerId, productType, userMediaId, name, description, price, jsonDetails) { }
|
||||||
public string Description { get; set; }
|
public Product(Guid id, Guid serviceProviderId, ProductType productType, Guid userMediaId, string name, string description, float price, string jsonDetails) : base(id, productType, userMediaId, name, description, price, jsonDetails)
|
||||||
public float Price { get; set; }
|
|
||||||
public string JsonDetails { get; set; }
|
|
||||||
|
|
||||||
public DateTime Created { get; set; }
|
|
||||||
public DateTime Modified { get; set; }
|
|
||||||
|
|
||||||
public Product(Guid id, ProductType type, Guid userMediaId, string name, string description, float price, string jsonDetails)
|
|
||||||
{
|
{
|
||||||
Id = id;
|
ServiceProviderId = serviceProviderId;
|
||||||
ProductType = type;
|
|
||||||
UserMediaId = userMediaId;
|
|
||||||
Name = name;
|
|
||||||
Description = description;
|
|
||||||
Price = price;
|
|
||||||
JsonDetails = jsonDetails;
|
|
||||||
Created = DateTime.Now;
|
|
||||||
Modified = DateTime.Now;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
|
using TIAM.Core;
|
||||||
|
|
||||||
|
namespace TIAM.Entities.Products;
|
||||||
|
|
||||||
|
|
||||||
|
public abstract class ProductBase : IEntityGuid, ITimeStampInfo
|
||||||
|
{
|
||||||
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public ProductType ProductType { get; set; }
|
||||||
|
public Guid? UserMediaId { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public float Price { get; set; }
|
||||||
|
public string? JsonDetails { get; set; }
|
||||||
|
|
||||||
|
public DateTime Created { get; set; }
|
||||||
|
public DateTime Modified { get; set; }
|
||||||
|
|
||||||
|
protected ProductBase(){}
|
||||||
|
|
||||||
|
protected ProductBase(Guid id, ProductType type, Guid userMediaId, string name, string description, float price, string jsonDetails)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
ProductType = type;
|
||||||
|
UserMediaId = userMediaId;
|
||||||
|
Name = name;
|
||||||
|
Description = description;
|
||||||
|
Price = price;
|
||||||
|
JsonDetails = jsonDetails;
|
||||||
|
Created = DateTime.Now;
|
||||||
|
Modified = DateTime.Now;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
|
||||||
using AyCode.Interfaces.Entities;
|
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
|
||||||
using TIAM.Core;
|
|
||||||
|
|
||||||
namespace TIAM.Entities.Products;
|
|
||||||
|
|
||||||
[Table("Products")]
|
|
||||||
public class TiamProduct : Product
|
|
||||||
{
|
|
||||||
|
|
||||||
public Guid OwnerId { get; set; }
|
|
||||||
|
|
||||||
public TiamProduct(Guid ownerId, ProductType productType, Guid userMediaId, string name, string description, float price, string jsonDetails) : this(Guid.NewGuid(), ownerId, productType, userMediaId, name, description, price, jsonDetails) { }
|
|
||||||
public TiamProduct(Guid id, Guid ownerId, ProductType productType, Guid userMediaId, string name, string description, float price, string jsonDetails) : base(id, productType, userMediaId, name, description, price, jsonDetails)
|
|
||||||
{
|
|
||||||
OwnerId = ownerId;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -8,6 +8,7 @@ using TIAM.Entities.Products;
|
||||||
using TIAM.Entities.ServiceProviders;
|
using TIAM.Entities.ServiceProviders;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
using TIAMWebApp.Shared.Application.Models;
|
using TIAMWebApp.Shared.Application.Models;
|
||||||
|
using Product = TIAM.Entities.Products.Product;
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Controllers
|
namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -167,7 +168,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("CreateProduct")]
|
[Route("CreateProduct")]
|
||||||
[Tags("In-Progress", "Product")]
|
[Tags("In-Progress", "Product")]
|
||||||
public async Task<IActionResult> CreateProduct([FromBody] TiamProduct product)
|
public async Task<IActionResult> CreateProduct([FromBody] Product product)
|
||||||
{
|
{
|
||||||
Console.WriteLine("CreateProduct called");
|
Console.WriteLine("CreateProduct called");
|
||||||
if (product == null)
|
if (product == null)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue