private static T GetInstanceContext <T>(Type clientType, string authorizationHeader, IConfigProvider configProvider,
                                         ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy) where T : class
 {
     try
     {
         if (clientadapter == ClientConfiguration.ClientAdapter.Proxy)
         {
             var  runtime  = DependencyContext.Default.RuntimeLibraries.FirstOrDefault(x => x.Name.Contains("CotorraNube.CotoRRA.ClientProxy"));
             var  assembly = Assembly.Load(new AssemblyName(runtime.Name));
             Type type     = assembly.GetType(clientType.FullName + clientadapter.ToString());
             return(Activator.CreateInstance(type, authorizationHeader, configProvider) as T);
         }
         else
         {
             throw new NotSupportedException("Esta opraciòn solo esta soportada para clientes proxy");
         }
     }
     catch (Exception)
     {
         if (clientadapter == ClientConfiguration.ClientAdapter.Proxy)
         {
             return(GetInstanceContextPackageAssemblyNong <T>(clientType, authorizationHeader, configProvider: null, clientadapter: ClientConfiguration.ClientAdapter.Proxy));
         }
     }
     return(null);
 }
        /// <summary>
        /// Gets the instance asembly.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="clientType">Type of the client.</param>
        /// <param name="authorizationHeader">The authorization header.</param>
        /// <param name="config">The configuration.</param>
        /// <param name="clientadapter">The clientadapter.</param>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException">Client adapter not found</exception>

        private static IStatusClient <T> GetInstanceAsembly <T>(string authorizationHeader,
                                                                IStatusFullValidator <T> validator,
                                                                IConfigProvider config = null,
                                                                ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
            where T : StatusIdentityCatalogEntityExt
        {
            Assembly assembly = null;
            var      variable = PlatformServices.Default.Application.ApplicationBasePath;
            Type     type     = null;

            try
            {
                if (clientadapter == ClientConfiguration.ClientAdapter.Proxy)
                {
                    assembly = Assembly.Load(variable + "Cotorra.ClientProxy.dll");
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Local)
                {
                    assembly = Assembly.Load(variable + "Cotorra.ClientLocal.dll");
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Internal)
                {
                    assembly = Assembly.Load(variable + "Cotorra.ClientLocal.dll");
                }
                if (assembly != null)
                {
                    string clientName = String.Empty;
                    if (clientadapter == ClientConfiguration.ClientAdapter.Local || clientadapter == ClientConfiguration.ClientAdapter.Internal)
                    {
                        clientName = "Cotorra.ClientLocal.StatusClientLocal`1";
                    }
                    else
                    {
                        clientName = "Cotorra.ClientProxy.StatusClientProxy`1";
                    }
                    type = assembly.DefinedTypes.FirstOrDefault(p => p.FullName.Contains(clientName)).UnderlyingSystemType;
                }
                else
                {
                    throw new CotorraException(100, "100", "assembly is null", null);
                }

                if (config != null)
                {
                    var makeme = type.MakeGenericType(typeof(T));
                    return(Activator.CreateInstance(makeme, authorizationHeader, validator, config) as IStatusClient <T>);
                }
                else
                {
                    var makeme = type.MakeGenericType(typeof(T));
                    return(Activator.CreateInstance(makeme, authorizationHeader, validator) as IStatusClient <T>);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public HistoricEmployeesController()
        {
            SessionModel.Initialize();
            clientAdapter = ClientConfiguration.GetAdapterFromConfig();
            var authorization = SessionModel.AuthorizationHeader;

            client = new Client <HistoricEmployee>(authorization, clientAdapter);
            _clientEmployerRegistration = new Client <EmployerRegistration>(authorization, clientAdapter);
        }
        private static T GetInstanceContextPackageAssemblyNong <T>(Type clientType, string authorizationHeader, IConfigProvider configProvider,
                                                                   ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy) where T : class
        {
            try
            {
                var appDirecotry = PlatformServices.Default.Application.ApplicationBasePath;
                var appName      = PlatformServices.Default.Application.ApplicationName + ".dll";
                var direcotry    = appDirecotry + appName;
                var info2        = DependencyContext.Default.RuntimeLibraries.FirstOrDefault(x => x.Name.Contains("CotorraNube.CotoRRA.Standard.ProxyClient"));
                var Assembly     = AssemblyLoadContext.Default.LoadFromAssemblyPath(direcotry);

                var assemblyResolver = new CompositeCompilationAssemblyResolver
                                           (new ICompilationAssemblyResolver[]
                {
                    new AppBaseCompilationAssemblyResolver(Path.GetDirectoryName(direcotry)),
                    new ReferenceAssemblyPathResolver(),
                    new PackageCompilationAssemblyResolver()
                });

                var loadContext = AssemblyLoadContext.GetLoadContext(Assembly);

                if (info2 != null)
                {
                    var wrapper = new CompilationLibrary(
                        info2.Type,
                        info2.Name,
                        info2.Version,
                        info2.Hash,
                        info2.RuntimeAssemblyGroups.SelectMany(g => g.AssetPaths),
                        info2.Dependencies,
                        info2.Serviceable);

                    var assemblies = new List <string>();
                    assemblyResolver.TryResolveAssemblyPaths(wrapper, assemblies);
                    if (assemblies.Count > 0)
                    {
                        var  res  = loadContext.LoadFromAssemblyPath(assemblies[0]);
                        Type type = res.GetType(clientType.FullName + clientadapter.ToString());
                        if (configProvider != null)
                        {
                            return(Activator.CreateInstance(type, authorizationHeader, configProvider) as T);
                        }
                        else
                        {
                            return(Activator.CreateInstance(type, authorizationHeader) as T);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("Client adapter not found", ex);
            }

            return(null);
        }
        /// <summary>
        /// Gets the instance asembly.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="clientType">Type of the client.</param>
        /// <param name="authorizationHeader">The authorization header.</param>
        /// <param name="config">The configuration.</param>
        /// <param name="clientadapter">The clientadapter.</param>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException">Client adapter not found</exception>
        private static T GetInstanceAsembly <T>(Type clientType, string authorizationHeader, IConfigProvider config = null,
                                                ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy) where T : class
        {
            Assembly assembly = null;
            var      variable = PlatformServices.Default.Application.ApplicationBasePath;
            Type     type     = null;

            try
            {
                if (clientadapter == ClientConfiguration.ClientAdapter.Proxy)
                {
                    assembly = Assembly.LoadFrom(variable + "Cotorra.ClientProxy.dll");
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Local)
                {
                    assembly = Assembly.LoadFrom(variable + "Cotorra.ClientLocal.dll");
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Internal)
                {
                    assembly = Assembly.LoadFrom(variable + "Cotorra.ClientLocal.dll");
                }
                if (assembly != null)
                {
                    type = assembly.GetType(clientType.FullName + clientadapter.ToString());
                }
                else
                {
                    throw new CotorraException(100, "100", "assembly is null", null);
                }

                if (config != null)
                {
                    return(Activator.CreateInstance(type, authorizationHeader, config) as T);
                }
                else
                {
                    return(Activator.CreateInstance(type, authorizationHeader) as T);
                }
            }
            catch (Exception)
            {
                return(GetInstanceContext <T>(clientType, authorizationHeader, config, clientadapter));
            }
        }
 public static IStatusClient <T> GetInstance <T>(string authorizationHeader, IConfigProvider configProvider, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
     where T : StatusIdentityCatalogEntityExt
 {
     return(GetInstanceAsembly <T>(authorizationHeader, config: configProvider, clientadapter: clientadapter));
 }
 /// <summary>
 /// Gets the instance.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="clientType">Type of the client.</param>
 /// <param name="authorizationHeader">The authorization header.</param>
 /// <param name="clientadapter">The clientadapter.</param>
 /// <returns></returns>
 public static IStatusClient <T> GetInstance <T>(string authorizationHeader, IStatusFullValidator <T> validator, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
     where T : StatusIdentityCatalogEntityExt
 {
     return(GetInstanceAsembly <T>(authorizationHeader, config: null, clientadapter: clientadapter,
                                   validator: validator));
 }
 public EmployeeConceptsRelationDetailClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <IEmployeeConceptsRelationDetailClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }
示例#9
0
 public StampingClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <IStampingClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter) as IStampingClient;
 }
示例#10
0
 public EmployeeIdentityRegistrationClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <IEmployeeIdentityRegistrationClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }
示例#11
0
 public NOMSurveyReplyClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <INOMSurveyReplyClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }
 /// <summary>
 /// Gets the instance.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="clientType">Type of the client.</param>
 /// <param name="authorizationHeader">The authorization header.</param>
 /// <param name="config">The configuration.</param>
 /// <param name="clientadapter">The clientadapter.</param>
 /// <returns></returns>
 public static T GetInstance <T>(Type clientType, string authorizationHeader, IConfigProvider config,
                                 ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy) where T : class
 {
     return(GetInstanceAsembly <T>(clientType, authorizationHeader, config: config, clientadapter: clientadapter));
 }
示例#13
0
 public Client(string authorizationHeader, IValidator <T> validator,
               ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client         = ClientAdapterFactory.GetInstance <T>(authorizationHeader, validator, clientadapter);
     _configProvider = null;
 }
示例#14
0
 public static IClient <T> GetInstance <T>(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
     where T : BaseEntity
 {
     return(GetInstanceAsembly <T>(authorizationHeader, config: null, clientadapter: clientadapter));
 }
示例#15
0
        private static IClient <T> GetInstanceAsembly <T>(string authorizationHeader,
                                                          IConfigProvider config = null,
                                                          ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
            where T : BaseEntity
        {
            Assembly assembly = null;
            var      variable = String.Empty;

//#if __ANDROID__
            variable = System.Reflection.Assembly.GetExecutingAssembly().Location;
//#else
            variable = PlatformServices.Default.Application.ApplicationBasePath;
//#endif
            Type type = null;

            try
            {
                if (clientadapter == ClientConfiguration.ClientAdapter.Proxy)
                {
                    var file = $"{variable}Cotorra.ClientProxy.dll";
                    if (File.Exists(file))
                    {
                        assembly = Assembly.LoadFrom(file);
                    }
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Local)
                {
                    assembly = Assembly.LoadFrom(variable + "Cotorra.ClientLocal.dll");
                }
                else if (clientadapter == ClientConfiguration.ClientAdapter.Internal)
                {
                    assembly = Assembly.LoadFrom(variable + "Cotorra.ClientLocal.dll");
                }
                if (assembly != null)
                {
                    string clientName = String.Empty;
                    if (clientadapter == ClientConfiguration.ClientAdapter.Local || clientadapter == ClientConfiguration.ClientAdapter.Internal)
                    {
                        clientName = "Cotorra.ClientLocal.ClientLocal`1";
                    }
                    else
                    {
                        clientName = "Cotorra.ClientProxy.ClientProxy`1";
                    }
                    type = assembly.DefinedTypes.FirstOrDefault(p => p.FullName.Contains(clientName)).UnderlyingSystemType;
                }
                else
                {
                    throw new Exception("assembly is null");
                }

                if (config != null)
                {
                    var makeme = type.MakeGenericType(typeof(T));
                    return(Activator.CreateInstance(makeme, authorizationHeader, config) as IClient <T>);
                }
                else
                {
                    var makeme = type.MakeGenericType(typeof(T));
                    return(Activator.CreateInstance(makeme, authorizationHeader) as IClient <T>);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
示例#16
0
 public Client(string authorizationHeader, IConfigProvider configProvider, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _configProvider = configProvider;
     _client         = ClientAdapterFactory.GetInstance <T>(authorizationHeader, configProvider, clientadapter);
 }
 public BankPaymentLayoutClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <IBankPaymentLayoutClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }
示例#18
0
 public CotorriaBotClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <ICotorriaBotClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }
 public SettlementProcessClient(string authorizationHeader, ClientConfiguration.ClientAdapter clientadapter = ClientConfiguration.ClientAdapter.Proxy)
 {
     _client = ClientAdapterFactory2.GetInstance <ISettlementProcessClient>(this.GetType(), authorizationHeader, clientadapter: clientadapter);
 }