Beispiel #1
0
        public HapoalimApi(IProviderDescriptor accountDescriptor)
        {
            if (accountDescriptor == null || accountDescriptor.Credentials.Count == 0)
            {
                throw new ArgumentNullException("accountDescriptor");
            }

            var crentialValues = accountDescriptor.Credentials.Values.ToArray();

            _userId          = crentialValues[0];
            _userCredentials = crentialValues[1];

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, policyErrors) => true;

            // Acquire token
            IsReady   = true;
            _initInfo = Init();
            var result = Verify();

            if (result == null || result.Error != null)
            {
                IsReady = false;
            }

            GetLandpage();

            _log.Debug("HapoalimApi is created");
        }
Beispiel #2
0
        private static IDataProvider CreateVendorProvider(IProviderDescriptor accountDescriptor)
        {
            IDataProvider result   = null;
            var           vendorId = GetVendorIdByName(accountDescriptor.Name);

            if (vendorId != VendorId.None)
            {
                switch (vendorId)
                {
                case VendorId.Hapoalim:
                    //var hapoalimApi = new HapoalimApi(accountDescriptor);
                    var hapoalimApi = new MockHapoalimApi(accountDescriptor);
                    result = new HapoalimDataProvider(hapoalimApi);
                    break;

                case VendorId.Amex:
                    //var amexApi = new AmexApi(accountDescriptor);
                    var amexApi = new MockAmexApi(accountDescriptor);
                    result = new AmexDataProvider(amexApi);
                    break;

                case VendorId.Cal:
                    //var calApi = new CalApi(accountDescriptor);
                    var calApi = new MockCalApi();
                    result = new CalDataProvider(calApi);
                    break;

                default: break;
                }
            }

            return(result);
        }
Beispiel #3
0
        public AmexApi(IProviderDescriptor accountDescriptor)
        {
            if (accountDescriptor == null)
            {
                throw new ArgumentNullException("credentials");
            }

            var crentialValues = accountDescriptor.Credentials.Values.ToArray();

            _idNumber   = crentialValues[0];
            _lastDigits = crentialValues[1];
            _password   = crentialValues[2];

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, policyErrors) => true;

            IsReady = true;
            var loginResponse = Login();

            if (loginResponse.Status != 1)
            {
                IsReady = false;

                _log.ErrorFormat("Cannot create AmexApi - {0}", loginResponse.Message);
                throw new FieldAccessException(loginResponse.Message);
            }

            _log.Debug("AmexApi is created");
        }
Beispiel #4
0
        public static IObservable <IDataProvider> CreateProvider(IProviderDescriptor descriptor)
        {
            IObservable <IDataProvider> result = Observable.Create <IDataProvider>((observer) =>
            {
                var task = new Task(() =>
                {
                    IDataProvider provider = null;
                    try
                    {
                        provider = CreateVendorProvider(descriptor);
                    }
                    catch (Exception exp)
                    {
                        observer.OnError(new DataProviderException(descriptor, exp.Message));
                    }

                    if (provider == null || !provider.IsReady)
                    {
                        var error = new DataProviderException(descriptor, "Cannot access");
                        observer.OnError(error);
                    }

                    observer.OnNext(provider);
                });
                task.Start();

                return(() => { });
            });

            return(result);
        }
        /// <summary>
        /// Creates a Provider based on the specified type.
        /// </summary>
        /// <typeparam name="T">The type of provider to create.</typeparam>
        /// <param name="providerDescriptor">The provider descriptor.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">providerDescriptor</exception>
        /// <exception cref="CreateProviderException">
        /// Error creating provider
        /// </exception>
        protected T CreateProvider <T>(IProviderDescriptor providerDescriptor) where T : IProvider
        {
            try
            {
                if (providerDescriptor == null)
                {
                    throw new ArgumentNullException("providerDescriptor");
                }

                Type type = typeof(T);

                if (!type.IsAssignableFrom(providerDescriptor.ProviderType))
                {
                    throw new CreateProviderException(
                              string.Format("{0} should be assignable from {1}.",
                                            type.Name,
                                            providerDescriptor.ProviderType.Name
                                            ));
                }

                var instance = GenericMethodInvoker.Invoke(
                    this,
                    "Create",
                    providerDescriptor.ProviderType,
                    new object[] { },
                    BindingFlags.NonPublic | BindingFlags.Instance
                    );

                if (instance == null)
                {
                    throw new CreateProviderException(
                              string.Format(
                                  "Could not create instance of type {0}. If you've got a Provider " +
                                  "implementation that exposes constructor arguments then please consider " +
                                  "using any of the existing dependency resolvers or write your " +
                                  "own implementation.",
                                  providerDescriptor.ProviderType.Name));
                }

                var provider = (IProvider)instance;
                provider.Group    = providerDescriptor.ProviderGroup;
                provider.Name     = providerDescriptor.ProviderName;
                provider.Settings = providerDescriptor.ProviderSettings;

                return((T)instance);
            }
            catch (Exception ex)
            {
                if (!(ex is CreateProviderException))
                {
                    throw new CreateProviderException(
                              "Error creating provider.",
                              ex);
                }
                else
                {
                    throw;
                }
            }
        }
        public UmtbDataProvider(IProviderDescriptor accountDescriptor)
        {
            if (accountDescriptor == null || accountDescriptor.Credentials.Count == 0)
            {
                throw new ArgumentNullException("accountDescriptor");
            }

            var crentialValues = accountDescriptor.Credentials.Values.ToArray();

            _userId          = crentialValues[0];
            _userCredentials = crentialValues[1];
        }
Beispiel #7
0
        public MockHapoalimApi(IProviderDescriptor accountDescriptor)
        {
            Thread.Sleep(300);
            if (accountDescriptor.Credentials.ContainsKey("Password") &&
                accountDescriptor.Credentials["Password"].Equals("12345678"))
            {
                _isValid = true;
            }
            else
            {
                _isValid = false;
            }

            _log.Debug("MockHapoalimApi is created");
        }
Beispiel #8
0
        public MockAmexApi(IProviderDescriptor accountDescriptor)
        {
            Thread.Sleep(1500);
            if (accountDescriptor.Credentials.ContainsKey("Id") &&
                accountDescriptor.Credentials["Id"].Equals("042349839"))
            {
                _isValid = true;
            }
            else
            {
                _isValid = false;
            }

            _log.Debug("MockAmexApi is created");
        }
Beispiel #9
0
        public CalApi(IProviderDescriptor accountDescriptor)
        {
            if (accountDescriptor == null)
            {
                throw new ArgumentNullException("credentials");
            }

            var crentialValues = accountDescriptor.Credentials.Values.ToArray();

            _username = crentialValues[0];
            _password = crentialValues[1];

            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, policyErrors) => true;
            _sessionInfo = new CalSessionInfo();

            IsReady = true;
        }
 public DataProviderException(IProviderDescriptor descriptor, string message)
 {
     ProviderDescriptor = descriptor;
     Message            = message;
 }