/// <summary> Create child repository and set this as parent </summary>
        public virtual TRepository GetChildRepository <TRepository>() where TRepository : IBaseRepository
        {
            TRepository repo = HttpContext.RequestServices.GetRequiredService <TRepository>();

            if (repo != null)
            {
                repo.Parent = this;
            }
            else
            {
                var errorMessage = $"Repository {typeof(TRepository).Name} not registred";
                throw new InvalidOperationException(GeneralContext.GetApiMessageInfo(errorMessage, EventLevel.Critical));
            }
            return(repo);
        }
        /// <summary> Create child service and set this as parent </summary>
        public virtual TService GetChildService <TService>() where TService : IBaseService
        {
            TService service = default;

            try
            {
                service        = HttpContext.RequestServices.GetRequiredService <TService>();
                service.Parent = this;
                service.IsTransactionEnabled = this.IsTransactionEnabled;
            }
            catch (Exception ex)
            {
                var errorMessage = $"Serice {typeof(TService).Name} not registred {ex.GetApiMessageInfo()}";
                throw new InvalidOperationException(GeneralContext.GetApiMessageInfo(errorMessage, EventLevel.Critical));
            }
            return(service);
        }