private VO_ServiceAddRQ getParametros(string sId) { VO_ServiceAddRQ vo_ServiceAddRQ = new VO_ServiceAddRQ(); VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel(); VO_HotelInfo vo_HotelInfo = new VO_HotelInfo(); VO_HotelRoom vo_HotelRoom = new VO_HotelRoom(); DataSet dsRoomType = clsSesiones.getResultadoHotel(); string sWhere = COLUMN_SELECCION + "=" + sId + ""; vo_ServiceAddRQ.Credentials = vo_HotelValuedAvailRQ.Credentials; vo_ServiceAddRQ.lHotelOccupancy = vo_HotelValuedAvailRQ.lHotelOccupancy; // Traemos la tabla DataTable dtHotelRoom = dsRoomType.Tables[TABLA_HOTEL_ROOM]; DataRow[] drHotelRoom = dtHotelRoom.Select(sWhere); vo_ServiceAddRQ.AvailToken = drHotelRoom[0][COLUMN_AVAIL_TOKEN].ToString(); vo_ServiceAddRQ.IncomingOffice = drHotelRoom[0][COLUMN_INCOMING_CODE].ToString(); vo_ServiceAddRQ.ContractName = drHotelRoom[0][COLUMN_CONTRACT_NAME].ToString(); vo_ServiceAddRQ.DateFrom = drHotelRoom[0][COLUMN_DATE_FROM].ToString(); vo_ServiceAddRQ.DateTo = drHotelRoom[0][COLUMN_DATE_TO].ToString(); vo_HotelInfo.Code = drHotelRoom[0][COLUMN_HOTEL_INFO_CODE].ToString(); vo_HotelInfo.Destination = vo_HotelValuedAvailRQ.Destination; vo_HotelRoom.BoardCode = drHotelRoom[0][COLUMN_BOARD_CODE].ToString(); vo_HotelRoom.RoomTypeCharacteristic = drHotelRoom[0][COLUMN_CHARASTERISTIC].ToString(); vo_HotelRoom.RoomTypeCode = drHotelRoom[0][COLUMN_CODE].ToString(); vo_HotelRoom.SHRUI = drHotelRoom[0][COLUMN_SHRUI].ToString(); try { for (int j = 0; j < vo_ServiceAddRQ.lHotelOccupancy.Count; j++) { VO_HotelRoom vo_HotelRoomId = new VO_HotelRoom(); vo_HotelRoomId.BoardCode = drHotelRoom[j][COLUMN_BOARD_CODE].ToString(); vo_HotelRoomId.RoomTypeCharacteristic = drHotelRoom[j][COLUMN_CHARASTERISTIC].ToString(); vo_HotelRoomId.RoomTypeCode = drHotelRoom[j][COLUMN_CODE].ToString(); vo_HotelRoomId.SHRUI = drHotelRoom[j][COLUMN_SHRUI].ToString(); vo_ServiceAddRQ.lHotelOccupancy[j].HotelRoom = vo_HotelRoomId; } } catch { } vo_ServiceAddRQ.HotelInfo = vo_HotelInfo; vo_ServiceAddRQ.HotelRoom = vo_HotelRoom; return(vo_ServiceAddRQ); }
public clsResultados getServices(string sId) { clsSerializer cDataXml = new clsSerializer(); clsResultados cResultados = new clsResultados(); clsParametros cParametros = new clsParametros(); VO_ServiceAddRQ vo_ServiceAddRQ = getParametros(sId); try { string sAdulto = clsValidaciones.GetKeyOrAdd("AdultoHB", "AD"); string sInfante = clsValidaciones.GetKeyOrAdd("InfanteHB", "CH"); string sXml = clsEstilosXmlHB.ServiceAddRQ_Hotel + ".xml"; string sRuta = clsConfiguracionHB.RutaArchivosXml; string sUrl = clsConfiguracionHB.UrlWebService; XmlDocument xmlDoc = cDataXml.RecuperarXML(sRuta, sXml); clsInterfaceWSHttp cInterface = new clsInterfaceWSHttp(); clsCredencialesHB cCredenciales = new clsCredencialesHB(); xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_ServiceAddRQ.Credentials, clsEstilosXmlHB.ServiceAddRQ_Hotel, false); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "availToken", "Service", vo_ServiceAddRQ.AvailToken); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "IncomingOffice", vo_ServiceAddRQ.IncomingOffice); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "DateFrom", vo_ServiceAddRQ.DateFrom); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "DateTo", vo_ServiceAddRQ.DateTo); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Destination", vo_ServiceAddRQ.HotelInfo.Destination); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Code", vo_ServiceAddRQ.HotelInfo.Code, 0); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_ServiceAddRQ.ContractName, 0); int intHabitaciones = vo_ServiceAddRQ.lHotelOccupancy.Count; XmlNode objNodoGen = cDataXml.AsignarNodo(xmlDoc, "AvailableRoom", 0); XmlNode objNodeAgeGen = cDataXml.AsignarNodo(xmlDoc, "GuestList", 0); int iInfant = 0; 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; } else { objNodo = objNodoGen.Clone(); } if (intIndex > 0) { cDataXml.AsignarNodo(xmlDoc, "Service", 0).AppendChild(objNodo); } xmlDoc = cDataXml.AsignarParametro(xmlDoc, "RoomCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].RoomCount.ToString(), intIndex); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "AdultCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.AdultCount.ToString(), intIndex); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "ChildCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.ChildCount.ToString(), intIndex); XmlNode objNodoOcupancy = cDataXml.AsignarNodo(xmlDoc, "Occupancy", intIndex); if (vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count == 0) { objNodoOcupancy.RemoveChild(objNodeAgeGen); } else { for (int x = 0; x < vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count; x++) { if (vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type == sInfante) { XmlNode objNodoAge = null; // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo if (x == 0) { objNodoAge = objNodeAgeGen; } else { objNodoAge = objNodeAgeGen.Clone(); } if (x > 0) { cDataXml.AsignarNodo(xmlDoc, "GuestList", intIndex).AppendChild(objNodoAge); } xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant); iInfant++; } else { XmlNode objNodoAge = null; // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo if (x == 0) { objNodoAge = objNodeAgeGen; xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant); xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant); iInfant++; } } } } //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SHRUI", "HotelRoom", vo_ServiceAddRQ.HotelRoom.SHRUI, intIndex); //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Board", vo_ServiceAddRQ.HotelRoom.BoardCode, intIndex); //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "RoomType", vo_ServiceAddRQ.HotelRoom.RoomTypeCode, intIndex); //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "characteristic", "RoomType", vo_ServiceAddRQ.HotelRoom.RoomTypeCharacteristic, intIndex); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SHRUI", "HotelRoom", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.SHRUI, intIndex); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Board", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.BoardCode, intIndex); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "RoomType", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.RoomTypeCode, intIndex); xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "characteristic", "RoomType", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.RoomTypeCharacteristic, intIndex); } string sXmlRS = sRuta + clsSolicitudesXmlHB.ServiceAddRS_Hotel + ".xml"; string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, sUrl, clsConfiguracionHB.FormatoXml); try { cDataXml.SaveXML(sXmlRS, sResponse); } catch { } //// 1 //string sXmlRS = clsSolicitudesXml.ServiceAddRS_Hotel + ".xml"; //XmlDocument xmlDocS = cDataXml.RecuperarXML(sRuta, sXmlRS); //// 1 //string sResponse = xmlDocS.InnerXml; cResultados.dsResultados = cDataXml.CrearDataSet(sResponse); clsSesiones.setReservaHotel(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 = "ServiceAddRQ"; cParametros.Complemento = "Reserva de Hoteles"; cParametros.ViewMessage.Add(cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString()); cParametros.Sugerencia.Add("Por favor intente de nuevo"); cParametros.Code = "503"; 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.Code = "503"; cParametros.Message = Ex.Message; cParametros.Severity = clsSeveridad.Alta; cParametros.Tipo = clsTipoError.WebServices; cParametros.Metodo = "ServiceAddRQ"; cParametros.Complemento = "Reserva 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.ValidaInfo = false; cParametros.MessageBD = true; cParametros.TipoWs = Enum_ProveedorWebServices.HotelBeds; cResultados.Error = cParametros; ExceptionHandled.Publicar(cParametros); } return(cResultados); }