using System; using System.Reflection; using Xylem.Common.CommonCore.Configuration; namespace Xylem.Common.Logic.SoftwareAccessHelper { /// /// Access right and permission handling for software assemblies. The production data base contains the assembly names and /// validation dates. This avoids usage of not permitted software. New software releases can invalid older versions. /// public static class Access { /// /// Check this assembly access rights/permissions. /// /// public static Boolean HasAccess() { return HasAccess(Assembly.GetExecutingAssembly().GetName()); } /// /// Check the assembly name and version. /// /// /// public static Boolean HasAccess(AssemblyName assemblyName) { return HasAccess(assemblyName.Name, assemblyName.Version.Major, assemblyName.Version.Minor, assemblyName.Version.Build); } /// /// check the program name and version. /// /// /// /// /// /// private static Boolean HasAccess(String program, Int32 major, Int32 minor, Int32 build) { if (System.Diagnostics.Debugger.IsAttached) { return true; } var url = $"{ServiceUrls.GetSoftwareStartUpAccessUrl()}?Program={program}&Major={major}&Minor={minor}&Build={build}"; var requestResponse = LocalWebRequest.GetRequest(url, 8000); var ret = bool.Parse(requestResponse.Trim('"')); return ret; } } public static class Updater { public static void CheckAndUpdate() { //todo implement // } } }