public static void LogInitializedPluginFeature(PluginManifest PluginMenifest, PluginFeatureManifest FeatureManifest) { Current.Log((int)EventTypeIds.InitializedPluginFeature, PluginMenifest.Id, FeatureManifest.Type.Name); }
public static string GenerateFaultDescriptionFooter(this Job j, DiscoDataContext Database, PluginFeatureManifest WarrantyProviderDefinition) { var versionDisco = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; return string.Format("Automation by Disco v{0}.{1}.{2:0000}.{3:0000} (Provider: {4} v{5})", versionDisco.Major, versionDisco.Minor, versionDisco.Build, versionDisco.Revision, WarrantyProviderDefinition.Id, WarrantyProviderDefinition.PluginManifest.Version.ToString(4)); }
public static List<SelectListItem> ToSelectListItems(this IEnumerable<PluginFeatureManifest> PluginFeatureDefinitions, PluginFeatureManifest SelectedItem) { return PluginFeatureDefinitions.ToSelectListItems(SelectedItem?.Id, false, null); }
public static bool TryGetPluginFeature(string PluginFeatureId, out PluginFeatureManifest PluginFeatureManifest) { return TryGetPluginFeature(PluginFeatureId, null, out PluginFeatureManifest); }
public static bool TryGetPluginFeature(string PluginFeatureId, Type CategoryType, out PluginFeatureManifest PluginFeatureManifest) { if (_PluginManifests == null) { PluginFeatureManifest = null; return false; } var featureManifest = _PluginManifests.Values .SelectMany(pm => pm.Features) .Where(fm => fm.Id == PluginFeatureId) .FirstOrDefault(); if (featureManifest == null) { PluginFeatureManifest = null; return false; } if (CategoryType == null) { PluginFeatureManifest = featureManifest; return true; } else { if (CategoryType.IsAssignableFrom(featureManifest.CategoryType)) { PluginFeatureManifest = featureManifest; return true; } else { PluginFeatureManifest = null; return false; } } }
public static void OnLogRepair(this Job j, DiscoDataContext Database, string RepairDescription, List<JobAttachment> SendAttachments, PluginFeatureManifest RepairProviderDefinition, OrganisationAddress Address, User TechUser, Dictionary<string, string> RepairProviderProperties) { if (!j.CanLogRepair()) throw new InvalidOperationException("Log Repair was Denied"); PublishJobResult publishJobResult = null; using (RepairProviderFeature RepairProvider = RepairProviderDefinition.CreateInstance<RepairProviderFeature>()) { if (SendAttachments != null && SendAttachments.Count > 0) { publishJobResult = DiscoServicesJobs.Publish( Database, j, TechUser, RepairProvider.ProviderId, null, RepairDescription, SendAttachments, AttachmentDataStoreExtensions.RepositoryFilename); if (!publishJobResult.Success) throw new Exception(string.Format("Disco ICT Online Services failed with the following message: ", publishJobResult.ErrorMessage)); if (string.IsNullOrWhiteSpace(RepairDescription)) RepairDescription = publishJobResult.PublishMessage; else RepairDescription = string.Concat(RepairDescription, Environment.NewLine, "___", Environment.NewLine, publishJobResult.PublishMessage); } string submitDescription; if (string.IsNullOrWhiteSpace(RepairDescription)) submitDescription = j.GenerateFaultDescriptionFooter(Database, RepairProviderDefinition); else submitDescription = string.Concat(RepairDescription, Environment.NewLine, Environment.NewLine, j.GenerateFaultDescriptionFooter(Database, RepairProviderDefinition)); string providerRef = RepairProvider.SubmitJob(Database, j, Address, TechUser, submitDescription, RepairProviderProperties); j.JobMetaNonWarranty.RepairerLoggedDate = DateTime.Now; j.JobMetaNonWarranty.RepairerName = RepairProvider.ProviderId; if (providerRef != null && providerRef.Length > 100) j.JobMetaNonWarranty.RepairerReference = providerRef.Substring(0, 100); else j.JobMetaNonWarranty.RepairerReference = providerRef; // Write Log JobLog jobLog = new JobLog() { JobId = j.Id, TechUserId = TechUser.UserId, Timestamp = DateTime.Now, Comments = string.Format("# Repair Request Submitted\r\nProvider: **{0}**\r\nAddress: **{1}**\r\nReference: **{2}**\r\n___\r\n```{3}```", RepairProvider.Manifest.Name, Address.Name, providerRef, RepairDescription) }; Database.JobLogs.Add(jobLog); if (publishJobResult != null) { try { DiscoServicesJobs.UpdateRecipientReference(Database, j, publishJobResult.Id, publishJobResult.Secret, j.JobMetaNonWarranty.RepairerReference); } catch (Exception ex) { ex.ToExceptionless().Submit(); } // Ignore Errors as this is not completely necessary } } }