Example #1
0
        /// <summary>
        /// Routine zum Durchführen einer manuellen Konfiguration (Kunde gibt über Telefon Codes durch und erhält Antwortcode)
        /// </summary>
        /// <param name="pAddress">URL zum Aktivierungsskript</param>
        /// <param name="pKey">Key, für den aktiviert werden soll</param>
        /// <param name="pAppID">ApplikationsID für die aktiviert werden soll</param>
        /// <param name="pHWID">Hardwarekennung, für die aktiviert werden soll</param>
        /// <param name="pAnswerCodePrinter">Delgat (siehe <see cref="AnswerCodePrinter">AnswerCodePrinter</see></param>
        /// <returns>Aktivierungsstatus, Aktivierungscode über Delegate</returns>

        public static OnlineActivationResponse TelephoneActivation(string pAddress, string pKey, string pAppID, string pHWID, AnswerCodePrinter pAnswerCodePrinter)
        {
            string requestUrl = pAddress;
            string parameters = "?";

            parameters += "key=" + pKey;
            parameters += "&app=" + pAppID;
            parameters += "&machine=" + pHWID;
            parameters += "&action=4";             // Fire activation


            // Parameter prüfen
            // Mit PC-ID versehen
            // Request
            HttpWebRequest  requ = (HttpWebRequest)HttpWebRequest.Create(requestUrl + parameters);
            HttpWebResponse resp = (HttpWebResponse)requ.GetResponse();

            StreamReader sr = new StreamReader(resp.GetResponseStream());

            string answer = sr.ReadLine();

            sr.Close();
            resp.Close();

            string[] parts;
            try
            {
                parts = answer.Split(';');
            }
            catch
            {
                TBL.Exceptions.ConversionException ex = new TBL.Exceptions.ConversionException("In Telefonaktivierungsantwort zurückgelieferter String lässt sich nicht nach Separator ';' zerteilen. Empfangener Wert: " + answer);
                throw(ex);
            }

            int intAnswer = 0;

            try
            {
                intAnswer = Convert.ToInt32(parts[0]);
            }
            catch
            {
                return(OnlineActivationResponse.InvalidResponseCode);
            }


            OnlineActivationResponse response = (OnlineActivationResponse)(intAnswer);

            if (response == OnlineActivationResponse.Successful)
            {
                try
                {
                    int activationCode = Convert.ToInt32(sr.ReadLine());
                    pAnswerCodePrinter(parts[1].ToString());
                }
                catch
                {
                    return(OnlineActivationResponse.InvalidResponseCode);
                }
            }
            //else
            return(response);
        }
        /// <summary>
        /// Routine zum Durchführen einer manuellen Konfiguration (Kunde gibt über Telefon Codes durch und erhält Antwortcode)
        /// </summary>
        /// <param name="pAddress">URL zum Aktivierungsskript</param>
        /// <param name="pKey">Key, für den aktiviert werden soll</param>
        /// <param name="pAppID">ApplikationsID für die aktiviert werden soll</param>
        /// <param name="pHWID">Hardwarekennung, für die aktiviert werden soll</param>
        /// <param name="pAnswerCodePrinter">Delgat (siehe <see cref="AnswerCodePrinter">AnswerCodePrinter</see></param>
        /// <returns>Aktivierungsstatus, Aktivierungscode über Delegate</returns>
        public static OnlineActivationResponse TelephoneActivation(string pAddress, string pKey, string pAppID, string pHWID, AnswerCodePrinter pAnswerCodePrinter)
        {
            string requestUrl = pAddress;
            string parameters = "?";

            parameters += "key=" + pKey;
            parameters += "&app=" + pAppID;
            parameters += "&machine=" + pHWID;
            parameters += "&action=4"; // Fire activation

            // Parameter prüfen
            // Mit PC-ID versehen
            // Request
            HttpWebRequest requ = (HttpWebRequest)HttpWebRequest.Create(requestUrl + parameters);
            HttpWebResponse resp = (HttpWebResponse)requ.GetResponse();

            StreamReader sr = new StreamReader(resp.GetResponseStream());

            string answer = sr.ReadLine();

            sr.Close();
            resp.Close();

            string[] parts;
            try
            {
                parts = answer.Split(';');
            }
            catch
            {

                TBL.Exceptions.ConversionException ex = new TBL.Exceptions.ConversionException("In Telefonaktivierungsantwort zurückgelieferter String lässt sich nicht nach Separator ';' zerteilen. Empfangener Wert: " + answer);
                throw(ex);
            }

            int intAnswer=0;

            try
            {
                intAnswer = Convert.ToInt32(parts[0]);
            }
            catch
            {
                return(OnlineActivationResponse.InvalidResponseCode);
            }

            OnlineActivationResponse response = (OnlineActivationResponse)(intAnswer);

            if(response == OnlineActivationResponse.Successful)
            {
                try
                {
                    int activationCode = Convert.ToInt32(sr.ReadLine());
                    pAnswerCodePrinter(parts[1].ToString());
                }
                catch
                {
                    return(OnlineActivationResponse.InvalidResponseCode);
                }

            }
            //else
            return(response);
        }