private VO_PurchaseConfirmRQ getParametros() { VO_PurchaseConfirmRQ vo_PurchaseConfirmRQ = new VO_PurchaseConfirmRQ(); VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel(); VO_Holder vo_Holder = new VO_Holder(); List <VO_ServiceData> lvo_ServiceData = new List <VO_ServiceData>(); //List<VO_Customer> lvo_Customer = new List<VO_Customer>(); string sAdulto = string.Empty; try { sAdulto = ConfigurationManager.AppSettings["AdultoHB"].ToString(); } catch { sAdulto = "AD"; } DataSet dsRoomType = clsSesiones.getReservaHotel(); DataTable dtHotelRoom = dsRoomType.Tables[TABLA_HOTEL_ROOM]; DataRow[] drHotelRoom = dtHotelRoom.Select(); vo_PurchaseConfirmRQ.Credentials = vo_HotelValuedAvailRQ.Credentials; int iPos = vo_HotelValuedAvailRQ.lHotelOccupancy.Count; for (int i = 0; i < iPos; i++) { VO_ServiceData vo_ServiceData = new VO_ServiceData(); vo_ServiceData.lCustomer = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList; vo_ServiceData.SPUI = drHotelRoom[0][COLUMN_SPUI].ToString(); lvo_ServiceData.Add(vo_ServiceData); } vo_PurchaseConfirmRQ.lServiceData = lvo_ServiceData; int iContador = lvo_ServiceData[0].lCustomer.Count; for (int j = 0; j < iContador; j++) { if (lvo_ServiceData[0].lCustomer[j].Type.Equals(sAdulto)) { vo_Holder.Name = lvo_ServiceData[0].lCustomer[j].Name; vo_Holder.LastName = lvo_ServiceData[0].lCustomer[j].LastName; vo_Holder.Type = lvo_ServiceData[0].lCustomer[j].Type; break; } } vo_PurchaseConfirmRQ.Holder = vo_Holder; // Traemos la tabla /*Recuperamos la cache para traer el id de la empresa y enviarlo en el AgencyReference*/ clsCache cCache = new csCache().cCache(); vo_PurchaseConfirmRQ.AgencyReference = cCache.Empresa;//drHotelRoom[0][COLUMN_BRANCH].ToString(); vo_PurchaseConfirmRQ.PurchaseToken = drHotelRoom[0][COLUMN_PURCHASE_TOKEN].ToString(); return(vo_PurchaseConfirmRQ); }
/// <summary> /// Retornamos la cantidad maxima de pasajeros /// </summary> /// <param name="vo_PurchaseConfirmRQ"></param> /// <returns></returns> private int getTotalPax(VO_PurchaseConfirmRQ vo_PurchaseConfirmRQ) { int total = 0; foreach (VO_ServiceData lServiceData in vo_PurchaseConfirmRQ.lServiceData) { if (total < lServiceData.lCustomer.Count) { total = lServiceData.lCustomer.Count; } } return(total); }
public clsResultados getServices() { clsSerializer cDataXml = new clsSerializer(); clsResultados cResultados = new clsResultados(); clsParametros cParametros = new clsParametros(); VO_PurchaseConfirmRQ vo_PurchaseConfirmRQ = getParametros(); try { DataTable dtAdult = (DataTable)HttpContext.Current.Session["TableID"]; DataTable dtCh = (DataTable)HttpContext.Current.Session["TableIDCH"]; string sAdulto = clsValidaciones.GetKeyOrAdd("AdultoHB", "AD"); int passajer = 0; string sInfante = clsValidaciones.GetKeyOrAdd("InfanteHB", "CH"); string sXml = clsEstilosXmlHB.PurchaseConfirmRQ + ".xml"; //string sXml = clsSolicitudesXml.PurchaseConfirmRS + ".xml"; string sRuta = clsConfiguracionHB.RutaArchivosXml; XmlDocument xmlDoc = cDataXml.RecuperarXML(sRuta, sXml); clsInterfaceWSHttp cInterface = new clsInterfaceWSHttp(); XmlNode objNodo2 = null; clsCredencialesHB cCredenciales = new clsCredencialesHB(); xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_PurchaseConfirmRQ.Credentials, clsEstilosXmlHB.PurchaseConfirmRQ, false); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "purchaseToken", "ConfirmationData", vo_PurchaseConfirmRQ.PurchaseToken); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Holder", vo_PurchaseConfirmRQ.Holder.Type); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.Holder.Name, 0); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.Holder.LastName, 0); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "AgencyReference", vo_PurchaseConfirmRQ.AgencyReference, 0); int intHabitaciones = vo_PurchaseConfirmRQ.lServiceData.Count; int j = 0; int k = 1; int childs = 0; int Adultos = 0; int Adults = 0; bool infante = true; XmlNode objNodoGen = cDataXml.AsignarNodo(xmlDoc, "ServiceData", 0); XmlNode objNodeAgeGen = cDataXml.AsignarNodo(xmlDoc, "Customer", 0); int iInfant = 0; for (int lcostumer = 0; lcostumer < intHabitaciones; lcostumer++) { passajer = passajer + vo_PurchaseConfirmRQ.lServiceData[lcostumer].lCustomer.Count; } for (int intIndex = 0; intIndex < intHabitaciones; intIndex++) { XmlNode objNodo = null; // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo if (intIndex == 0) { objNodo = objNodoGen; objNodo2 = objNodo; } else { objNodo = objNodo2.Clone(); } if (intIndex < 1) { xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SPUI", "ServiceData", vo_PurchaseConfirmRQ.lServiceData[intIndex].SPUI, intIndex); } if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count > 0) { for (int x = 0; x < vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count; x++) { if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type == sAdulto) { XmlNode objNodoAge = null; // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo if (Adults < 1) { for (int r = 0; r < passajer - 1; r++) { objNodo = objNodeAgeGen.Clone(); cDataXml.AsignarNodo(xmlDoc, "CustomerList", intIndex).AppendChild(objNodo); } xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Name.ToString(), 0); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), 0); Adults = 1; } xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type, j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Age.ToString(), j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "CustomerId", dtAdult.Rows[Adultos]["customerId"].ToString(), j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Name.ToString(), k); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k); j++; k++; Adultos++; } } for (int x = 0; x < vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count; x++) { if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type == sInfante) { XmlNode objNodoAge = null; xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type, j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Age.ToString(), j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "CustomerId", dtCh.Rows[childs]["customerId"].ToString(), j); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k); childs++; j++; k++; } } } } string sXmlRS = sRuta + clsSolicitudesXmlHB.PurchaseConfirmRS + ".xml"; xmlDoc.InnerXml = xmlDoc.InnerXml.ToString().Replace("<LastName></LastName>", ""); xmlDoc.InnerXml = xmlDoc.InnerXml.ToString().Replace("<Name></Name>", ""); HttpContext.Current.Session["TableID"] = null; HttpContext.Current.Session["TableIDCH"] = null; string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, vo_PurchaseConfirmRQ.Credentials.UrlWebServices, clsConfiguracionHB.FormatoXml); try { cDataXml.SaveXML(sXmlRS, sResponse); } catch { } //string sResponse = xmlDoc.InnerXml; cResultados.dsResultados = cDataXml.CrearDataSet(sResponse); clsSesiones.setConfirmaHotel(cResultados.dsResultados); if (cResultados.dsResultados.Tables.Count < 5) { cParametros.Id = 0; cParametros.Code = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_CODE].ToString(); cParametros.Info = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_DETAIL_MESSAGE].ToString(); cParametros.Message = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString(); cParametros.Severity = clsSeveridad.Alta; cParametros.Tipo = clsTipoError.WebServices; cParametros.Metodo = "PurchaseConfirmRQ"; cParametros.Complemento = "Confirmacion de Hoteles"; cParametros.ViewMessage.Add("No existen resultados para esta búsqueda"); cParametros.Sugerencia.Add("Por favor intente de nuevo"); cParametros.Code = "502"; cParametros.ValidaInfo = false; cParametros.MessageBD = true; cParametros.TipoWs = Enum_ProveedorWebServices.HotelBeds; cResultados.Error = cParametros; ExceptionHandled.Publicar(cParametros); } else { cParametros.Id = 1; cResultados.Error = cParametros; } } catch (Exception Ex) { cParametros.Id = 0; cParametros.Message = Ex.Message; cParametros.Severity = clsSeveridad.Alta; cParametros.Tipo = clsTipoError.WebServices; cParametros.Metodo = "PurchaseConfirmRQ"; cParametros.Complemento = "Confirmacion de Hoteles"; cParametros.Source = Ex.Source; cParametros.StackTrace = Ex.StackTrace; cParametros.ViewMessage.Add("No existen resultados para esta búsqueda"); cParametros.Sugerencia.Add("Por favor intente de nuevo"); cParametros.Code = "502"; cParametros.ValidaInfo = false; cParametros.MessageBD = true; cParametros.TipoWs = Enum_ProveedorWebServices.HotelBeds; cResultados.Error = cParametros; ExceptionHandled.Publicar(cParametros); } return(cResultados); }