예제 #1
0
        public static async Task Go()
        {
            //notasecret
            //sismmar-sisges-d3f15fa8366e.p12

            string[] scopes = new string[] { DriveService.Scope.Drive }; // Full access
            var keyFilePath = @"C:\Users\m.lourenco\Downloads\sismmar-sisges-d3f15fa8366e.p12";    // Downloaded from https://console.developers.google.com 
            var serviceAccountEmail = "*****@*****.**";  // found https://console.developers.google.com 


            //loading the Key file 
            var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable);
            var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
            {
                Scopes = scopes
            }.FromCertificate(certificate));

            // Create the service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Drive API Sample",
            });

            service.CreateFolder("sismmar");
            service.ListFiles();

            Console.Read();
        }        
예제 #2
0
        public static async Task Run()
        {
            GoogleWebAuthorizationBroker.Folder = "Drive.Sample";
            UserCredential credential = await GetCredentials();
            
            // Create the service.
            var driveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Drive API Sample",
            });

            // Create a folder if not exist
            driveService.CreateFolder("sismmar", "folder to storage some scripts!");

            // Get the latest file to Upload

            // Upload fo the current file
            // - find the sismmar folder
            // - find the current month folder (008-august, 009-september) inside the sismmar folder
            // - upload the current file inside the current month folder
            // done

            Console.Read();
        }
예제 #3
0
        private static async System.Threading.Tasks.Task ExportAndUploadToDriveAsync <T>(List <T> dataList, List <IList <Object> > writeValues, string extension, string contentType, string fileName, bool includeHeaders = true)
        {
            //Generate and Save Excel File locally
            Logger.Info("Generating Excel File");
            List <List <T> > splittedData = ExportToExcelHelper.Split(dataList, 1000000);
            List <byte>      data         = new List <byte>();

            foreach (var dt in splittedData)
            {
                var r = ExportToExcelHelper.ExportToExcel(dt, extension, includeHeaders).ToList();
                data.AddRange(r);
            }

            Logger.Info("Saving Excel File in ReportFiles folder");
            string filePath = GetFilePath(fileName);

            using (var stream = new FileStream(filePath, FileMode.Append))
            {
                stream.Write(data.ToArray(), 0, data.ToArray().Length);
            }

            //System.IO.File.WriteAllBytes(filePath, data.ToArray());

            //Google Drive Folder Name
            string       folderName = _iconfiguration.GetSection("GoogleDriveFolderName").Value;
            IList <File> folders    = GetFolders();

            var folder = folders.FirstOrDefault(a => a.Name == folderName);

            if (folder == null)
            {
                folder = service.CreateFolder(folderName);
            }

            if (folder != null)
            {
                Logger.Info($"Folder: {folder.Name} Found");
                var fs = GetFilesByName(Path.GetFileNameWithoutExtension(fileName));
                if (fs.Count == 1)
                {
                    //UpdateFile(filePath, folder, fs.FirstOrDefault(), contentType);
                    await UpdateFileUsingGoogleSheetAsync <T>(fs.FirstOrDefault(), writeValues, Path.GetFileNameWithoutExtension(fileName));
                }
                else
                {
                    CreateFile(filePath, folder, contentType);
                }
            }
        }