/// <summary> /// Creates the project folder on drive if it doesn't exsists, /// Used only by Publisher. /// </summary> public void CreateOnMyDrive() { if (!IsOnMyDrive()) { DriveUtils.CreateFolder(SoftwareName, DriveUtils.GetRootFoderIdFromMyDrive()); } }
/// <summary> /// Find the project folder with softwareName in the rootFolder (DefineXSoftwarePublisher) /// Used only by Publisher. /// </summary> /// <param name="softwareName">SoftwareName to find</param> /// <returns>FolderId of the project folder on drive.</returns> public static string GetFolderIdFromSoftwarName(string softwareName) { var rootFolderId = DriveUtils.GetRootFoderIdFromMyDrive(); DriveUtils.FindFolderInRoot(rootFolderId, softwareName, out var folderId); return(folderId); }
/// <summary> /// Searches for project folder on drive, /// caches its folderId, and returns it /// </summary> /// <param name="softwareName">Name of the software in the project.</param> /// <param name="rootFolderId">Folderid of "DefineXSoftwarePublisher" on drive</param> /// <returns>Folder id of the projecct folder on drive.</returns> public static string GetProjectFolderId(string softwareName, string rootFolderId) { if (_projectFolderId == null) { DriveUtils.FindFolderInRoot(rootFolderId, softwareName, out _projectFolderId); } return(_projectFolderId); }
/// <summary> /// Create project using InstallConfiguration, /// used only by Updater /// </summary> /// <param name="installConfigJson">InstallConfigJson Object</param> /// <returns>Project object</returns> public static Project ByInstallConfig(InstallConfigJson installConfigJson) { var project = new Project { FolderId = DriveUtils.GetProjectFolderId(installConfigJson.SoftwareName, installConfigJson.RootFolderId), SoftwareName = installConfigJson.SoftwareName }; project.Versions = DriveUtils.GetVersions(project.FolderId); return(project); }
/// <summary> /// Create project by using just name of the software. /// Used only by Publisher. /// </summary> /// <param name="softwareName">Name of the software in the project.</param> /// <returns>Project object</returns> public static Project BySoftwareName(string softwareName) { var project = new Project { SoftwareName = softwareName, FolderId = DriveUtils.GetProjectFolderId(softwareName, DriveUtils.GetRootFoderIdFromMyDrive()), Versions = new List <Version>() }; if (project.IsOnMyDrive()) { project.Versions = DriveUtils.GetVersions(project.FolderId); } return(project); }
/// <summary> /// Searches for "DefineXSoftwarePublisher" on drive, /// caches its folderId, and returns it. /// </summary> /// <returns>FolderId of "DefineXSoftwarePublisher" on drive</returns> public static string GetRootFoderIdFromMyDrive() { //if id is not known if (_rootFolderId == null) { //try to find it DriveUtils.FindFolderInRoot("root", rootFolderName, out _rootFolderId); } //if its still not known create it if (_rootFolderId == null) { _rootFolderId = CreateFolder(rootFolderName, "root"); Permission permission = new Permission() { Type = "anyone", Role = "reader" }; service.DriveService.Permissions.Create(permission, _rootFolderId).Execute(); } return(_rootFolderId); }
/// <summary> /// Checks if the project is on drive, /// used only by Publisher. /// </summary> /// <returns></returns> public bool IsOnMyDrive() { var rootFolderId = DriveUtils.GetRootFoderIdFromMyDrive(); return(DriveUtils.FindFolderInRoot(rootFolderId, SoftwareName)); }
/// <summary> /// Delete a version from drive. /// </summary> /// <param name="version">Version to be deleted</param> public void DeleteVersionFromDrive(Version version) { DriveUtils.DeleteFileFromDrive(version.FileId); Versions.Remove(version); }