Esempio n. 1
0
        public static Dictionary <string, string> GetComputerInfoDict(SubmitComputerLogMode mode)
        {
            var dictTemp = Globals.myComputerInfo.ToDictionary();

            switch (mode)
            {
            case SubmitComputerLogMode.Startup:
                dictTemp.Add("event", "startup");
                break;

            case SubmitComputerLogMode.Logoff:
                dictTemp.Add("event", "logoff");
                break;

            case SubmitComputerLogMode.Logged:
                dictTemp.Add("event", "logged");
                break;

            default:
                break;
            }

            //bool sent_completed = false;

            int retry_count_max = 5;

            int.TryParse(Configuration.configuration["update_computer.retry_count_max"], out retry_count_max);

            //int time_out = 5000;

            //int wait_time = 10;
            //int.TryParse(Configuration.configuration["update_computer.retry_wait"], out wait_time);

            return(dictTemp);
        }
Esempio n. 2
0
        public static string GetComputerInfoJsonString(SubmitComputerLogMode mode)
        {
            var dictIn     = GetComputerInfoDict(mode);
            var jsonString = Globals.functions.Json_toJsonObj(dictIn);

            return(jsonString);
        }
Esempio n. 3
0
        public static void SubmitComputerLog(SubmitComputerLogMode mode)
        {
            try
            {
                var pathTemp = Configuration.configuration["update_computer.url"];
                var dictTemp = Globals.myComputerInfo.ToDictionary();

                switch (mode)
                {
                case SubmitComputerLogMode.Startup:
                    dictTemp.Add("event", "startup");
                    break;

                case SubmitComputerLogMode.Logoff:
                    dictTemp.Add("event", "logoff");
                    break;

                case SubmitComputerLogMode.Logged:
                    dictTemp.Add("event", "logged");
                    break;

                default:
                    break;
                }

                bool sent_completed = false;

                int retry_count_max = 5;
                int.TryParse(Configuration.configuration["update_computer.retry_count_max"], out retry_count_max);

                int time_out = 5000;

                int wait_time = 10;
                int.TryParse(Configuration.configuration["update_computer.retry_wait"], out wait_time);

                //.NET4.5.2
                //Task taskA = Task.Run(() =>
                //.NET4.0
                Task taskA = Task.Factory.StartNew(() =>
                {
                    int retry_count = 0;
                    while (!sent_completed && retry_count < retry_count_max)
                    {
                        Globals.log.Debug("\nTrying to submit computer info :: retry_count = " + retry_count);
                        var returnCode = Globals.functions.HttpPostRequestDictionary(pathTemp, dictTemp, time_out);
                        if (returnCode == Globals.functions.HttpPostRequestReturnCode.COMPLETED)
                        {
                            sent_completed = true;

                            break;
                        }

                        if (mode == ComputerInfo.SubmitComputerLogMode.Logoff || Globals.isProgramExit)
                        {
                            break;
                        }

                        Thread.Sleep(wait_time * 1000);
                        retry_count += 1;
                    }

                    if (sent_completed)
                    {
                        Globals.log.Debug("\nSuccess to submitting computer info :: retry_count = " + retry_count);
                    }
                    else
                    {
                        Globals.log.Warn(String.Format("\nUnable and giveup to submit computer info :: retry_count = {0}, time_out = {1}, wait_time = {2}", retry_count, time_out, wait_time));
                    }
                });
            }
            catch (Exception e)
            {
                Globals.log.Error("SubmitComputerLog(.)");
                Globals.log.Debug(e.ToString());
            }
        }