示例#1
0
        public void RetrieveAllFiles()
        {
            List <tbl_User> list = DirectorySync.GetAllUsers();
            List <Google.Apis.Drive.v2.Data.File> result = new List <Google.Apis.Drive.v2.Data.File>();

            foreach (var item in list)
            {
                var drvService = CreateDriveService(item.Email);
                FilesResource.ListRequest request = drvService.Files.List();
                //request.Q = "'" + item.Email + "'" + " in owners";

                Google.Apis.Drive.v2.Data.About about = drvService.About.Get().Fetch();
                DirectorySync.UpdateUserMetadata(about, item.Email);
                result.Clear();

                do
                {
                    try
                    {
                        FileList files = request.Fetch();
                        result.AddRange(files.Items);
                        request.PageToken = files.NextPageToken;
                    }
                    catch (Exception e)
                    {
                        Response.Write("An error occurred: " + e.Message);
                        request.PageToken = null;
                    }
                }while (!String.IsNullOrEmpty(request.PageToken));

                if (result != null || result.Count > 0)
                {
                    PermissionList         permList  = new PermissionList();
                    List <PermissionLight> permLight = new List <PermissionLight>();
                    foreach (var f in result.Where(a => !a.MimeType.ToLower().Contains("folder")))
                    {
                        if (f.Shared == true)
                        {
                            permList = drvService.Permissions.List(f.Id).Fetch();

                            permLight.Add(new PermissionLight()
                            {
                                DocID       = f.Id,
                                Permissions = permList
                            });
                        }
                    }

                    DirectorySync.PushFiles(item.UserID, result, permLight);
                }
            }
        }
示例#2
0
        internal static void UpdateUserMetadata(Google.Apis.Drive.v2.Data.About about, string email)
        {
            var usr = db.tbl_Users.Where(a => a.Email.ToLower().Trim() == email.ToLower().Trim()).SingleOrDefault();

            usr.DomainSharingPolicy = about.DomainSharingPolicy;
            usr.ETag = about.ETag;
            usr.IsCurrentAppInstalled = about.IsCurrentAppInstalled;
            usr.Kind                  = about.Kind;
            usr.LargestChangeID       = about.LargestChangeId;
            usr.Name                  = about.Name;
            usr.PermissionID          = about.PermissionId;
            usr.QuotaBytesTotal       = about.QuotaBytesTotal;
            usr.QuotaBytesUsed        = about.QuotaBytesUsed;
            usr.QuotaBytesUsedInTrash = about.QuotaBytesUsedInTrash;
            usr.RootFolderID          = about.RootFolderId;

            db.SubmitChanges();
        }
示例#3
0
        public string f_get_userInfo()
        {
            if (this._authenticator == null || this._driveService == null)
            {
                return(JsonConvert.SerializeObject(new { Ok = false, tokenAccess = this._token, Message = "redirect user to authentication" }));
            }
            try
            {
                Userinfo userInfo = GetUserInfo(this._authenticator);
                Google.Apis.Drive.v2.Data.About about = this._driveService.About.Get().Fetch();

                return(JsonConvert.SerializeObject(new
                {
                    Ok = true,
                    userInfo = new { tokenAccess = this._token, email = userInfo.Email, link = userInfo.Link, picture = userInfo.Picture },
                    quotaBytesTotal = about.QuotaBytesTotal,
                    quotaBytesUsed = about.QuotaBytesUsed
                }));
            }
            catch (Exception e) { return(JsonConvert.SerializeObject(new { Ok = false, tokenAccess = this._token, Message = e.Message })); }
        }