public ReplicatedSiteIdentity(GetCustomerSiteResponse customerSite)
 {
     CustomerID = customerSite.CustomerID;
     FirstName  = customerSite.FirstName;
     LastName   = customerSite.LastName;
     Company    = customerSite.Company;
     Email      = customerSite.Email;
     WebAlias   = customerSite.WebAlias;
     Phone      = customerSite.Phone;
     Phone2     = customerSite.Phone2;
 }
Exemple #2
0
 public static string GetWebAlias(int id, ExigoApi ApiContext)
 {
     try
     {
         GetCustomerSiteResponse webAlias = ApiContext.GetCustomerSite(new GetCustomerSiteRequest()
         {
             CustomerID = id
         });
         return(webAlias.WebAlias);
     }
     catch
     {
         return(string.Empty);
     }
 }
        public void UpdateCustomerSite(CustomerSite CustomerSite)
        {
            // First, get the existing customer site.
            var existingCustomerSite = GetContext().GetCustomerSite(new GetCustomerSiteRequest
            {
                CustomerID = CustomerSite.CustomerID
            });

            if (existingCustomerSite == null)
            {
                existingCustomerSite = new GetCustomerSiteResponse();
            }


            // Now, save the information.
            var request = new SetCustomerSiteRequest();

            request.CustomerID = CustomerSite.CustomerID;
            request.WebAlias   = CustomerSite.WebAlias ?? existingCustomerSite.WebAlias;
            request.FirstName  = CustomerSite.FirstName ?? existingCustomerSite.FirstName;
            request.LastName   = CustomerSite.LastName ?? existingCustomerSite.LastName;
            request.Company    = CustomerSite.Company ?? existingCustomerSite.Company;
            request.Email      = CustomerSite.Email ?? existingCustomerSite.Email;
            request.Phone      = CustomerSite.Phone ?? existingCustomerSite.Phone;
            request.Phone2     = CustomerSite.Phone2 ?? existingCustomerSite.Phone;
            request.Fax        = CustomerSite.Fax ?? existingCustomerSite.Fax;
            request.Notes1     = CustomerSite.Notes1 ?? existingCustomerSite.Notes1;
            request.Notes2     = CustomerSite.Notes2 ?? existingCustomerSite.Notes2;
            request.Notes3     = CustomerSite.Notes3 ?? existingCustomerSite.Notes3;
            request.Notes4     = CustomerSite.Notes4 ?? existingCustomerSite.Notes4;
            request.Address1   = CustomerSite.Address.Address1 ?? existingCustomerSite.Address1;
            request.Address2   = CustomerSite.Address.Address2 ?? existingCustomerSite.Address2;
            request.City       = CustomerSite.Address.City ?? existingCustomerSite.City;
            request.State      = CustomerSite.Address.State ?? existingCustomerSite.State;
            request.Zip        = CustomerSite.Address.Zip ?? existingCustomerSite.Zip;
            request.Country    = CustomerSite.Address.Country ?? existingCustomerSite.Country;

            var response = GetContext().SetCustomerSite(request);
        }
Exemple #4
0
        public ReplicatedSiteIdentity GetSiteOwnerIdentity(string webAlias)
        {
            var replicatedsiteidentity = new ReplicatedSiteIdentity();

            using (var context = Exigo.Sql())
            {
                var customerID = context.Query <int>(@"
                    SELECT cs.CustomerID FROM CustomerSites cs WHERE cs.WebAlias = @webalias
                ", new
                {
                    webalias = webAlias
                }).FirstOrDefault();

                // Logic to handle default web alias missing from database, which would cause an infinite redirect loop
                if (customerID == 0 && webAlias.Equals(GlobalSettings.ReplicatedSites.DefaultWebAlias, System.StringComparison.InvariantCultureIgnoreCase))
                {
                    throw new System.Exception("Default user missing. Web Alias: {0}".FormatWith(GlobalSettings.ReplicatedSites.DefaultWebAlias));
                }

                if (customerID > 0)
                {
                    replicatedsiteidentity = context.Query <ReplicatedSiteIdentity>(@"
                    ; WITH cte_SocialNetworks AS (
	                    SELECT 
		                    CustomerID
		                    , [1] as FacebookURL
		                    , [2] as GooglePlusURL
		                    , [3] AS TwitterURL
		                    , [4] AS BlogURL
		                    , [5] AS LinkedInURL
		                    , [6] AS MySpaceURL
		                    , [7] AS YouTubeURL
		                    , [8] AS PinterestURL
		                    , [9] AS InstagramURL
	                    FROM 
	                    (SELECT 
			                    SocialNetworkID
			                , Customerid
			                , Url 
	                     FROM CustomerSocialNetworks
	                     WHERE CustomerID = @customerid) AS SourceTable
	                    PIVOT
	                    (
	                    MAX(url)
	                    for SocialNetworkID in ([1],[2],[3],[4],[5],[6],[7],[8],[9])
	                    ) as PivotTable
                    )
                    SELECT
                        c.CustomerID
                        , c.CustomerTypeID
                        , c.CustomerStatusID
	                    , c.CreatedDate
                        , ISNULL(c.RankID, 0) AS 'HighestAchievedRankID'    
	                    , ISNULL(c.DefaultWarehouseID, @defaultwarehouseid) AS 'WarehouseID'    
                        , cs.WebAlias
                        , FirstName = CASE WHEN cs.FirstName = '' THEN c.FirstName ELSE cs.FirstName END
                        , LastName = CASE WHEN cs.LastName = '' THEN c.LastName ELSE cs.LastName END
                        , cs.Company
                        , cs.Email
                        , cs.Phone
                        , cs.Phone2
                        , cs.Fax
                        , cs.Address1
                        , cs.Address2
                        , cs.City
                        , cs.State
                        , cs.Zip
                        , cs.Country
                        , cs.Notes1
                        , cs.Notes2
                        , cs.Notes3
                        , cs.Notes4
                        , ISNULL(s.FacebookUrl, '')	  AS 'FacebookUrl'
	                    , ISNULL(s.GooglePlusUrl, '') AS 'GooglePlusUrl'
	                    , ISNULL(s.TwitterUrl, '')	  AS 'TwitterUrl'
	                    , ISNULL(s.BlogUrl, '')		  AS 'BlogUrl'
	                    , ISNULL(s.LinkedInUrl, '')	  AS 'LinkedInUrl' 
	                    , ISNULL(s.MyspaceUrl, '')	  AS 'MyspaceUrl'
	                    , ISNULL(s.YouTubeUrl, '')	  AS 'YouTubeUrl'
	                    , ISNULL(s.PinterestUrl, '')  AS 'PinterestUrl'
	                    , ISNULL(s.InstagramUrl, '')  AS 'InstagramUrl'

                    FROM CustomerSites cs
                        LEFT JOIN Customers c
                            ON c.CustomerID = cs.CustomerID 
	                    LEFT JOIN cte_SocialNetworks s
		                    ON c.CustomerID = s.CustomerID 
								      
                    WHERE cs.CustomerID = @customerid
                ", new
                    {
                        defaultwarehouseid = Warehouses.Default,
                        customerid         = customerID
                    }).FirstOrDefault();
                }
            }

            // Webservice fail safe that will handle any recent enrollees if the sql hasn't caught up yet
            if (replicatedsiteidentity.CustomerID > 0)
            {
                return(replicatedsiteidentity);
            }
            else
            {
                var context      = Exigo.WebService();
                var customerSite = new GetCustomerSiteResponse();

                // Check to see if customer site for the provided webalias exists. Failure is thrown if not sso do this in a try/catch
                try
                {
                    customerSite = context.GetCustomerSite(new GetCustomerSiteRequest()
                    {
                        WebAlias = webAlias
                    });
                }
                catch (System.Exception)
                {
                    return(null);
                }

                var customer = new Customer();

                if (customerSite.CustomerID > 0)
                {
                    customer = (Customer)context.GetCustomers(new GetCustomersRequest()
                    {
                        CustomerID = customerSite.CustomerID
                    }).Customers.FirstOrDefault();

                    var socialNetworksResponse = context.GetCustomerSocialNetworks(new GetCustomerSocialNetworksRequest()
                    {
                        CustomerID = customerSite.CustomerID
                    });

                    if (socialNetworksResponse.CustomerSocialNetwork.Count() > 0)
                    {
                        foreach (var network in socialNetworksResponse.CustomerSocialNetwork)
                        {
                            switch (network.SocialNetworkID)
                            {
                            case SocialNetworkTypes.Facebook:
                                replicatedsiteidentity.FacebookUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.GooglePlus:
                                replicatedsiteidentity.GooglePlusUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.Twitter:
                                replicatedsiteidentity.TwitterUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.Blog:
                                replicatedsiteidentity.BlogUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.LinkedIn:
                                replicatedsiteidentity.LinkedInUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.MySpace:
                                replicatedsiteidentity.MySpaceUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.YouTube:
                                replicatedsiteidentity.YouTubeUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.Pinterest:
                                replicatedsiteidentity.PinterestUrl = network.Url;
                                continue;

                            case SocialNetworkTypes.Instagram:
                                replicatedsiteidentity.InstagramUrl = network.Url;
                                continue;

                            default:
                                continue;
                            }
                        }
                    }

                    // customer
                    replicatedsiteidentity.CustomerID            = customer.CustomerID;
                    replicatedsiteidentity.CustomerTypeID        = customer.CustomerTypeID;
                    replicatedsiteidentity.CustomerStatusID      = customer.CustomerStatusID;
                    replicatedsiteidentity.HighestAchievedRankID = customer.RankID;
                    replicatedsiteidentity.CreatedDate           = customer.CreatedDate;
                    replicatedsiteidentity.WarehouseID           = (customer.DefaultWarehouseID != 0) ? customer.DefaultWarehouseID : Warehouses.Default;

                    // customer site
                    replicatedsiteidentity.WebAlias  = customerSite.WebAlias;
                    replicatedsiteidentity.FirstName = customerSite.FirstName;
                    replicatedsiteidentity.LastName  = customerSite.LastName;
                    replicatedsiteidentity.Company   = customerSite.Company;
                    replicatedsiteidentity.Email     = customerSite.Email;
                    replicatedsiteidentity.Phone     = customerSite.Phone;
                    replicatedsiteidentity.Phone2    = customerSite.Phone2;
                    replicatedsiteidentity.Fax       = customerSite.Fax;
                    replicatedsiteidentity.Address1  = customerSite.Address1;
                    replicatedsiteidentity.Address2  = customerSite.Address2;
                    replicatedsiteidentity.City      = customerSite.City;
                    replicatedsiteidentity.State     = customerSite.State;
                    replicatedsiteidentity.Zip       = customerSite.Zip;
                    replicatedsiteidentity.Country   = customerSite.Country;
                    replicatedsiteidentity.Notes1    = customerSite.Notes1;
                    replicatedsiteidentity.Notes2    = customerSite.Notes2;
                    replicatedsiteidentity.Notes3    = customerSite.Notes3;
                    replicatedsiteidentity.Notes4    = customerSite.Notes4;

                    return(replicatedsiteidentity);
                }

                return(null);
            }
        }