Пример #1
0
 /// <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());
     }
 }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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));
        }
Пример #8
0
 /// <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);
 }