/// <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); }
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 } } }
public void SaveResult(PageSpeedData data) { SaveToMongoDB(data); }
public void SaveResult(PageSpeedData data) { }