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, 1200);
var ret = bool.Parse(requestResponse.Trim('"'));
return ret;
}
}
public static class Updater
{
public static void CheckAndUpdate()
{
//todo implement
//
}
}
}