/// <summary> /// Gets a collection of <see cref="IGatewayProviderSettings"/> by its type (Shipping, Taxation, Payment) /// </summary> /// <param name="gatewayProviderType"></param> /// <returns></returns> public IEnumerable <IGatewayProviderSettings> GetGatewayProvidersByType(GatewayProviderType gatewayProviderType) { using (var repository = RepositoryFactory.CreateGatewayProviderRepository(UowProvider.GetUnitOfWork())) { var query = Query <IGatewayProviderSettings> .Builder.Where( x => x.ProviderTfKey == EnumTypeFieldConverter.GatewayProvider.GetTypeField(gatewayProviderType).TypeKey); return(repository.GetByQuery(query)); } }
/// <summary> /// Builds an entity based on a resolved type /// </summary> /// <param name="t">The resolved Type t</param> /// <param name="gatewayProviderType">The gateway provider type</param> /// <returns></returns> internal IGatewayProviderSettings BuildEntity(Type t, GatewayProviderType gatewayProviderType) { Mandate.ParameterNotNull(t, "Type t cannot be null"); Mandate.ParameterCondition(t.GetCustomAttribute <GatewayProviderActivationAttribute>(false) != null, "Type t must have a GatewayProviderActivationAttribute"); var att = t.GetCustomAttribute <GatewayProviderActivationAttribute>(false); var provider = new GatewayProviderSettings() { Key = att.Key, ProviderTfKey = EnumTypeFieldConverter.GatewayProvider.GetTypeField(gatewayProviderType).TypeKey, Name = att.Name, Description = att.Description, ExtendedData = new ExtendedDataCollection(), EncryptExtendedData = false, UpdateDate = DateTime.Now, CreateDate = DateTime.Now }; provider.ResetHasIdentity(); return(provider); }
/// <summary> /// Gets a collection of <see cref="IGatewayProvider"/> by its type (Shipping, Taxation, Payment) /// </summary> /// <param name="gatewayProviderType"></param> /// <returns></returns> public IEnumerable<IGatewayProvider> GetGatewayProvidersByType(GatewayProviderType gatewayProviderType) { using (var repository = _repositoryFactory.CreateGatewayProviderRepository(_uowProvider.GetUnitOfWork())) { var query = Query<IGatewayProvider>.Builder.Where( x => x.ProviderTfKey == EnumTypeFieldConverter.GatewayProvider.GetTypeField(gatewayProviderType).TypeKey); return repository.GetByQuery(query); } }
// TODO refactor this private void ToggleProviderActivation(IGatewayProvider gatewayProvider, GatewayProviderType gatewayProviderType) { switch (gatewayProviderType) { case GatewayProviderType.Payment: if (gatewayProvider.Activated) _gatewayContext.Payment.DeactivateProvider(gatewayProvider); else _gatewayContext.Payment.ActivateProvider(gatewayProvider); break; case GatewayProviderType.Shipping: if (gatewayProvider.Activated) _gatewayContext.Shipping.DeactivateProvider(gatewayProvider); else _gatewayContext.Shipping.ActivateProvider(gatewayProvider); break; case GatewayProviderType.Taxation: if (gatewayProvider.Activated) _gatewayContext.Taxation.DeactivateProvider(gatewayProvider); else _gatewayContext.Taxation.ActivateProvider(gatewayProvider); break; } }
/// <summary> /// Helper method to get get the <see cref="IGatewayProvider"/> from the appropriate resolver /// </summary> /// <param name="gatewayProvider">The <see cref="GatewayProviderDisplay"/></param> /// <param name="gatewayProviderType"></param> /// <returns>A <see cref="IGatewayProvider"/> or null</returns> // TODO refactor this private IGatewayProvider GetGatewayProviderFromResolver(GatewayProviderDisplay gatewayProvider, GatewayProviderType gatewayProviderType) { // get the type of the provider IGatewayProvider provider = null; switch (gatewayProviderType) { case GatewayProviderType.Payment: provider = _gatewayContext.Payment.GetAllProviders().FirstOrDefault(x => x.Key == gatewayProvider.Key); break; case GatewayProviderType.Shipping: provider = _gatewayContext.Shipping.GetAllProviders().FirstOrDefault(x => x.Key == gatewayProvider.Key); break; case GatewayProviderType.Taxation: provider = _gatewayContext.Taxation.GetAllProviders().FirstOrDefault(x => x.Key == gatewayProvider.Key); break; } return provider; }
/// <summary> /// Helper method to get get the <see cref="IGatewayProviderSettings"/> from the appropriate resolver /// </summary> /// <param name="gatewayProvider">The <see cref="GatewayProviderDisplay"/></param> /// <param name="gatewayProviderType">The gateway provider type</param> /// <returns>A <see cref="IGatewayProviderSettings"/> or null</returns> private IGatewayProviderSettings GetGatewayProviderFromResolver(GatewayProviderDisplay gatewayProvider, GatewayProviderType gatewayProviderType) { GatewayProviderBase provider = null; switch (gatewayProviderType) { case GatewayProviderType.Notification: provider = _gatewayContext.Notification.GetProviderByKey(gatewayProvider.Key, false); break; case GatewayProviderType.Payment: provider = _gatewayContext.Payment.GetProviderByKey(gatewayProvider.Key, false); break; case GatewayProviderType.Shipping: provider = _gatewayContext.Shipping.GetProviderByKey(gatewayProvider.Key, false); break; case GatewayProviderType.Taxation: provider = _gatewayContext.Taxation.GetProviderByKey(gatewayProvider.Key, false); break; } return(provider != null ? provider.GatewayProviderSettings : null); }
// TODO refactor this /// <summary> /// The toggle provider activation. /// </summary> /// <param name="gatewayProviderSettings"> /// The gateway provider settings. /// </param> /// <param name="gatewayProviderType"> /// The gateway provider type. /// </param> private void ToggleProviderActivation(IGatewayProviderSettings gatewayProviderSettings, GatewayProviderType gatewayProviderType) { switch (gatewayProviderType) { case GatewayProviderType.Notification: if (gatewayProviderSettings.Activated) { _gatewayContext.Notification.DeactivateProvider(gatewayProviderSettings); } else { _gatewayContext.Notification.ActivateProvider(gatewayProviderSettings); } break; case GatewayProviderType.Payment: if (gatewayProviderSettings.Activated) { _gatewayContext.Payment.DeactivateProvider(gatewayProviderSettings); } else { _gatewayContext.Payment.ActivateProvider(gatewayProviderSettings); } break; case GatewayProviderType.Shipping: if (gatewayProviderSettings.Activated) { _gatewayContext.Shipping.DeactivateProvider(gatewayProviderSettings); } else { _gatewayContext.Shipping.ActivateProvider(gatewayProviderSettings); } break; case GatewayProviderType.Taxation: if (gatewayProviderSettings.Activated) { _gatewayContext.Taxation.DeactivateProvider(gatewayProviderSettings); } else { _gatewayContext.Taxation.ActivateProvider(gatewayProviderSettings); } break; } }
/// <summary> /// Helper method to get get the <see cref="IGatewayProviderSettings"/> from the appropriate resolver /// </summary> /// <param name="gatewayProvider">The <see cref="GatewayProviderDisplay"/></param> /// <param name="gatewayProviderType"></param> /// <returns>A <see cref="IGatewayProviderSettings"/> or null</returns> private IGatewayProviderSettings GetGatewayProviderFromResolver(GatewayProviderDisplay gatewayProvider, GatewayProviderType gatewayProviderType) { // get the type of the provider GatewayProviderBase provider = null; switch (gatewayProviderType) { case GatewayProviderType.Payment: provider = _gatewayContext.Payment.GetProviderByKey(gatewayProvider.Key, false); break; case GatewayProviderType.Shipping: provider = _gatewayContext.Shipping.GetProviderByKey(gatewayProvider.Key, false); break; case GatewayProviderType.Taxation: provider = _gatewayContext.Taxation.GetProviderByKey(gatewayProvider.Key, false); break; } return provider != null ? provider.GatewayProviderSettings : null; }