Ejemplo n.º 1
0
            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);
                }
            }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 5
0
            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);
            }
Ejemplo n.º 6
0
            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);
            }
Ejemplo n.º 7
0
            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();
 }