Ejemplo n.º 1
0
        public async Task <IList <MachineInfo> > GetMachineInfoAsync()
        {
            var response = await dmClient.GetMachineInfoAsync();

            VerifyResponse(response);

            using (var csvReader = new CsvReader(new StringReader(response.Response)))
            {
                List <MachineInfo> records = new List <MachineInfo>();

                while (csvReader.Read())
                {
                    string machineName       = csvReader["MACHINE"];
                    string repairType        = csvReader["REPAIR"];
                    string repairActionState = csvReader["REPAIRACTIONSTATE"];
                    string machineStatus     = csvReader["STATUS"];

                    var recordId = new MaintenanceRecordId(machineName, repairType);
                    var record   = new MachineInfo(recordId, machineStatus, repairActionState);
                    records.Add(record);
                }

                return(records);
            }
        }
Ejemplo n.º 2
0
        private static string GenerateTaskId(MaintenanceRecordId recordId, DateTime?timestamp)
        {
            recordId.Validate("recordId");

            // A custom date format rather than "O" (ISO 8601) is used here because
            // "O" includes characters that are not allowed in repair task ID strings.
            return($"AP/{recordId}/{timestamp:yyyyMMdd-HHmmss}");
        }
Ejemplo n.º 3
0
        public async Task <IList <MachineMaintenanceRecord> > GetDevicesPendingMaintenanceAsync()
        {
            var response = await dmClient.GetDevicesPendingMaintenanceAsync();

            VerifyResponse(response);

            using (var csvReader = new CsvReader(new StringReader(response.Response)))
            {
                List <MachineMaintenanceRecord> records = new List <MachineMaintenanceRecord>();

                while (csvReader.Read())
                {
                    string machineName = csvReader["MACHINENAME"];
                    string repairType  = csvReader["ACTION"];
                    string delayInSec  = csvReader["DELAYINSEC"];

                    int delay;
                    if (!int.TryParse(delayInSec, out delay))
                    {
                        traceType.WriteWarning(
                            "Unable to parse current delay: MACHINENAME='{0}' ACTION='{1}' DELAYINSEC='{2}'",
                            machineName,
                            repairType,
                            delayInSec);

                        delay = 59; // set this to some small value, so that we assume it is already approved
                    }

                    TimeSpan delaySpan = TimeSpan.FromSeconds(delay);

                    var recordId = new MaintenanceRecordId(machineName, repairType);
                    var record   = MachineMaintenanceRecord.FromPendingRepair(recordId, delaySpan);
                    records.Add(record);
                }

                return(records);
            }
        }
Ejemplo n.º 4
0
        public async Task <IList <MachineMaintenanceRecord> > GetRepairListAsync()
        {
            var response = await dmClient.GetRepairListAsync();

            VerifyResponse(response);

            using (var csvReader = new CsvReader(new StringReader(response.Response)))
            {
                List <MachineMaintenanceRecord> records = new List <MachineMaintenanceRecord>();

                while (csvReader.Read())
                {
                    string machineName = csvReader["MACHINENAME"];
                    string repairType  = csvReader["REQUESTTYPE"];

                    var recordId = new MaintenanceRecordId(machineName, repairType);
                    var record   = MachineMaintenanceRecord.FromActiveRepair(recordId);
                    records.Add(record);
                }

                return(records);
            }
        }