Esempio n. 1
0
        public bool SubscribeNewsletter(string email, bool subscribe, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.IsAnyCRMEnabled)
            {
                return(false);
            }

            bool success = true;

            if (domain.DO_EnableMailChimp)
            {
                var mailchimp = (MailChimp)DependencyResolver.Current.GetService(typeof(MailChimp));
                success &= mailchimp.Subscribe(email, domainID);
            }

            if (domain.DO_EnableCommuniGator)
            {
                var communiGator = (CommuniGator)DependencyResolver.Current.GetService(typeof(CommuniGator));
                success &= communiGator.Subscribe(email, domainID);
            }

            var customer = CustomerRepository.GetByEmail(email, domainID);

            if (customer != null && success)
            {
                CustomerRepository.SetSubscription(customer.CustomerID, true);
            }

            return(success);
        }
Esempio n. 2
0
        private CommuniGatorService.SDKSoapClient GetClient(int domainID, out CommuniGatorService.AuthHeader header)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.DO_EnableCommuniGator)
            {
                header = null;
                return(null);
            }

            header          = new CommuniGatorService.AuthHeader();
            header.Password = domain.DO_CommuniGatorPassword;
            header.Username = domain.DO_CommuniGatorUserName;

            try
            {
                CommuniGatorService.SDKSoapClient client = new CommuniGatorService.SDKSoapClient();
                var result = client.AuthenticationCheck(header);

                if (!String.IsNullOrEmpty(result) && result.Equals("Success"))
                {
                    return(client);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                Log.Error("CommuniGator Client Exception", e);
            }
            return(null);
        }
Esempio n. 3
0
        public bool GetSubscriptionStatus(string email, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.IsAnyCRMEnabled)
            {
                return(false);
            }

            if (domain.DO_EnableMailChimp)
            {
                var mailchimp = (MailChimp)DependencyResolver.Current.GetService(typeof(MailChimp));
                if (mailchimp.GetSubscriptionStatus(email, domainID))
                {
                    return(true);
                }
            }

            if (domain.DO_EnableCommuniGator)
            {
                var communiGator = (CommuniGator)DependencyResolver.Current.GetService(typeof(CommuniGator));
                if (communiGator.GetSubscriptionStatus(email, domainID))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 4
0
        public bool GetSubscriptionStatus(string email, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.DO_EnableMailChimp)
            {
                return(false);
            }

            MailChimpManager manager    = new MailChimpManager(domain.DO_MailChimpAPIKey);
            EmailParameter   emailParam = new EmailParameter()
            {
                Email = email
            };

            try
            {
                var val = manager.GetListsForEmail(emailParam);
                return(val != null && val.Count > 0 ? true : false);
            }
            catch (MailChimpAPIException e)
            {
                Log.Error(String.Format("MailChimp Status: Subscription exception: \"{0}\" ,for \"{1}\"", e.MailChimpAPIError.Name, email), e);
            }
            return(false);
        }
Esempio n. 5
0
        public bool UnSubscribe(string email, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.DO_EnableMailChimp)
            {
                return(false);
            }

            MailChimpManager manager    = new MailChimpManager(domain.DO_MailChimpAPIKey);
            EmailParameter   emailParam = new EmailParameter()
            {
                Email = email
            };

            try
            {
                var result = manager.Unsubscribe(domain.DO_MailChimpListID, emailParam);
                return(result != null ? result.Complete : false);
            }
            catch (MailChimpAPIException e)
            {
                Log.Error(String.Format("MailChimp UnSubscribe: Subscription exception: \"{0}\" ,for \"{1}\"", e.MailChimpAPIError.Name, email), e);
            }
            return(false);
        }
Esempio n. 6
0
        public tbl_Domains GetDomainByName(string domainName)
        {
            tbl_Domains domain = DomainsRepository.GetByDomainName(domainName);

            if (domain == null)
            {
                domain = DomainsRepository.GetByDomainLinkName(domainName);
            }

            return(domain);
        }
Esempio n. 7
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.Clear();
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Account",
                url: "account",
                defaults: new { controller = "Website", action = "DisplayCustomerAccount" }
                );

            routes.MapRoute(
                name: "AddAddress",
                url: "account/addresses/{id}",
                defaults: new { controller = "Website", action = "Addresses", id = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "DeleteAddress",
                url: "account/deleteaddress/{addressID}",
                defaults: new { controller = "Website", action = "DeleteAddress", addressID = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "DonateCheckout",
                url: "donate/{type}/{amount}",
                defaults: new { controller = "Website", action = "DonationCheckout" }
                );

            routes.MapRoute(
                name: "GetAddressList",
                url: "shop/checkout/getaddresslist",
                defaults: new { controller = "Website", action = "GetAddressList" }
                );

            routes.MapRoute(
                name: "GetSelectedAddress",
                url: "shop/checkout/getselectedaddress",
                defaults: new { controller = "Website", action = "GetSelectedAddress" }
                );

            routes.MapRoute(
                name: "EditMyDetails",
                url: "account/editmydetails",
                defaults: new { controller = "Website", action = "EditCustomerAccount" }
                );

            routes.MapRoute(
                name: "OrderHistory",
                url: "account/orderhistory",
                defaults: new { controller = "WebSite", action = "OrderHistory" }
                );

            routes.MapRoute(
                name: "Admn",
                url: "admn/{action}/{id}",
                defaults: new { controller = "Admn", action = "Home", id = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "SagePay",
                url: "sagepay/{action}/{orderID}",
                defaults: new { controller = "SagePay", action = "Home", orderID = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "PayPal",
                url: "paypal/{action}/{orderID}",
                defaults: new { controller = "PayPal", action = "Home", orderID = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "SecureTrading",
                url: "securetrading/{action}/{orderID}",
                defaults: new { controller = "SecureTrading", action = "Home", orderID = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "Stripe",
                url: "stripe/{action}/{orderID}",
                defaults: new { controller = "Stripe", action = "Home", orderID = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "Preview",
                url: "preview",
                defaults: new { controller = "Website", action = "Content" }
                );

            routes.MapRoute(
                name: "Website",
                url: "website/{action}/{id}",
                defaults: new { controller = "Website", action = "Index", id = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "Search",
                url: "search/{keyword}",
                defaults: new { controller = "Website", action = "Search", keyword = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "Login",
                url: "login",
                defaults: new { controller = "Website", action = "Login" }
                );

            routes.MapRoute(
                name: "Logout",
                url: "logout",
                defaults: new { controller = "Website", action = "Logout" }
                );

            routes.MapRoute(
                name: "Registration",
                url: "registration",
                defaults: new { controller = "Website", action = "Registration" }
                );

            routes.MapRoute(
                name: "PassReminder",
                url: "pass-reminder",
                defaults: new { controller = "Website", action = "ForgottenPassword" }
                );

            routes.MapRoute(
                name: "Basket",
                url: "basket",
                defaults: new { controller = "Website", action = "Basket" }
                );

            routes.MapRoute(
                name: "Checkout",
                url: "checkout",
                defaults: new { controller = "Website", action = "Checkout" }
                );

            routes.MapRoute(
                name: "OrderSummary",
                url: "summaryandpayment",
                defaults: new { controller = "Website", action = "OrderSummary" }
                );

            routes.MapRoute(
                name: "XMLSitemap",
                url: "sitemap.xml",
                defaults: new { controller = "Website", action = "XMLSitemap" }
                );

            routes.MapRoute(
                name: "RegisterConfirmation",
                url: "register-confirmation",
                defaults: new { controller = "Website", action = "RegisterConfirmation" }
                );

            routes.MapRoute(
                name: "RobotsTXT",
                url: "robots.txt",
                defaults: new { controller = "Website", action = "RobotsTXT" }
                );

            var contentService = (IWebContent)DependencyResolver.Current.GetService(typeof(IWebContent));
            var domainService  = (IDomain)DependencyResolver.Current.GetService(typeof(IDomain));

            List <tbl_Domains> domains = domainService.GetAllDomains();

#if DEBUG
            var localhostDomain = domainService.GetDomainByID(SettingsManager.LocalHostDomainID);
            if (localhostDomain == null)
            {
                localhostDomain = new tbl_Domains {
                    DomainID = SettingsManager.LocalHostDomainID
                };
                domains.Add(localhostDomain);
            }
            string processName           = Process.GetCurrentProcess().ProcessName.ToLower();
            bool   isRunningInIisExpress = processName.Contains("iisexpress") || processName.Contains("webdev.webserver");
            if (isRunningInIisExpress)
            {
                localhostDomain.DO_Domain = "localhost";
            }
#endif
            foreach (var domain in domains)
            {
                string newsPath              = contentService.GetSitemapUrlByType(SiteMapType.News, domain.DomainID),
                         testimonialsPath    = contentService.GetSitemapUrlByType(SiteMapType.Testimonials, domain.DomainID),
                         prodCategoriesPath  = contentService.GetSitemapUrlByType(SiteMapType.ProductShop, domain.DomainID),
                         eventCategoriesPath = contentService.GetSitemapUrlByType(SiteMapType.EventShop, domain.DomainID),
                         sitemapPath         = contentService.GetSitemapUrlByType(SiteMapType.Sitemap, domain.DomainID),
                         subscribePath       = contentService.GetSitemapUrlByType(SiteMapType.Subscribe, domain.DomainID),
                         donationPath        = contentService.GetSitemapUrlByType(SiteMapType.Donation, domain.DomainID),
                         poiPath             = contentService.GetSitemapUrlByType(SiteMapType.PointsOfInterest, domain.DomainID),
                         portfolioPath       = contentService.GetSitemapUrlByType(SiteMapType.Portfolio, domain.DomainID),
                         galleryPath         = contentService.GetSitemapUrlByType(SiteMapType.Gallery, domain.DomainID);

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: donationPath.Trim('/'),
                               defaults: new { controller = "Website", action = "DonationCategories" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: subscribePath.Trim('/'),
                               defaults: new { controller = "Website", action = "Subscribe", email = UrlParameter.Optional }
                               ));
                if (!domain.DO_CustomRouteHandler)
                {
                    routes.Add(new DomainRoute(
                                   domain: domain.DO_Domain,
                                   url: eventCategoriesPath.Trim('/'),
                                   defaults: new { controller = "Website", action = "EventsCategories" }
                                   ));

                    routes.Add(new DomainRoute(
                                   domain: domain.DO_Domain,
                                   url: prodCategoriesPath.Trim('/'),
                                   defaults: new { controller = "Website", action = "ProdCategories" }
                                   ));
                }
                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: portfolioPath.Trim('/'),
                               defaults: new { controller = "Website", action = "Portfolio" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}", portfolioPath.Trim('/'), "{*query}"),
                               defaults: new { controller = "Website", action = "PortfolioItem" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: galleryPath.Trim('/'),
                               defaults: new { controller = "Website", action = "Gallery" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}", galleryPath.Trim('/'), "{*query}"),
                               defaults: new { controller = "Website", action = "GalleryItem" }
                               ));
                if (!domain.DO_CustomRouteHandler)
                {
                    routes.Add(new DomainRoute(
                                   domain: domain.DO_Domain,
                                   url: String.Format("{0}/{1}", eventCategoriesPath.Trim('/'), "{*query}"),
                                   defaults: new { controller = "Website", action = "Events" }
                                   ));

                    routes.Add(new DomainRoute(
                                   domain: domain.DO_Domain,
                                   url: String.Format("{0}/{1}", prodCategoriesPath.Trim('/'), "{*query}"),
                                   defaults: new { controller = "Website", action = "Products" }
                                   ));
                }
                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: testimonialsPath.Trim('/'),
                               defaults: new { controller = "Website", action = "Testimonials" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: sitemapPath.Trim('/'),
                               defaults: new { controller = "Website", action = "Sitemap" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}/{2}", newsPath.Trim('/'), SettingsManager.Blog.SearchUrl.Trim('/'), "{keyword}"),
                               defaults: new { controller = "Website", action = "BlogSearch", keyword = UrlParameter.Optional }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}", newsPath.Trim('/'), "feed"),
                               defaults: new { controller = "Website", action = "GetBlogRss" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: newsPath.Trim('/'),
                               defaults: new { controller = "Website", action = "Blog" }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}/{2}", newsPath.Trim('/'), SettingsManager.Blog.CategoryUrl.Trim('/'), "{name}"),
                               defaults: new { controller = "Website", action = "BlogCategory", name = UrlParameter.Optional }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}/{2}", newsPath.Trim('/'), SettingsManager.Blog.TagUrl.Trim('/'), "{name}"),
                               defaults: new { controller = "Website", action = "BlogTag", name = UrlParameter.Optional }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: String.Format("{0}/{1}/{2}/{3}", newsPath.Trim('/'), "{year}", "{month}", "{title}"),
                               defaults: new { controller = "Website", action = "Blog", year = UrlParameter.Optional, month = UrlParameter.Optional, title = UrlParameter.Optional }
                               ));

                routes.Add(new DomainRoute(
                               domain: domain.DO_Domain,
                               url: poiPath.Trim('/'),
                               defaults: new { controller = "Website", action = "POIs" }
                               ));
            }


            Route customRoute = new Route("{*values}", new CMS.UI.Common.CustomRouteHandler());
            routes.Add("customRouter", customRoute);


            //routes.MapRoute(
            //    name: "Default",
            //    url: "{*values}",
            //    defaults: new { controller = "Website", action = "Content" }
            //);

            //routes.MapRoute(
            //    name: "Default",
            //    url: "{controller}/{action}/{id}",
            //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            //);
        }