private async void btnDeactivate_Click(object sender, EventArgs e) { if (!this.IsLoggedOn) { MessageBox.Show("You have to be logged on in order to deactivate the device."); return; } this.DisableUI(); try { IStoreOperationsManager storeOperationsManager = this.currentManagerFactory.GetManager <IStoreOperationsManager>(); await storeOperationsManager.DeactivateDevice("testDevice.DeviceId"); this.appStorage.Remove(this.currentDeviceActivationInfo); this.currentDeviceActivationInfo = null; this.Log("Deactivation succeeded."); } catch (Exception ex) { this.Log(ex.ToString()); } finally { this.RefreshActivationStorageInformation(); this.RefreshLogOnInformation(); this.RefreshUI(); this.btnLogOff_Click(sender, e); } }
private async void btnActivate_Click(object sender, EventArgs e) { try { string aadToken = AzureActiveDirectoryHelper.GetAADHeaderWithPrompt(); this.textBoxRetailServerUrl.Text = this.retailServerUrl; RetailServerContext context = Helpers.CreateNewRetailServerContext(this.retailServerUrl); ManagerFactory managerFactory = ManagerFactory.Create(context); managerFactory.Context.SetUserToken(new AADToken(aadToken)); managerFactory.Context.SetDeviceToken(null); DeviceActivationResult result = null; IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); result = await storeOperationsManager.ActivateDevice(this.textBoxDeviceId.Text, this.textBoxRegisterId.Text, "testDevice.DeviceId", forceActivate : true, deviceType : 2 /*testDevice.DeviceType*/); this.AppInfo = new DeviceActivationInformation(this.retailServerUrl, result.Device.TerminalId, result.Device.ChannelName, result.Device.Token, result.Device.DeviceNumber, DateTime.Now); this.mainForm.Log("Activation succeeded."); } catch (Exception ex) { this.mainForm.Log(ex.ToString()); } this.Close(); }
/// <summary> /// Finalizes the link to existing customer. /// </summary> /// <param name="emailAddressOfExistingCustomer">The email address of existing customer.</param> /// <param name="activationCode">The activation code.</param> /// <returns>The link result.</returns> public virtual async Task <LinkToExistingCustomerResult> FinalizeLinkToExistingCustomer(string emailAddressOfExistingCustomer, string activationCode) { IStoreOperationsManager storeOperationsManager = Utilities.GetManagerFactory(this.EcommerceContext.GetAnonymousContext()).GetManager <IStoreOperationsManager>(); LinkToExistingCustomerResult result = await storeOperationsManager.FinalizeLinkToExistingCustomer(emailAddressOfExistingCustomer, activationCode); return(result); }
/// <summary> /// Get the gift card balance. /// </summary> /// <param name="giftCardNumber">The gift card number.</param> /// <returns>A response containing gift card balance.</returns> public virtual async Task <GiftCard> GetGiftCardInformation(string giftCardNumber) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); GiftCard giftCard = await storeOperationsManager.GetGiftCard(giftCardNumber); return(giftCard); }
public virtual async Task <PagedResult <DeliveryOption> > GetDeliveryOptionsInfo(QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <DeliveryOption> deliveryOptions = await storeOperationsManager.GetDeliveryOptions(queryResultSettings); return(deliveryOptions); }
public virtual async Task <PagedResult <TenderType> > GetTenderTypes(QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <TenderType> tenderTypes = await storeOperationsManager.GetTenderTypes(queryResultSettings); return(tenderTypes); }
public virtual async Task <PagedResult <CardTypeInfo> > GetCardTypes(QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <CardTypeInfo> cardTypeInfoCollection = await storeOperationsManager.GetCardTypes(queryResultSettings); return(cardTypeInfoCollection); }
/// <summary> /// Initiates a link between an external identity and an existing customer. /// </summary> /// <param name="emailAddressOfExistingCustomer">The email address of existing customer.</param> /// <param name="emailTemplateId">The email template identifier.</param> /// <param name="emailTemplateProperties">The email template properties.</param> /// <returns> /// A task. /// </returns> public virtual async Task <LinkToExistingCustomerResult> InitiateLinkExternalIdToExistingCustomer(string emailAddressOfExistingCustomer, string emailTemplateId, IEnumerable <NameValuePair> emailTemplateProperties) { string activationToken = System.Guid.NewGuid().ToString(); IStoreOperationsManager storeOperationsManager = Utilities.GetManagerFactory(this.EcommerceContext).GetManager <IStoreOperationsManager>(); LinkToExistingCustomerResult linkResult = await storeOperationsManager.InitiateLinkToExistingCustomer(emailAddressOfExistingCustomer, activationToken, emailTemplateId, emailTemplateProperties); return(linkResult); }
public virtual async Task <PagedResult <LoyaltyCardTransaction> > GetLoyaltyCardTransactions(string loyaltyCardNumber, string rewardPointId, QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <LoyaltyCardTransaction> loyaltyCardTransactions = await storeOperationsManager.GetLoyaltyCardTransactions(loyaltyCardNumber, rewardPointId, queryResultSettings); return(loyaltyCardTransactions); }
public virtual async Task <PagedResult <StateProvinceInfo> > GetStateProvinces(string countryCode, QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <StateProvinceInfo> stateProvinceInfoCollection = await storeOperationsManager.GetStateProvinces(countryCode, queryResultSettings); return(stateProvinceInfoCollection); }
public virtual async Task <PagedResult <CountryRegionInfo> > GetCountryRegionInfo(string languageId, QueryResultSettings queryResultSettings) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); PagedResult <CountryRegionInfo> countryRegionInfoCollection = await storeOperationsManager.GetCountryRegionsByLanguageId(languageId, queryResultSettings); return(countryRegionInfoCollection); }
public virtual async Task <PagedResult <LoyaltyCard> > GetLoyaltyCards(QueryResultSettings queryResultSettings) { PagedResult <LoyaltyCard> loyaltyCards = new PagedResult <LoyaltyCard>(); ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); loyaltyCards = await storeOperationsManager.GetCustomerLoyaltyCards(accountNumber : null, queryResultSettings : queryResultSettings); return(loyaltyCards); }
/// <summary> /// Generates a loyalty card identifier. /// </summary> /// <returns> /// A loyalty card. /// </returns> public virtual async Task <LoyaltyCard> GenerateLoyaltyCardId() { LoyaltyCard loyaltyCard = new LoyaltyCard(); ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); loyaltyCard = await storeOperationsManager.IssueLoyaltyCard(loyaltyCard); return(loyaltyCard); }
public virtual async Task <PagedResult <LoyaltyCard> > GetLoyaltyCardStatus(IEnumerable <string> loyaltyCardNumbers) { ManagerFactory managerFactory = Utilities.GetManagerFactory(this.EcommerceContext); IStoreOperationsManager storeOperationsManager = managerFactory.GetManager <IStoreOperationsManager>(); List <LoyaltyCard> loyaltyCards = new List <LoyaltyCard>(); foreach (string loyaltyCardNumber in loyaltyCardNumbers) { loyaltyCards.Add(await storeOperationsManager.GetLoyaltyCard(loyaltyCardNumber)); } PagedResult <LoyaltyCard> loyaltyCardPagedResult = new PagedResult <LoyaltyCard>(loyaltyCards); return(loyaltyCardPagedResult); }
/// <summary> /// Creates the specified customer. /// </summary> /// <param name="customer">The customer.</param> /// <returns>The created customer.</returns> public virtual async Task <Customer> Create(Customer customer) { // An empty ecommerce context is explicitly passed in because this needs to be an anonymous call. IOrgUnitManager orgUnitManager = Utilities.GetManagerFactory(this.EcommerceContext.GetAnonymousContext()).GetManager <IOrgUnitManager>(); ChannelConfiguration channelConfiguration = await orgUnitManager.GetOrgUnitConfiguration(); customer.Language = channelConfiguration.DefaultLanguageId; customer.CustomerTypeValue = 1; // To denote this is a CustomerType.Person. ManagerFactory factory = Utilities.GetManagerFactory(this.EcommerceContext); ICustomerManager customerManager = factory.GetManager <ICustomerManager>(); Customer createdCustomer = null; try { createdCustomer = await customerManager.Create(customer); } catch (UserAuthorizationException ex) { if (ex.ErrorResourceId == AuthenticationErrors.UserNotActivated) { var message = "There is already an inactive account associated with the current external id. Need to unlink first."; RetailLogger.Log.OnlineStoreCreatingNewCustomerForExternalIdWithInactiveLinkToExistingCustomer( Utilities.GetMaskedEmailAddress(customer.Email), this.EcommerceContext.IdentityProviderType.ToString(), message); IStoreOperationsManager storeOperationsManager = factory.GetManager <IStoreOperationsManager>(); await storeOperationsManager.UnlinkFromExistingCustomer(); createdCustomer = await customerManager.Create(customer); } else { throw ex; } } return(createdCustomer); }
/// <summary> /// Unlinks the external identifier from existing customer. /// </summary> /// <returns>A task.</returns> public virtual async Task UnlinkExternalIdFromExistingCustomer() { IStoreOperationsManager storeOperationsManager = Utilities.GetManagerFactory(this.EcommerceContext).GetManager <IStoreOperationsManager>(); await storeOperationsManager.UnlinkFromExistingCustomer(); }