private static List <Type> GetObjectsFromNamespace(Type objectType, string objectNamespace, CQRS_TYPE cqrsType)
        {
            if (cqrsType == CQRS_TYPE.None)
            {
                return(objectType.Assembly.GetExportedTypes().Where(x => x.FullName.StartsWith(objectNamespace)).ToList());
            }

            return(objectType.Assembly.GetExportedTypes().Where(x => x.FullName.StartsWith(objectNamespace) && x.FullName.Contains(Enum.GetName(typeof(CQRS_TYPE), cqrsType))).ToList());
        }
        public static void RegisterLayer(IServiceCollection services, IocRegisterDto input, CQRS_TYPE cqrsType)
        {
            var interfaces = GetObjectsFromNamespace(input.RegisterInterface, input.InterfaceNamespace, cqrsType);

            var classes = GetObjectsFromNamespace(input.RegisterClass, input.ClassNamespace, cqrsType);

            foreach (Type typeClass in classes)
            {
                Type typeInterface = interfaces.Find(x => x.IsAssignableFrom(typeClass));
                if (typeInterface == null)
                {
                    continue;
                }

                services.AddTransient(typeInterface, typeClass);
            }
        }