public static void retrieve_and_process_user_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_userfiletitle + "'";
FileList file_list = list_request.Fetch();
if (file_list.Items.Count == 0) return;
Google.Apis.Drive.v2.Data.File users_list_file = file_list.Items[0];
if (String.IsNullOrEmpty(users_list_file.DownloadUrl)) return;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(users_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 users_list = reader.ReadToEnd();
reader.Close();
List<string> usernames = configurations.GetUserNameList_GDText(users_list);
List<string> avatars = configurations.GetAvatarList_GDText(users_list);
naturenet_dataclassDataContext db = new naturenet_dataclassDataContext();
var ru = from u in db.Users
where u.id > 0
select u.name;
List<string> users = ru.ToList<string>();
for (int counter = 0; counter < usernames.Count; counter++)
{
if (!users.Contains(usernames[counter]))
{
User u3 = new User();
u3.name = usernames[counter]; u3.password = ""; u3.email = "";
try { u3.avatar = avatars[counter]; }
catch (Exception) { u3.avatar = ""; }
db.Users.InsertOnSubmit(u3);
}
else
users.Remove(usernames[counter]);
}
//var du = db.Users.Where(a => users.Contains(a.name));
//if (du.Count() == 0) return;
//string udel = "";
//foreach (User u1 in du)
// udel = udel + ";" + u1.id + "," + u1.name + "," + u1.avatar + "," + u1.email + "," + u1.technical_info;
//Action del = new Action();
//del.date = DateTime.Now;
//del.object_type = "nature_net.User";
//del.user_id = 0;
//del.type_id = 3;
//del.technical_info = udel;
//db.Actions.InsertOnSubmit(del);
//db.Users.DeleteAllOnSubmit(du);
db.SubmitChanges();
}