Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            while (true)
            {
                try
                {
                    Console.WriteLine("Enter a Serial Number: ");
                    Console.WriteLine("00000000001");
                    string serialNumber = Console.ReadLine();
                    DABGetTestCard.Response response = UAFConnector.StaticDABGetTestCard(serialNumber);

                    TestResultParameter testResult = new TestResultParameter
                    {
                        CorrenteDiTerra      = 1,
                        CorrenteRigidita     = 1,
                        DescrizioneEsito     = "",
                        Esito                = "PASS",
                        ResistenzaDiTerra    = 1,
                        ResistenzaIsolamento = 1,
                        SerialNumber         = serialNumber,
                        TensioneIsolamento   = 1,
                        TensioneRigidita     = 1,
                    };
                    Console.WriteLine(response.Succeeded ? "DABGetTestCard Succeeded" : $"DABGetTestCard Error {response.Error.ErrorCode}: {response.Error.ErrorMessage}");
                    //per ogni assorbimento
                    testResult.Assorbimenti.Add(new AbsorptionResultParameter
                    {
                        Nome               = "ASS1",
                        AmpereFase1        = 1,
                        AmpereFase2        = 1,
                        AmpereFase3        = 1,
                        FattoreDiPotenza   = 1,
                        Portata            = 1,
                        Watt               = 1,
                        Pressione          = 1,
                        SquilibrioCorrenti = 1,
                        TensioneProva      = 1,
                    });
                    var sendResponse = UAFConnector.StaticDABSendTestResult(testResult);
                    Console.WriteLine(sendResponse.Succeeded ? "DABGetTestCard Succeeded" : $"DABGetTestCard Error {sendResponse.Error.ErrorCode}: {sendResponse.Error.ErrorMessage}");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }
            }
        }
Ejemplo n.º 2
0
        private DABGetTestCard.Response DABGetTestCardHandler(DABGetTestCard command)
        {
            DABGetTestCard.Response     response     = new DABGetTestCard.Response();
            List <ToBeProducedMaterial> toBeProdMats = Platform.ProjectionQuery <ToBeProducedMaterial>().Include("WorkOrderOperation.ToBeUsedMachines").Include(tpm => tpm.MaterialItem).Where(pmi => pmi.MaterialItem.SerialNumberCode == command.SerialNumber).ToList();

            if (!toBeProdMats.Any())
            {
                response.SetError(-1000, $"Nessun Ordine trovato per il seriale {command.SerialNumber}");
                return(response);
            }
            List <int> equipIds   = toBeProdMats.SelectMany(m => m.WorkOrderOperation.ToBeUsedMachines).Where(e => e.Machine != null).Select(e => e.Machine.Value).ToList();
            var        testingIds = Platform.ProjectionQuery <Equipment>().Where(e => equipIds.Contains(e.Id)).Where(e => e.MachineDefinitionNId == "Testing").Select(e => e.Id).ToList();

            if (!testingIds.Any())
            {
                response.SetError(-1000, $"Nessun Ordine trovato per il seriale {command.SerialNumber}");
                return(response);
            }

            ToBeProducedMaterial toBeProdMat = toBeProdMats.FirstOrDefault(mat => mat.WorkOrderOperation.ToBeUsedMachines.Any(m => testingIds.Contains(m.Machine.Value)));

            if (toBeProdMat == null)
            {
                response.SetError(-1000, $"Seriale {command.SerialNumber} non ancora disponibile o già avviato");
                return(response);
            }
            int?workOrderId = toBeProdMat.WorkOrderOperation.WorkOrder_Id;
            var matDef      = Platform.ProjectionQuery <MaterialDefinition>().Where(md => md.Id == toBeProdMat.MaterialItem.MaterialDefinition).FirstOrDefault();

            if (workOrderId == null)
            {
                response.SetError(-1000, $"Nessun Ordine trovato per il seriale {command.SerialNumber}");
                return(response);
            }
            var windchillConf        = Platform.ProjectionQuery <ConfigurationKey>().Where(c => c.NId == "WindchillIntegration").Select(c => c.Val).FirstOrDefault();
            var windchillIntegration = (!string.IsNullOrEmpty(windchillConf) && windchillConf == "true");

            var getInput = new GetTestCard
            {
                WorkOrderId          = workOrderId.Value,
                ProductCode          = matDef.NId,
                ProductRevision      = matDef.Revision,
                WindchillIntegration = windchillIntegration
            };
            var getResponse = Platform.CallCommand <GetTestCard, GetTestCard.Response>(getInput);

            if (!getResponse.Succeeded)
            {
                response.SetError(getResponse.Error.ErrorCode, getResponse.Error.ErrorMessage);
                return(response);
            }
            var toBeUsedMachine = toBeProdMat.WorkOrderOperation.ToBeUsedMachines.Where(tum => tum.Machine.HasValue).FirstOrDefault().Machine.Value;
            var equip           = Platform.ProjectionQuery <Equipment>().Where(e => e.Id == toBeUsedMachine).FirstOrDefault();
            var startResponse   = Platform.CallCommand <DABStartSerial, DABStartSerial.Response>(new DABStartSerial
            {
                StartWOOperationSerializedParameterTypeList = new List <StartSerializedParameterType>
                {
                    new StartSerializedParameterType
                    {
                        Id                    = toBeProdMat.WorkOrderOperation.Id,
                        NId                   = toBeProdMat.WorkOrderOperation.NId,
                        EquipmentName         = equip.Name,
                        EquipmentNId          = equip.NId,
                        ToBeProducedMaterials = new List <MaterialItemParameterType>
                        {
                            new MaterialItemParameterType
                            {
                                NId                   = toBeProdMat.MaterialItem.NId,
                                EquipmentNId          = equip.NId,
                                MaterialDefinitionNId = matDef.NId,
                                SerialNumber          = command.SerialNumber
                            }
                        }
                    }
                }
            });

            if (!startResponse.Succeeded)
            {
                response.SetError(startResponse.Error.ErrorCode, startResponse.Error.ErrorMessage);
                return(response);
            }
            response.TestCard = getResponse.TestCard;
            RefreshOTWebSerials(workOrderId.Value);

            return(response);
        }