diff --git a/Documents/GeneratedContext/xDashboard-xContentService-20260818_140736.txt b/Documents/GeneratedContext/xDashboard-xContentService-20260818_140736.txt new file mode 100644 index 0000000..cd26618 --- /dev/null +++ b/Documents/GeneratedContext/xDashboard-xContentService-20260818_140736.txt @@ -0,0 +1,1181 @@ + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Configuration\Entities\XContentEntityConfiguration.cs + +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; +using xContentService.Constants; +using xContentService.Models.Entities; +using xDataService.Providers; + +namespace xContentService.Configuration.Entities +{ + public class XContentEntityConfiguration : XBaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder builder) + { + builder.ToTable(XContentServiceConstants.XContentTable); + } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Constants\XContentServiceConstants.cs + +namespace xContentService.Constants +{ + public struct XContentServiceConstants + { + // + // Service Extensions Log Tag ... + public const string XContentServiceDILogTag = "XContentService"; + + // + // Table Mapping Identifiers ... + public const string XContentTable = "Contents"; + + // + // GraphQL Collection Mappings ... + public const string XContentSingleName = "content"; + public const string XContentCollectionName = "contents"; + + // + // Hubs ... + public const string XContentDtoHub = "contentDto"; + public const string XContentEntityHub = "contentEntity"; + + // + // EF Repositories Helper Extensions ... + public const string GetXContentEFRepositoryDescriptor = "GetXContentEFRepositoryDescriptor"; + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\DI\XDIHelperExtensions.cs + +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using xCommons.Extensions; +using xContentService.Constants; +using xContentService.Providers.Dtos; +using xContentService.Providers.Entities; +using xDataService.Constants; +using xDataService.Models; +using xPushService.DI; +using xDataService.DI; +using xPushService.Helpers; +using System; +using xExceptions.Constants; +using xContentService.Helpers; +using xCommons.Helpers; +using xContentService.Interfaces.Dtos; +using xContentService.Interfaces.Entities; +using xDataService.Db; + +namespace xContentService.DI +{ + /// + /// Service Registration Extensions Classes ... + /// + public static partial class XDIHelperExtensions + { + /// + /// Register Service ... + /// + /// + /// + /// + public static void AddXContentService( + this IServiceCollection services, + XRepositoryType repositoryType, + ServiceLifetime lifeTime = ServiceLifetime.Scoped + ) + { + AddContentService( + contextType: null, + services: services, + lifeTime: lifeTime, + repositoryType: repositoryType + ); + } + + /// + /// Register Service ... + /// + /// + /// + /// + /// + public static void AddXContentService( + this IServiceCollection services, + XRepositoryType repositoryType, + ServiceLifetime lifeTime = ServiceLifetime.Scoped + ) + where TContext : XDbContext + { + AddContentService( + services: services, + lifeTime: lifeTime, + contextType: typeof(TContext), + repositoryType: repositoryType + ); + } + + /// + /// Use xContentService Middleware ... + /// + /// + /// + public static void UseXContentService( + this IApplicationBuilder app, + bool isDevelopmentEnvironment = false + ) + { + // + #region Using XContent Hubs ... + // + var pushHelper = new XPushServiceHelper(); + + // + pushHelper.AddHub(XContentServiceConstants.XContentDtoHub); + pushHelper.AddHub(XContentServiceConstants.XContentEntityHub); + + // + app.UseXPushService(pushHelper); + #endregion + + // + // Using XContent Repository Descriptor ... + if (!descriptor.IsNull()) + { + // + app.UseXRepository( + descriptor: descriptor, + isDevelopmentEnvironment: isDevelopmentEnvironment + ); + } + } + + // + #region Private ... + private static XRepositoryDescriptor descriptor = null; + + /// + /// a LogTag for Service ... + /// + private static string XLogTag = XContentServiceConstants.XContentServiceDILogTag; + + /// + /// print a log in Console ... + /// + /// + private static void Log(string message) + { + Console.WriteLine($"{XLogTag} => {message}"); + } + + /// + /// Register Service ... + /// + /// + /// + /// + /// + private static void AddContentService( + IServiceCollection services, + XRepositoryType repositoryType, + Type contextType = null, + ServiceLifetime lifeTime = ServiceLifetime.Scoped + ) + { + // + var exception = XException.InvalidArgs.ToException(); ; + + // + // Services ... + var isServicesExists = !services.IsNull(); + if (!isServicesExists) + { + // + Log("Service Registration failed, services not provided ..."); + throw exception; + } + + // + // Lifetime ... + var isLifetimeExists = !lifeTime.IsNull(); + if (!isLifetimeExists) + { + // + Log("Service Registration failed, lifetime not provided ..."); + throw exception; + } + + // + // Validate Repository Type ... + var isRepositoryTypeValid = + (repositoryType == XRepositoryType.EF && + !contextType.IsNull()) || + ((repositoryType == XRepositoryType.Mongo || + repositoryType == XRepositoryType.InMemory) && + contextType.IsNull()); + if (!isRepositoryTypeValid) + { + // + Log("Service Registration failed, Invalid Repository Type and Context Type ..."); + throw exception; + } + + // + // Maske Instance of Repository Descriptor + // Based on Provided Type ... + switch (repositoryType) + { + // + case XRepositoryType.EF: + // + descriptor = typeof(XContentServiceHelper) + .InvokeGenericMethod( + args: null, + runtimeType: contextType, + methodName: XContentServiceConstants.GetXContentEFRepositoryDescriptor + ); + break; + + // + case XRepositoryType.Mongo: + descriptor = XContentServiceHelper.GetXContentMongoRepositoryDescriptor(); + break; + + // + case XRepositoryType.InMemory: + descriptor = XContentServiceHelper.GetXContentInMemoryRepositoryDescriptor(); + break; + } + + // + // Register XContent Repository Descriptor ... + services.AddXRepository( + lifeTime: lifeTime, + descriptor: descriptor + ); + + // + // Register Dto Services ... + services.Add( + new ServiceDescriptor(typeof(IXContentServiceProvider), typeof(XContentServiceProvider), lifeTime) + ); + services.Add( + new ServiceDescriptor(typeof(IXContentRepositoryService), typeof(XContentRepositoryService), lifeTime) + ); + services.Add( + new ServiceDescriptor(typeof(IXContentRepositoryProvider), typeof(XContentRepositoryProvider), lifeTime) + ); + + // + // Register Additional Service ... + // services.Add( + // new ServiceDescriptor(typeof(IXContentTagProvider), typeof(XContentTagProvider), lifeTime) + // ); + // services.Add( + // new ServiceDescriptor(typeof(IXContentTagProvided), typeof(XContentTagProvided), lifeTime) + // ); + // services.Add( + // new ServiceDescriptor(typeof(IXContentProvider), typeof(XContentProvider), lifeTime) + // ); + + // + Log("Service Regitration Succeed ..."); + } + #endregion + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Helpers\XContentServiceHelper.cs + +using System; +using GraphQL.Types; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xContentService.Providers.Entities; +using xContentService.Providers.GraphQL; +using xDataService.Db; +using xDataService.Models; +using xDataService.Providers; + +namespace xContentService.Helpers +{ + public static class XContentServiceHelper + { + // + #region XContent ... + // + #region EF Repository Descriptor Provider(s) ... + public static XEFRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentEFRepository, + TContext + > GetXContentEFRepositoryDescriptor() + where TContext : XDbContext + { + // + var result = new XEFRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentEFRepository, + TContext + >(); + + // + return result; + } + + public static XEFRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentEFRepository, + TContext, + IXContentSeeder, + TSeederImplementation + > GetXContentEFRepositoryDescriptor() + where TContext : XDbContext + where TSeederImplementation : XBaseDbSeeder + { + // + var result = new XEFRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentEFRepository, + TContext, + IXContentSeeder, + TSeederImplementation + >(); + + // + return result; + } + #endregion + + // + #region Mongo Repository Descriptor Provider(s) ... + public static XMongoRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentMongoRepository + > GetXContentMongoRepositoryDescriptor() + { + // + var result = new XMongoRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentMongoRepository + >(); + + // + return result; + } + + public static XMongoRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentMongoRepository, + IXContentSeeder, + TSeederImplementation + > GetXContentMongoRepositoryDescriptor() + where TSeederImplementation : XBaseDbSeeder + { + // + var result = new XMongoRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentMongoRepository, + IXContentSeeder, + TSeederImplementation + >(); + + // + return result; + } + #endregion + + // + #region InMemory Repository Descriptor Provider(s) ... + public static XInMemoryRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentInMemoryRepository + > GetXContentInMemoryRepositoryDescriptor() + { + // + var result = new XInMemoryRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentInMemoryRepository + >(); + + // + return result; + } + + public static XInMemoryRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentInMemoryRepository, + IXContentSeeder, + TSeederImplementation + > GetXContentInMemoryRepositoryDescriptor() + where TSeederImplementation : XBaseDbSeeder + { + // + var result = new XInMemoryRepositoryDescriptor< + XContent, + Guid, + IXContentKeyGenerator, + XContentKeyGenerator, + IXContentRepositoryEvents, + XContentRepositoryEvents, + XContentGraphType, + GuidGraphType, + XContentGraphQuery, + IXContentGraphQLTypeHelper, + XContentGraphQLTypeHelper, + XContentGraphSchema, + IXContentRepository, + XContentInMemoryRepository, + IXContentSeeder, + TSeederImplementation + >(); + + // + return result; + } + #endregion + #endregion + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Dtos\IXContentDtoHub.cs + +using System; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xPushService.Interfaces; + +namespace xContentService.Interfaces.Dtos +{ + public interface IXContentDtoHub : IXBaseDtoHub + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Dtos\IXContentRepositoryService.cs + +using System; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Dtos +{ + public interface IXContentRepositoryService : IXBaseRepositoryService + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Dtos\IXContentServiceProvider.cs + +using System; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xContentService.Providers.Dtos; +using xPushService.Interfaces; + +namespace xContentService.Interfaces.Dtos +{ + public interface IXContentServiceProvider : IXBaseDtoProvider + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Enrichers\IXContentEnricher.cs + +namespace xContentService.Interfaces.Enrichers +{ + // TODO: Complete this ... + public interface IXContentEnricher + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentEntityHub.cs + +using System; +using xContentService.Models.Entities; +using xPushService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentEntityHub : IXBaseEntityHub + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentGraphQLTypeHelper.cs + +using System; +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentGraphQLTypeHelper : IXBaseGraphQLTypeHelper + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentKeyGenerator.cs + +using System; +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentKeyGenerator : IXKeyGenerator + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentRepository.cs + +using System; +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentRepository : IXBaseRepository + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentRepositoryEvents.cs + +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentRepositoryEvents : IXBaseRepositoryEvents + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentRepositoryProvider.cs + +using System; +using xContentService.Models.Entities; +using xContentService.Providers.Entities; +using xPushService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentRepositoryProvider : IXBaseEntityProvider + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Interfaces\Entities\IXContentSeeder.cs + +using System; +using xContentService.Models.Entities; +using xDataService.Interfaces; + +namespace xContentService.Interfaces.Entities +{ + public interface IXContentSeeder : IXBaseDbSeeder + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Models\Dtos\XContentDto.cs + +using System; +using xModels.Base; +using xModels.Dtos; + +namespace xContentService.Models.Dtos +{ + /// + /// Content Describe DTO ... + /// + public class XContentDto : XBaseGuidIDEntityDto + { + public string OwnerId { get; set; } + public virtual XPersonDto Owner { get; set; } + + public string Title { get; set; } + public virtual XResourceDto TitleResource { get; set; } + + public string Description { get; set; } + public virtual XResourceDto DescriptionResource { get; set; } + + public DateTime CreatedOn { get; set; } + public DateTime UpdatedAt { get; set; } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Models\Entities\XContent.cs + +using System; +using System.ComponentModel.DataAnnotations; +using xModels.Base; + +namespace xContentService.Models.Entities +{ + /// + /// Content Describe ... + /// + public class XContent : XBaseGuidIDEntity + { + /// + /// User Identifier ... + /// + /// + [Required] + [StringLength(255)] + public string OwnerId { get; set; } + + /// + /// Title of Content ... + /// + [Required] + [StringLength(255)] + public string Title { get; set; } + + /// + /// Description of Content ... + /// + [StringLength(255)] + public string Description { get; set; } + + /// + /// Created Time ... + /// + public DateTime CreatedOn { get; set; } + + /// + /// Updated Time ... + /// + public DateTime UpdatedAt { get; set; } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\XContentEntityRegisterar.cs + +using System; +using Microsoft.EntityFrameworkCore; +using xContentService.Configuration.Entities; +using xContentService.Models.Entities; +using xDataService.Interfaces; +using xDataService.Providers; + +namespace xContentService.Providers +{ + public class XContentEntityRegisterar : XBaseEntityRegisterar, IXEntityRegisterar + { + public XContentEntityRegisterar() + : base(nameof(XContentEntityRegisterar)) + { + // + // Add Entity ... + AddEntity(); + } + + /// + /// Configure Entities ... + /// + /// + public override void ConfigureEntities(ModelBuilder modelBuilder) + { + // + // Configure Entity Using Provided ... + modelBuilder + .ApplyConfigurationsFromAssembly(typeof(XContentEntityConfiguration).Assembly); + + // + base.ConfigureEntities(modelBuilder); + } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Dtos\XContentDtoHub.cs + +using System; +using Microsoft.Extensions.Logging; +using xContentService.Interfaces.Dtos; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xPushService.Base; + +namespace xContentService.Providers.Dtos +{ + public class XContentDtoHub : XBaseDtoHub, IXContentDtoHub + { + public XContentDtoHub( + ILogger logger + ) : base(logger) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Dtos\XContentRepositoryService.cs + +using System; +using System.Collections.Generic; +using AutoMapper; +using xContentService.Interfaces.Dtos; +using xContentService.Interfaces.Entities; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xDataService.Providers; + +namespace xContentService.Providers.Dtos +{ + public class XContentRepositoryService : XBaseRepositoryService, IXContentRepositoryService + { + public XContentRepositoryService( + IXContentRepository repository, + IEnumerable mapperProfiles = null + ) : base( + repository, + mapperProfiles + ) + { } + + // + // TODO: Implement Enrichers ... + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Dtos\XContentServiceProvider.cs + +using System; +using Microsoft.AspNetCore.SignalR; +using xContentService.Interfaces.Dtos; +using xContentService.Models.Dtos; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xIdentityService.Interfaces; +using xPushService.Base; + +namespace xContentService.Providers.Dtos +{ + public class XContentServiceProvider : XBaseDtoProvider, IXContentServiceProvider + { + public XContentServiceProvider( + IHubContext hub, + XDataServiceConfiguration dataConfiguration, + IXContentRepositoryService service, + IXIdentityProvider identityProvider = null + ) : base( + hub, + dataConfiguration, + service, + identityProvider + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Enrichers\XContentEnricher.cs + +using xContentService.Interfaces.Enrichers; + +namespace xContentService.Providers.Enrichers +{ + public class XContentEnricher : IXContentEnricher + { + // + // TODO: Complete this ... + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentEFRepository.cs + +using System; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xDataService.Db; +using xDataService.Interfaces; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public class XContentEFRepository : XBaseEFRepository, IXContentRepository + where TContext : XDbContext + { + public XContentEFRepository( + IXUnitOfWorks unitOfWorks, + XDataServiceConfiguration configuration, + IXContentKeyGenerator keyGenerator = null, + IXContentRepositoryEvents baseRepositoryEvents = null + ) : base( + unitOfWorks, + configuration, + keyGenerator, + baseRepositoryEvents + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentEntityHub.cs + +using System; +using Microsoft.Extensions.Logging; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xPushService.Base; + +namespace xContentService.Providers.Entities +{ + public class XContentEntityHub : XBaseEntityHub, IXContentEntityHub + { + public XContentEntityHub( + ILogger logger + ) : base(logger) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentInMemoryRepository.cs + +using System; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public class XContentInMemoryRepository : XBaseInMemoryRepository, IXContentRepository + { + public XContentInMemoryRepository( + XDataServiceConfiguration configuration, + IXContentKeyGenerator keyGenerator = null, + IXContentRepositoryEvents baseRepositoryEvents = null + ) : base( + configuration, + keyGenerator, + baseRepositoryEvents + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentKeyGenerator.cs + +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public class XContentKeyGenerator : XGuidKeyGenerator, IXContentKeyGenerator + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentMongoRepository.cs + +using System; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public class XContentMongoRepository : XBaseMongoRepository, IXContentRepository + { + public XContentMongoRepository( + XDataBaseConfiguration dbConfiguration, + XDataServiceConfiguration configuration, + string collectionName = null, + IXContentKeyGenerator keyGenerator = null, + IXContentRepositoryEvents baseRepositoryEvents = null + ) : base( + dbConfiguration, + configuration, + collectionName, + keyGenerator, + baseRepositoryEvents + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentRepositoryEvents.cs + +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public class XContentRepositoryEvents : XBaseRepositoryEvents, IXContentRepositoryEvents + { } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentRepositoryProvider.cs + +using System; +using Microsoft.AspNetCore.SignalR; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xIdentityService.Interfaces; +using xPushService.Base; + +namespace xContentService.Providers.Entities +{ + public class XContentRepositoryProvider : XBaseEntityProvider, IXContentRepositoryProvider + { + public XContentRepositoryProvider( + IHubContext hub, + IXContentRepository repository, + XDataServiceConfiguration dataConfiguration, + IXIdentityProvider identityProvider = null + ) : base( + hub, + repository, + dataConfiguration, + identityProvider + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\Entities\XContentSeederBase.cs + +using System; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xDataService.Providers; + +namespace xContentService.Providers.Entities +{ + public abstract class XContentSeederBase : XBaseDbSeeder, IXContentSeeder + { + protected XContentSeederBase( + string entity, + string database, + IXContentRepository repository, + XDataServiceConfiguration dataServiceConfiguration + ) : base( + entity, + database, + repository, + dataServiceConfiguration + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\GraphQL\XContentGraphQLTypeHelper.cs + +using System; +using xContentService.Constants; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.GraphQL; + +namespace xContentService.Providers.GraphQL +{ + public class XContentGraphQLTypeHelper : XBaseGraphQLTypeHelper, IXContentGraphQLTypeHelper + { + public override string GetInQueryCollectionName() + { + return XContentServiceConstants.XContentCollectionName; + } + + public override string GetInQuerySingleName() + { + return XContentServiceConstants.XContentSingleName; + } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\GraphQL\XContentGraphQuery.cs + +using System; +using GraphQL.Types; +using xContentService.Interfaces.Entities; +using xContentService.Models.Entities; +using xDataService.Configuration; +using xDataService.GraphQL; + +namespace xContentService.Providers.GraphQL +{ + public class XContentGraphQuery : XBaseGraphQLQuery + { + public XContentGraphQuery( + XDataServiceConfiguration configuration, + IXContentRepository repository, + IXContentGraphQLTypeHelper helper + ) : base( + configuration, + repository, + helper + ) + { } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\GraphQL\XContentGraphSchema.cs + +using System; +using GraphQL.Types; + +namespace xContentService.Providers.GraphQL +{ + public class XContentGraphSchema : Schema + { + public XContentGraphSchema(IServiceProvider services) : base(services) + { + Query = (XContentGraphQuery)services.GetService(typeof(XContentGraphQuery)); + } + } +} + +### FILE: C:\Users\hkhazaeeasl\Documents\Projets\XProjects\xSaherelmWorkspace\Modules\xContentService\Providers\GraphQL\XContentGraphType.cs + +using System; +using xContentService.Models.Entities; +using xDataService.GraphQL; + +namespace xContentService.Providers.GraphQL +{ + public class XContentGraphType : XBaseGraphObjectType + { + public XContentGraphType() : base() + { + Field(x => x.Title); + Field(x => x.OwnerId); + Field(x => x.CreatedOn); + Field(x => x.UpdatedAt); + Field(x => x.Description); + } + } +} diff --git a/Modules/xEventService b/Modules/xEventService index 3e0bb2c..b20c2f8 160000 --- a/Modules/xEventService +++ b/Modules/xEventService @@ -1 +1 @@ -Subproject commit 3e0bb2c25f9a652ddc3086d3f9902f95647364f1 +Subproject commit b20c2f8db7fc11bec7edb76811999eb1643bbc6c