nature_net.file_manager.retrieve_and_process_idea_changes_from_googledrive C# (CSharp) Метод

retrieve_and_process_idea_changes_from_googledrive() публичный статический Метод

public static retrieve_and_process_idea_changes_from_googledrive ( ) : void
Результат void
        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();
                }
            }
        }