/// <summary>
        ///    Entry method for page speed api. Pass url and get result.
        ///    Every successfull operation store result in database.
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>

        public string FetchURL(string v)
        {
            string result = string.Empty;

            if (IsValidURL(v))
            {
                // create data object to save
                PageSpeedData pData = new PageSpeedData();
                // get repository base
                IDatabaseRepo repository = DataRepositoryFactory.FactoryMethod("MongoDB");
                // common operation
                string domainURL       = ExtractDomainFromURL(v);
                string fullFormatedURL = GooglePageSpeedAPIBaseURL + domainURL + QueryKey + GooglePageSpeedAPIAuthToken;
                result = HttpGet(fullFormatedURL);
                // set object
                pData.Domain = domainURL;
                pData.Result = result;
                // save object
                repository.SaveResult(pData);
            }
            else
            {
                result = "URL is not valid.";
            }
            return(result);
        }
Example #2
0
        static void SaveToMongoDB(PageSpeedData data)
        {
            // Create a MongoClient object by using the connection string: get access to database using client.
            //var client = new MongoClient(connectionString);

            //Use the MongoClient to access the server : database name that contains number of tables.
            var database = MongoDbConnection.GetMongoDatabase;

            //get mongodb collection: similar as sqltable
            var collection = database.GetCollection <PageSpeedData>("tblPageSpeed");

            var query  = Query.EQ("Domain", data.Domain);
            var sortBy = SortBy.Null;
            var update = Update.Set("Result", data.Result);

            var foundData    = collection.Find(query);
            var totalResults = foundData.Count();

            // update element
            if (totalResults > 0)
            {
                //var arg = F
                try
                {
                    collection.FindAndModify(new FindAndModifyArgs()
                    {
                        Query = query, SortBy = sortBy, Update = update
                    });
                }
                catch (System.Exception)
                {
                    // TODO
                }
            }
            else
            {
                try
                {
                    collection.Insert(data);
                }
                catch (System.Exception)
                {
                    // TODO
                }
            }
        }
Example #3
0
 public void SaveResult(PageSpeedData data)
 {
     SaveToMongoDB(data);
 }
Example #4
0
 public void SaveResult(PageSpeedData data)
 {
 }