예제 #1
0
        public async Task <DataResponse> Snapshot(string cpuName)
        {
            _logger.Log(new LogEntry(LoggingEventType.Information,
                                     $"VariableProcessor Operation=WriteToDb. cpuName={cpuName}"));

            var response = await _pviApplication.GetCpuData(cpuName);

            var cpuDetails = await _pviApplication.GetCpuByName(cpuName);

            if (response.Error == null)
            {
                var detail = new VariableShutdownDetail();


                var variableDict = (IDictionary <string, object>)response.Data;


                dynamic data = response.Data as ExpandoObject;


                detail.MachineIp   = cpuDetails.IpAddress;
                detail.MachineName = cpuDetails.Name;

                if (variableDict.ContainsKey("PouchPerMinute"))
                {
                    int pouch;
                    Int32.TryParse(variableDict["PouchPerMinute"].ToString(), out pouch);
                    detail.PouchesPerMinute = pouch;
                }

                if (variableDict.ContainsKey("TimeDisplay.CyclingTime"))
                {
                    detail.CyclingTime = variableDict["TimeDisplay.CyclingTime"].ToString();
                }

                if (variableDict.ContainsKey("CycleCount"))
                {
                    int cycle;
                    Int32.TryParse(variableDict["CycleCount"].ToString(), out cycle);
                    detail.CycleCount = cycle;
                }

                if (variableDict.ContainsKey("HourMeter"))
                {
                    int meter;
                    Int32.TryParse(variableDict["HourMeter"].ToString(), out meter);
                    detail.HourMeter = meter;
                }

                detail.Comment = "API Request";

                await _sqlApi.AddSnapshot(detail);
            }

            return(response);
        }
예제 #2
0
        public async Task <CpuDetailResponse> GetCpuByName(string name)
        {
            logger.Log(new LogEntry(LoggingEventType.Information, $"RequestProcessor Operation=GetCpuByName Name={name}"));

            var result = await _application.GetCpuByName(name);

            logger.Log(new LogEntry(LoggingEventType.Debug, ToJson(result)));

            return(result);
        }
예제 #3
0
        public async Task <CpuDetailResponse> GetCpuByName(string name)
        {
            var result = await Task.Run(() => _application.GetCpuByName(name));

            return(result);
        }