using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Xml; namespace Neo.Legitimate.NLTISWebService.Data { public class OlasApplication { private OlasApplication() { } public static string Verify(string password, string data) { string result; if (!OlasApplication.ValidPassword(password)) { result = null; } else { XmlDocument xmlDoc = OlasApplication.DecryptXml(data); OlasOperatingLicence ol = new OlasOperatingLicence(xmlDoc.SelectSingleNode("OperatingLicence") as XmlElement); ol.Verify(); result = OlasApplication.Encrypt(xmlDoc.OuterXml); } return result; } public static string Submit(string password, string data) { string result; if (!OlasApplication.ValidPassword(password)) { result = null; } else { XmlDocument xmlDoc = OlasApplication.DecryptXml(data); OlasOperatingLicence ol = new OlasOperatingLicence(xmlDoc.SelectSingleNode("OperatingLicence") as XmlElement); ol.Create(null); result = OlasApplication.Encrypt(xmlDoc.OuterXml); } return result; } public static string Query(string password, string data) { string result; if (!OlasApplication.ValidPassword(password)) { result = null; } else { XmlDocument xmlCommand = OlasApplication.DecryptXml(data); NLTISDataBroker db = new NLTISDataBroker(); XmlDocument xmlResult = db.Execute(xmlCommand); result = OlasApplication.Encrypt(xmlResult.OuterXml); } return result; } private static string Encrypt(string plainText) { return CryptoProvider.Encrypt(ConfigurationManager.AppSettings["RijndaelKey"], ConfigurationManager.AppSettings["RijndaelIV"], plainText); } private static string Decrypt(string cipher) { return CryptoProvider.Decrypt(ConfigurationManager.AppSettings["RijndaelKey"], ConfigurationManager.AppSettings["RijndaelIV"], cipher); } private static XmlDocument DecryptXml(string xmlCipher) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(OlasApplication.Decrypt(xmlCipher)); return xmlDoc; } private static bool ValidPassword(string password) { return ConfigurationManager.AppSettings["Password"] == OlasApplication.Decrypt(password); } } }