public ActionResult ListGDrive() { var service = HttpContext.Session["DriveService"] as DriveService; var gHelper = new GDriveHelper(); var list = gHelper.GetAllFiles(service); var model = list.Items.Select(f => f.GetGFile <AFileInfo>()); return(PartialView("_ListGDrive", model)); }
private async Task <ActionResult> UpdateDatabase(CancellationToken cancellationToken) { var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()). AuthorizeAsync(cancellationToken); if (result.Credential != null) { var serviceInitializer = new BaseClientService.Initializer { HttpClientInitializer = result.Credential, ApplicationName = "AssistMe" }; userConfig.GoogleAccessToken = result.Credential.Token.AccessToken; Session["UserConfig"] = userConfig; var service = new DriveService(serviceInitializer); var oauthService = new Oauth2Service(serviceInitializer); HttpContext.Session["DriveService"] = service; HttpContext.Session["Oauth2Service"] = oauthService; var gDriveHelper = new GDriveHelper(); gDriveHelper.InitBaseSystem(); if (log.IsDebugEnabled) { log.DebugFormat("Base init completed for user: {0}", userConfig.User_Id); } //var data = await result.Credential.RefreshTokenAsync(cancellationToken); //ViewBag.Message = // "FILE COUNT IS: " + list.Items.Count(); return(RedirectToAction("Index", "Home")); } else { return(new RedirectResult(result.RedirectUri)); } }
public ActionResult Create(FormCollection collection) { var userConfig = (UserConfig)Session["UserConfig"]; try { var fileInfo = new AFileInfo { Id = collection["Id"], Description = collection["Description"], DetailedInfo = collection["DetailedInfo"], DisplayName = collection["DisplayName"], FolderName = collection["FolderName"], }; var folder = new AFolderInfo { ParentId = userConfig.DB.AssistMeDrive.Id, FileName = fileInfo.FolderName, DisplayName = fileInfo.FolderName, }; var service = HttpContext.Session["DriveService"] as DriveService; var ghelper = new GDriveHelper(); var serverFolder = ghelper.GetDriveFileMetadata(folder, service, CreateIfNotExist: true); folder.Id = serverFolder.Id; //check folder already exist var existingFolder = userConfig.DB.AssistMeDrive.GetChild(folder.Id); if (existingFolder == null) { var parentofFolder = userConfig.DB.AssistMeDrive.GetChild(folder.ParentId); parentofFolder.Children.Add(folder); } //TODO: If folder changed while editing, Remove the file from older folder fileInfo.ParentId = folder.Id; Google.Apis.Drive.v2.Data.File driveFile = null; if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) { var file = Request.Files[0]; fileInfo.FileName = file.FileName; driveFile = ghelper.CreateFile(fileInfo, service, file.InputStream); } else { driveFile = ghelper.GetDriveFileMetadata(fileInfo, service); } fileInfo.Id = driveFile.Id; fileInfo.DownloadUrl = driveFile.DownloadUrl; fileInfo.ThumbnailUrl = driveFile.ThumbnailLink; var existingFile = userConfig.DB.AssistMeDrive.GetChild(fileInfo.Id); if (existingFile != null && existingFile.ParentId != null) { var folderOfFile = userConfig.DB.AssistMeDrive.GetChild(existingFile.ParentId); folderOfFile.Children.Remove(folderOfFile.Children.First(f => f.Id == existingFile.Id)); } var parentFolderInDb = userConfig.DB.AssistMeDrive.GetChild(fileInfo.ParentId); parentFolderInDb.Children.Add(fileInfo); var dbFile = userConfig.DB.AssistMeDrive.Children.First(f => f.FileName != null && f.FileName == userConfig.DB_NAME); if (string.IsNullOrWhiteSpace(dbFile.Id)) { var serverDbFile = ghelper.GetDriveFileMetadata(new AFileInfo { ParentId = userConfig.DB.AssistMeDrive.Id, FileName = userConfig.DB_NAME, }, service); dbFile.Id = serverDbFile.Id; dbFile.IsSystemFile = true; } ghelper.WriteDBDataToLocalDB(); if (log.IsDebugEnabled) { log.DebugFormat("Document add/update completed without error. User:{0}", userConfig.User_Id); } return(RedirectToAction("Index", "Home")); } catch (Exception exp) { log.Error(string.Format("User:{0}, Message:{1}", userConfig.User_Id, exp.Message), exp); return(RedirectToAction("Index", "Home")); } }