Esempio n. 1
0
        public SitesEntry VerifySite(string url, SitesEntry entry = null)
        {
            if (entry == null)
            {
                entry = GetSite(url);
            }

            VerificationMethod method = new VerificationMethod("metatag", "true");
            var siteid = CreateSiteID(url);

            entry.VerificationMethod = method;
            var category = new AtomCategory("http://schemas.google.com/webmasters/tools/2007#site-info",
                                            "http://schemas.google.com/g/2005#kind");

            entry.Categories.Add(category);
            entry.Id           = new AtomId(string.Concat(SiteQueryUrl, siteid));
            entry.Content.Type = "";
            try
            {
                return(service.Update(entry));
            }
            catch (Exception ex)
            {
                Syslog.Write(ex);
            }
            return(null);
        }
        public void UpdateGeolocation()
        {
            WebmasterToolsService service = new WebmasterToolsService(this.ApplicationName);

            service.Credentials = new GDataCredentials(this.userName, this.passWord);

            try
            {
                SitesQuery q  = new SitesQuery();
                SitesFeed  sf = service.Query(q);

                SitesEntry entry   = new SitesEntry();
                string     siteUrl = "http://www.example.dk/";
                entry.Content.Src  = siteUrl;
                entry.Content.Type = "text/plain";
                SitesEntry newEntry = service.Insert(new Uri(SitesQuery.HttpsFeedUrl), entry);

                newEntry.GeoLocation = "US";
                SitesEntry updatedEntry = newEntry.Update();

                Assert.IsTrue(updatedEntry != null);
                Assert.IsTrue(updatedEntry.GeoLocation == "US");
            }
            finally
            {
                Uri deleteUrl = SitesQuery.CreateCustomUri("http://www.example.dk");
                service.Delete(deleteUrl, null);
            }
        }
        /// <summary>
        /// updates a site entry
        /// </summary>
        /// <param name="entry">the entry to update</param>
        /// <param name="siteId">the id of the site</param>
        /// <returns>the updated site entry</returns>
        public Sites UpdateSiteEntry(Sites entry, string siteId)
        {
            Sites sites = null;

            if (entry != null)
            {
                Uri target = CreateUri(SitesQuery.CreateCustomUri(siteId).AbsoluteUri);

                entry.AtomEntry.EditUri = target;
                SitesEntry se = this.Service.Update(entry.SitesEntry);
                if (se != null)
                {
                    sites           = new Sites();
                    sites.AtomEntry = se;
                }
            }
            return(sites);
        }
Esempio n. 4
0
        private SitesEntry GetSite(string url)
        {
            var        siteid = CreateSiteID(url);
            var        query  = new SitesQuery(string.Concat(SiteQueryUrl, siteid));
            SitesEntry entry  = null;

            try
            {
                var result = service.Query(query);
                if (result.Entries.Count == 0)
                {
                    return(null);
                }
                entry = (SitesEntry)result.Entries[0];
            }
            catch (Exception ex)
            {
                Syslog.Write(ex);
            }

            return(entry);
        }
        public void InsertSite()
        {
            WebmasterToolsService service = new WebmasterToolsService(this.ApplicationName);

            service.Credentials = new GDataCredentials(this.userName, this.passWord);

            SitesQuery feedQuery  = new SitesQuery();
            SitesFeed  beforeFeed = service.Query(feedQuery);

            int before = beforeFeed.Entries.Count;

            SitesEntry entry   = new SitesEntry();
            string     siteUrl = "http://www.example.com/";

            entry.Content.Src  = siteUrl;
            entry.Content.Type = "text/plain";
            service.Insert(new Uri(SitesQuery.HttpsFeedUrl), entry);

            SitesFeed afterFeed = service.Query(feedQuery);
            int       after     = afterFeed.Entries.Count;

            Assert.Greater(after, before);
        }
Esempio n. 6
0
        public ActionResult Settings(bool storeEnabled, string motd, string storeName, string facebookCoupon)
        {
            MASTERdomain.organisation.motd = motd;
            MASTERdomain.storeName         = storeName;

            // website verificaiton
            bool       verifySite = false;
            Webmaster  webmaster  = null;
            SitesEntry site       = null;

            // store
            if (storeEnabled)
            {
                // check that payment methods have been configured
                var paymentmethods = new PaymentMethodList();
                paymentmethods.Initialise(MASTERdomain, false);
                if (paymentmethods.count == 0)
                {
                    return(Json("You need to specify your paypal id and/or a payment method before you can enable your store. <a href='/dashboard/account#account_payment'>Setup payment methods</a>".ToJsonFail()));
                }

                // don't allow store to be enabled
                if (MASTERdomain.trialExpired)
                {
                    return(Json("Store cannot be made public. Your trial period has expired.".ToJsonFail()));
                }

                // only register the following with google if store not already enabled
                if (!IsStoreEnabled)
                {
                    MASTERdomain.flags |= (int)SubdomainFlags.STORE_ENABLED;

#if !DEBUG
                    // update info to google webmaster
                    webmaster = new Webmaster();
                    var url = accountHostname.ToDomainUrl("", true);
                    site = webmaster.AddSite(url);

                    if (site != null)
                    {
                        var metaTag = site.VerificationMethod.Value;
                        MASTERdomain.metaTagVerification = metaTag;
                        verifySite = true;
                    }
#endif
                }
            }
            else
            {
                MASTERdomain.flags &= ~(int)SubdomainFlags.STORE_ENABLED;
            }

            // handle facebook coupon
            if (!string.IsNullOrEmpty(facebookCoupon))
            {
                var coupon =
                    repository.GetCoupons(subdomainid.Value).SingleOrDefault(x => x.code == facebookCoupon && !x.expired);
                if (coupon != null)
                {
                    MASTERdomain.facebookCoupon = coupon.id;
                }
            }
            else
            {
                MASTERdomain.facebookCoupon = null;
            }

            repository.Save(); // SUBMIT

            // need to be done here so that metatag is saved and then can be shown at store page
            if (verifySite)
            {
                var url = accountHostname.ToDomainUrl("", true);

                // verify site
                webmaster.VerifySite(url, site);

                // add sitemap
                new Thread(() =>
                {
                    var sitemap = string.Concat(url, "google/sitemap");
                    webmaster.AddSitemap(url, sitemap);
                }).Start();
            }

            CacheHelper.Instance.invalidate_dependency(DependencyType.organisation, subdomainid.Value.ToString());
            return(Json(OPERATION_SUCCESSFUL.ToJsonOKData()));
        }