internal static List <string> GetExtension(ExtensionVersion version) { StringCollection collection; if (version == ExtensionVersion.v8) { collection = GetDefaultProperties().ExtensionV8; } else if (version == ExtensionVersion.v7) { collection = GetDefaultProperties().ExtensionV7; } else { return(null); } List <string> list = new List <string>(); foreach (String item in collection) { list.Add(item); } return(list); }
protected override void ParseChangelog(string changelog) { var result = JsonConvert.DeserializeObject <GitHubVersion>(changelog); var version = new ExtensionVersion(result.tag_name); var changelogStarted = false; foreach (string line in Regex.Split(result.body, "\r\n|\r|\n")) { if (changelogStarted) { version.Changelog += line.Trim() + Environment.NewLine; } if (line.StartsWith("#### Changelog")) { changelogStarted = true; } } version.Files = result.assets; PlayerControl.VideoPanel.BeginInvoke((MethodInvoker)(() => { if (m_settings.ExtensionVersionOnServer == version) { return; } m_settings.ExtensionVersionOnServer = version; m_settings.ForgetExtensionVersion = false; })); }
private ExtensionVersionListItemModel ToListItemApiModel(ExtensionVersion exVersion) => new ExtensionVersionListItemModel { DetailUrl = GetGetExtensionVersionDetailUrl(exVersion.ExtensionId, exVersion.ExtensionVersionId), Id = exVersion.ExtensionVersionId, ReleaseNotes = exVersion.ReleaseNotes, Version = exVersion.Version?.ToString() };
public virtual IDictionary <string, string> GetAllProperties() { SortedDictionary <string, string> properties = new SortedDictionary <string, string>(); AddPairIfNotNull(properties, Constants.SIZE, Size.ToString("X2")); //hexidecimal with 2 numerical places (aka a byte) AddPairIfNotNull(properties, Constants.EXTENSION_VERSION, ExtensionVersion.ToString()); AddPairIfNotNull(properties, Constants.SIGNATURE, Signature.ToString("X4")); return(properties); }
public void ToString_GivenExtensionVersion_ShouldReturnExtensionAndExtensionVersionIds() { var extensionVersion = new ExtensionVersion { ExtensionId = Guid.NewGuid().ToString(), ExtensionVersionId = Guid.NewGuid().ToString() }; var toString = extensionVersion.ToString(); toString.Should().Be($"{extensionVersion.ExtensionId}_{extensionVersion.ExtensionVersionId}"); }
public static string GetExtensionVersion(bool bypassCache = false) { if (bypassCache || ExtensionVersion.GetValueOrDefault(null) == null) { var client = Program.Services.GetRequiredService <HttpClient>(); var r = client.GetAsync("https://api.github.com/repos/CheAle14/time-tracker/releases/latest").Result; if (r.IsSuccessStatusCode) { var jobj = Newtonsoft.Json.Linq.JObject.Parse(r.Content.ReadAsStringAsync().Result); var s = jobj["tag_name"].ToObject <string>(); if (s.StartsWith("v")) { s = s[1..];
public void CreateNewExecutionId_ValidExtensionVersionAndTenantId_ShouldHaveCorrectPrefix() { var extensionVersion = new ExtensionVersion { ExtensionId = Guid.NewGuid().ToString(), ExtensionVersionId = Guid.NewGuid().ToString() }; var tenantId = Guid.NewGuid().ToString(); var expectedPrefix = $"{extensionVersion.ExtensionId}_{extensionVersion.ExtensionVersionId}_{tenantId}_"; var executionId = extensionVersion.CreateNewExecutionId(tenantId); executionId.Should().StartWith(expectedPrefix); }
public static ExtensionVersionApiModel ToApiModel(this ExtensionVersion coreModel, string extensionId) => new ExtensionVersionApiModel { ExecutionExpirationPeriod = coreModel.ExecutionExpirationPeriod, ExtensionId = extensionId, Id = coreModel.ExtensionVersionId, IsActive = coreModel.IsActive, IsLongRunning = coreModel.IsLongRunning, ReleaseNotes = coreModel.ReleaseNotes, SupportsValidation = coreModel.SupportsValidation, Version = coreModel.Version, RequestTypeName = coreModel.RequestTypeName, ResponseTypeName = coreModel.ResponseTypeName, RequestTypeUrl = coreModel.RequestTypeUrl, ResponseTypeUrl = coreModel.ResponseTypeUrl };
public static Core.Models.ExtensionVersion ToCoreModel(this ExtensionVersion cosmosModel) => new Core.Models.ExtensionVersion { ExecutionExpirationPeriod = cosmosModel.ExecutionExpirationPeriod, ExtensionId = cosmosModel.ExtensionId, ExtensionVersionId = cosmosModel.ExtensionVersionId, InputObjects = cosmosModel.InputObjects, IsActive = cosmosModel.IsActive, IsLongRunning = cosmosModel.IsLongRunning, OutputObjects = cosmosModel.OutputObjects, ReleaseNotes = cosmosModel.ReleaseNotes, SupportedServices = cosmosModel.SupportedServices, SupportsValidation = cosmosModel.SupportsValidation, Version = cosmosModel.Version, RequestTypeName = cosmosModel.RequestTypeName, RequestTypeUrl = cosmosModel.RequestTypeUrl, ResponseTypeName = cosmosModel.ResponseTypeName, ResponseTypeUrl = cosmosModel.ResponseTypeUrl, ExecutionProfiles = cosmosModel.ExecutionProfiles.Select(p => p.Value.ToCoreModel(p.Key)).ToList() };
private ExtensionVersionDetailApiModel ToDetailApiModel(ExtensionVersion exVersion) => new ExtensionVersionDetailApiModel { ExtensionDetailUrl = GetGetExtensionDetailUrl(exVersion.ExtensionId), IsLongRunning = exVersion.IsLongRunning, ReleaseNotes = exVersion.ReleaseNotes, SupportsValidation = exVersion.SupportsValidation, Version = exVersion.Version?.ToString(), VersionId = exVersion.ExtensionVersionId, RequestTypeName = exVersion.RequestTypeName, RequestTypeUrl = exVersion.RequestTypeUrl, ResponseTypeName = exVersion.ResponseTypeName, ResponseTypeUrl = exVersion.ResponseTypeUrl, ExecutionProfiles = exVersion.ExecutionProfiles.ToDictionary( ep => ep.ProfileName, ep => ToDetailApiModel(ep)), InputObjects = exVersion.InputObjects.ToDictionary( io => io.Name, io => ToApiModel(io)), OutputObjects = exVersion.OutputObjects.ToDictionary( oo => oo.Name, oo => ToApiModel(oo)) };
/// <summary> /// Creates a unique, canonical execution ID. /// </summary> /// <param name="extensionVersion">The execution extension version</param> /// <param name="tenantId">The executor tenant ID</param> /// <returns></returns> public static string CreateNewExecutionId(this ExtensionVersion extensionVersion, string tenantId) => $"{extensionVersion.ExtensionId}_{extensionVersion.ExtensionVersionId}_{tenantId}_{Guid.NewGuid()}";
public static ExecutionProfile GetExecutionProfile(this ExtensionVersion exVersion, string profileName) => exVersion.ExecutionProfiles.SingleOrDefault(ep => (ep.ProfileName == profileName));
public static ExtensionOutputObject GetOutputObject(this ExtensionVersion exVersion, string objectName) => exVersion.OutputObjects.SingleOrDefault(oo => (oo.Name == objectName));
public static ExtensionInputObject GetInputObject(this ExtensionVersion exVersion, string objectName) => exVersion.InputObjects.SingleOrDefault(io => (io.Name == objectName));