public int checkReadTag(ReadTag item, string portal, string embarque) { var po = "\\" + portal; var em = "\\" + embarque; var path = "C:\\temp" + po + em + ".xml"; int flag = 0; string partNumber = item.continentalpartnumber; xmlDoc = new XmlDocument(); xmlDoc.Load(path); XmlNodeList userNodes = xmlDoc.SelectNodes("//ReadTag"); foreach (XmlNode userNode in userNodes) { var prtNbr = userNode["continentalpartnumber"].InnerText; var rdng = bool.Parse(userNode["Reading"].InnerText); var ordr = int.Parse(userNode["OrderID"].InnerText); if (prtNbr.Equals(partNumber)) { if (rdng.Equals(false)) { userNode.SelectSingleNode("Reading").InnerText = "true"; var orderDtl = _context.GetQueryOrderDetail(ordr, prtNbr); orderDtl.Leido = true; _context.UpdateItem(orderDtl); xmlDoc.Save(path); readingTag(); flag = 1; break; } } } return(flag); }
public async Task Pallets(string portal, string embarque) { SuccessTag ret = new SuccessTag() { Success = 0 }; int valid = ret.Success; try { //Obtener la info del XML del Reader var uno = getTagReader(); var dos = getTagList(portal, embarque); ReadTag tag = dos.Find(x => x.Reading == false); ReadTag tagTrue = dos.Find(x => x.Reading == true); if (tag != null)//Valida si aún quedan pallets por embarcar { //Si el último tag leido au no es validado entra en la condición if (uno.Reading == false) { //Busca en el xml del embarque el último pallet leido tag = dos.Find(x => x.continentalpartnumber == uno.continentalpartnumber); //Si se encuentra coincidencia en el paso anterior entra en la condición if (tag != null) { valid = checkReadTag(tag, portal, embarque); if (valid == 1) { ret.Success = 1; } } else { ret.Success = 2;//No valido } } else if (tagTrue == null) { ret.Success = 5; //Esperando a iniciar el embarque } else { ret.Success = 1;// Debe regresar un estado donde el ultimo tag al leído fue valido } } else if (uno.Reading == false) { ret.Success = 4;//No pertenece al embarque, ademas de estar terminado el embarque } else { ret.Success = 3;// Embarque terminado } var json = JsonConvert.SerializeObject(uno); //TODO: Enviar el número de embarque await Clients.Caller.SendAsync("ReceivePallet", ret.Success, json); } catch (Exception ex) { var a = ex.Message; } }