public async Task <PaymentConfiguration> UpdatePaymentConfiguration(PaymentConfiguration paymentConfiguration) { // validate the payment configuration before saving. PayPalGateway.ValidateConfiguration(paymentConfiguration); // check if branding configuration has been setup else don't create web experience profile. bool isBrandingConfigured = await ApplicationDomain.Instance.PortalBranding.IsConfiguredAsync(); if (isBrandingConfigured) { // create a web experience profile using the branding for the web store. BrandingConfiguration brandConfig = await ApplicationDomain.Instance.PortalBranding.RetrieveAsync(); paymentConfiguration.WebExperienceProfileId = PayPalGateway.CreateWebExperienceProfile(paymentConfiguration, brandConfig, ApplicationDomain.Instance.PortalLocalization.CountryIso2Code); } // Save the validated & complete payment configuration to repository. PaymentConfiguration paymentConfig = await ApplicationDomain.Instance.PaymentConfigurationRepository.UpdateAsync(paymentConfiguration); return(paymentConfig); }
public async Task <BrandingConfiguration> UpdateBrandingConfiguration() { BrandingConfiguration brandingConfiguration = new BrandingConfiguration() { OrganizationName = HttpContext.Current.Request.Form["OrganizationName"], ContactUs = new ContactUsInformation() { Email = HttpContext.Current.Request.Form["ContactUsEmail"], Phone = HttpContext.Current.Request.Form["ContactUsPhone"], }, ContactSales = new ContactUsInformation() { Email = HttpContext.Current.Request.Form["ContactSalesEmail"], Phone = HttpContext.Current.Request.Form["ContactSalesPhone"], }, }; string organizationLogo = HttpContext.Current.Request.Form["OrganizationLogo"]; var organizationLogoPostedFile = HttpContext.Current.Request.Files["OrganizationLogoFile"]; if (organizationLogoPostedFile != null && Path.GetFileName(organizationLogoPostedFile.FileName) == organizationLogo) { // there is a new organization logo to be uploaded if (!organizationLogoPostedFile.ContentType.Trim().StartsWith("image/")) { throw new PartnerDomainException(ErrorCode.InvalidFileType, Resources.InvalidOrganizationLogoFileTypeMessage).AddDetail("Field", "OrganizationLogoFile"); } brandingConfiguration.OrganizationLogoContent = organizationLogoPostedFile.InputStream; } else if (!string.IsNullOrWhiteSpace(organizationLogo)) { try { // the user either did not specify a logo or he did but changed the organization logo text to point to somewhere else i.e. a URI brandingConfiguration.OrganizationLogo = new Uri(organizationLogo, UriKind.Absolute); } catch (UriFormatException invalidUri) { throw new PartnerDomainException(ErrorCode.InvalidInput, Resources.InvalidOrganizationLogoUriMessage, invalidUri).AddDetail("Field", "OrganizationLogo"); } } string headerImage = HttpContext.Current.Request.Form["HeaderImage"]; var headerImageUploadPostedFile = HttpContext.Current.Request.Files["HeaderImageFile"]; if (headerImageUploadPostedFile != null && Path.GetFileName(headerImageUploadPostedFile.FileName) == headerImage) { // there is a new header image to be uploaded if (!headerImageUploadPostedFile.ContentType.Trim().StartsWith("image/")) { throw new PartnerDomainException(ErrorCode.InvalidFileType, Resources.InvalidHeaderImageMessage).AddDetail("Field", "HeaderImageFile"); } brandingConfiguration.HeaderImageContent = headerImageUploadPostedFile.InputStream; } else if (!string.IsNullOrWhiteSpace(headerImage)) { try { // the user either did not specify a header image or he did but changed the organization logo text to point to somewhere else i.e. a URI brandingConfiguration.HeaderImage = new Uri(headerImage, UriKind.Absolute); } catch (UriFormatException invalidUri) { throw new PartnerDomainException(ErrorCode.InvalidInput, Resources.InvalidHeaderImageUriMessage, invalidUri).AddDetail("Field", "HeaderImage"); } } if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request.Form["PrivacyAgreement"])) { try { brandingConfiguration.PrivacyAgreement = new Uri(HttpContext.Current.Request.Form["PrivacyAgreement"], UriKind.Absolute); } catch (UriFormatException invalidUri) { throw new PartnerDomainException(ErrorCode.InvalidInput, Resources.InvalidPrivacyUriMessage, invalidUri).AddDetail("Field", "PrivacyAgreement"); } } if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request.Form["InstrumentationKey"])) { brandingConfiguration.InstrumentationKey = HttpContext.Current.Request.Form["InstrumentationKey"]; } var updatedBrandingConfiguration = await ApplicationDomain.Instance.PortalBranding.UpdateAsync(brandingConfiguration); bool isPaymentConfigurationSetup = await ApplicationDomain.Instance.PaymentConfigurationRepository.IsConfiguredAsync(); if (isPaymentConfigurationSetup) { // update the web experience profile. var paymentConfiguration = await ApplicationDomain.Instance.PaymentConfigurationRepository.RetrieveAsync(); paymentConfiguration.WebExperienceProfileId = PayPalGateway.CreateWebExperienceProfile(paymentConfiguration, updatedBrandingConfiguration, ApplicationDomain.Instance.PortalLocalization.CountryIso2Code); await ApplicationDomain.Instance.PaymentConfigurationRepository.UpdateAsync(paymentConfiguration); } return(updatedBrandingConfiguration); }