public static void retrieve_and_process_idea_changes_from_googledrive()
{
var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
provider.ClientIdentifier = configurations.googledrive_client_id;
provider.ClientSecret = configurations.googledrive_client_secret;
IAuthenticator authenticator = new OAuth2Authenticator<NativeApplicationClient>(provider, googledrive_getauthorization);
DriveService gd_service = new DriveService(authenticator);
FilesResource.ListRequest list_request = gd_service.Files.List();
list_request.Q = "title = '" + configurations.googledrive_ideafiletitle + "'";
FileList file_list = list_request.Fetch();
if (file_list.Items.Count == 0) return;
Google.Apis.Drive.v2.Data.File ideas_list_file = file_list.Items[0];
if (String.IsNullOrEmpty(ideas_list_file.DownloadUrl)) return;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(ideas_list_file.DownloadUrl));
authenticator.ApplyAuthenticationToRequest(request);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK) return;
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
string ideas_list = reader.ReadToEnd();
reader.Close();
List<string> ideas = ideas_list.Split(new Char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
naturenet_dataclassDataContext db = new naturenet_dataclassDataContext();
var r = from c in db.Contributions
select c.note;
List<string> notes = r.ToList<string>();
foreach (string idea in ideas)
{
if (!notes.Contains(configurations.GetItem_GDText(idea, 2)))
{
string username = configurations.GetItem_GDText(idea, 0);
string avatarname = configurations.GetItem_GDText(idea, 1);
if (avatarname.Substring(avatarname.Length - 4, 4) != ".png")
avatarname = avatarname + ".png";
int col_id = configurations.get_or_create_collection(db, username, avatarname, 1, DateTime.Now);
Contribution design_idea = new Contribution();
design_idea.date = DateTime.Now;
design_idea.location_id = 0;
design_idea.media_url = "";
design_idea.note = configurations.GetItem_GDText(idea, 2);
design_idea.tags = "design idea";
db.Contributions.InsertOnSubmit(design_idea);
db.SubmitChanges();
Collection_Contribution_Mapping map = new Collection_Contribution_Mapping();
map.collection_id = col_id;
map.contribution_id = design_idea.id;
map.date = DateTime.Now;
db.Collection_Contribution_Mappings.InsertOnSubmit(map);
db.SubmitChanges();
}
}
}