/// <summary> /// Create LiteDB connection string /// </summary> /// <param name="profileName"></param> /// <param name="password"></param> /// <returns></returns> public static string GetProfileDBConnectionString(IFreeJiraSettings settings, string profileName, string?password = null) { var profilePath = GetProfilePath(settings, profileName).FullName; var passwordQuery = string.IsNullOrEmpty(password) ? "" : $"Password={password};"; return($"Filename={profilePath};{passwordQuery}Connection=Shared"); }
public static FreeJiraSettings FromInterface(IFreeJiraSettings settings) { return(new FreeJiraSettings { BaseFolder = settings.Folder.FullName, DefaultProfile = settings.DefaultProfile, ServerPort = settings.ServerPort, StartupMode = settings.StartupMode, }); }
private static FileInfo GetAndCreateProfileFolder(IFreeJiraSettings settings, string profileName) { var path = ProfilePath.GetProfilePath(settings, profileName); if (!path.Directory.Exists) { path.Directory.Create(); } return(path); }
/// <summary> /// Load list of profile names /// </summary> /// <param name="settings"></param> /// <returns></returns> public static IEnumerable <string> GetAvailableProfiles(IFreeJiraSettings settings) { var folder = settings.Folder.RelativeDirectory(PROFILE_DEFAULT_FOLDER_NAME); if (!folder.Exists) { yield break; } var searchGlob = "*" + PROFILE_FILE_EXTENSION; foreach (var d in folder.GetFiles(searchGlob)) { yield return(d.GetNameWithoutExtension()); } }
/// <summary> /// Load database /// </summary> /// <param name="settings"></param> /// <param name="profileName"></param> /// <param name="password"></param> /// <returns></returns> public static LiteDatabase GetDatabase(IFreeJiraSettings settings, string profileName, string?password = null) { var connectionString = GetProfileDBConnectionString(settings, profileName, password); return(new LiteDatabase(connectionString)); }
/// <summary> /// Get profile file /// </summary> /// <param name="settings"></param> /// <param name="profileName"></param> /// <returns></returns> public static FileInfo GetProfilePath(IFreeJiraSettings settings, string profileName) { var name = GetNameWithExtension(profileName); return(settings.Folder.RelativeFile(PROFILE_DEFAULT_FOLDER_NAME, name)); }