public static SessionCreateRQService Create() { SessionCreateRQService serviceObj = new SessionCreateRQService(); SessionCreateRS resp = new SessionCreateRS(); try { // Set user information, including security credentials and the IPCC. string username = "******"; string password = "******"; string ipcc = "4REG"; string domain = "DEFAULT"; Security security = new Security(); SecurityUsernameToken securityUserToken = new SecurityUsernameToken(); securityUserToken.Username = username; securityUserToken.Password = password; securityUserToken.Organization = ipcc; securityUserToken.Domain = domain; security.UsernameToken = securityUserToken; SessionCreateRQ req = new SessionCreateRQ(); SessionCreateRQPOS pos = new SessionCreateRQPOS(); SessionCreateRQPOSSource source = new SessionCreateRQPOSSource(); source.PseudoCityCode = ipcc; pos.Source = source; req.POS = pos; serviceObj.MessageHeaderValue = Get("SessionCreateRQ", "SessionCreate"); serviceObj.SecurityValue = security; resp = serviceObj.SessionCreateRQ(req); } catch (Exception e) { throw new Exception(e.InnerException.ToString()); } return(serviceObj); }
/// <summary> /// Calls this instance. /// </summary> public void Call() { try { var createRequestSession = new SessionCreateRQ { POS = new SessionCreateRQPOS { Source = new SessionCreateRQPOSSource { PseudoCityCode = VolarisResources.PseudoCodeCity } } }; var service = new SessionCreateRQService { MessageHeaderValue = this.GetMessageHeader(), SecurityValue = this.GetSecurityHeader(), }; Serializer.Serialize("SessionCreateRQ", createRequestSession); var response = service.SessionCreateRQ(createRequestSession); Serializer.Serialize("SessionCreateRS", response); if (response.Errors != null) { Success = false; ErrorMessage = "No se pudo establecer una enlace con volaris, verifique que tenga acceso a internet, en caso de persistir el problema reportarlo a soporte tecnico."; return; } this.SecurityToken = service.SecurityValue.BinarySecurityToken; this.ConversationID = service.MessageHeaderValue.ConversationId; Success = true; } catch (SoapException soapException) { var ed = soapException; Success = false; ErrorMessage = "No se pudo establecer una enlace con volaris, verifique que tenga acceso a internet, en caso de persistir el problema reportarlo a soporte tecnico."; } }
/// <summary> /// Creates a new session asynchronously. /// </summary> /// <param name="conversationId">The conversation identifier.</param> /// <returns>The SOAP result containing the SessionCreate response.</returns> public async Task <SoapResult <SessionCreateRS> > CreateSessionAsync(string conversationId) { SessionCreateRQ request = this.soapServiceFactory.CreateSessionCreateRequest(); SessionCreateRQService service = this.soapServiceFactory.CreateSessionCreateService(conversationId); // This is an asynchronous SOAP call. // We need to convert event-based asynchrous call to task-based one. // The event is triggered when the action is completed. // Then it sets the result and ends the task. var source = new TaskCompletionSource <SoapResult <SessionCreateRS> >(); service.SessionCreateRQCompleted += (s, e) => { if (SoapHelper.HandleErrors(e, source)) { source.TrySetResult(SoapResult <SessionCreateRS> .Success(e.Result, service.SecurityValue)); } }; service.SessionCreateRQAsync(request); // Return the asynchronous task. return(await source.Task); }
public string getSesion(VO_SessionCreateRQ vo_SessionCreateRQ) { string strSession = null; MessageHeader oMensaje = clsSabreBase.SessionCreateRQ(); clsParametros cParametros = new clsParametros(); if (oMensaje != null) { string Usuario_ = vo_SessionCreateRQ.StrUsuario; string Clave_ = vo_SessionCreateRQ.StrClave; string IPCC_ = vo_SessionCreateRQ.StrIpcc; string PCC_ = vo_SessionCreateRQ.StrPcc; string Dominio_ = vo_SessionCreateRQ.StrDominio; Security Seguridad_ = new Security(); SecurityUsernameToken SeguridadUsuario_ = new SecurityUsernameToken(); SeguridadUsuario_.Username = Usuario_; SeguridadUsuario_.Password = Clave_; SeguridadUsuario_.Organization = IPCC_; SeguridadUsuario_.Domain = Dominio_; Seguridad_.UsernameToken = SeguridadUsuario_; SessionCreateRQ.SessionCreateRQ CrearSesion_ = new SessionCreateRQ.SessionCreateRQ(); SessionCreateRQPOS CrearSesionPos_ = new SessionCreateRQPOS(); SessionCreateRQPOSSource CrearSesionSource_ = new SessionCreateRQPOSSource(); CrearSesionSource_.PseudoCityCode = PCC_; CrearSesionPos_.Source = CrearSesionSource_; CrearSesion_.POS = CrearSesionPos_; SessionCreateRQService CrearSesionServicio_ = new SessionCreateRQService(); CrearSesionServicio_.MessageHeaderValue = oMensaje; CrearSesionServicio_.SecurityValue = Seguridad_; SessionCreateRS SessionResultado_ = CrearSesionServicio_.SessionCreateRQ(CrearSesion_); if (SessionResultado_.Errors != null) { string sMensaje = clsValidaciones.GetKeyOrAdd("sMensajeSesionSabre", "En este momento hay mas de 2000 personas consultado nuestras Promociones!!!"); string sSugerencia = clsValidaciones.GetKeyOrAdd("sSugerenciaSesionSabre", "Por favor intente de nuevo en 5 minutos!!!"); /*SI OCURRE UNA EXCEPCION CUALQUIERA*/ cParametros.Id = 0; cParametros.Message = SessionResultado_.Errors.Error.ErrorMessage; cParametros.Info = SessionResultado_.Errors.Error.ErrorInfo.Message; cParametros.Code = SessionResultado_.Errors.Error.ErrorCode; cParametros.Complemento = "Error al abrir la sesion de sabre"; cParametros.Severity = SessionResultado_.Errors.Error.Severity; cParametros.Tipo = clsTipoError.WebServices; cParametros.ViewMessage.Add(sMensaje); cParametros.Sugerencia.Add(sSugerencia); clsSesiones.setParametrosError(cParametros); ExceptionHandled.Publicar(cParametros); clsValidaciones.RedirectPagina("ErrorBusqueda.aspx", true); } else { Seguridad_ = CrearSesionServicio_.SecurityValue; strSession = Seguridad_.BinarySecurityToken; cParametros.Id = 1; cParametros.TipoLog = Enum_Error.Transac; cParametros.Message = "Cerrar Sesion"; cParametros.Metodo = "_Cerrar Sesion"; cParametros.Tipo = clsTipoError.WebServices; cParametros.Severity = clsSeveridad.Moderada; try { clsCache cCache = new csCache().cCache(); if (cCache != null) { cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString(); } else { cParametros.Source = "Sesion Local: No hay cache "; } } catch { cParametros.Source = "Sesion Local: Error "; } ExceptionHandled.Publicar(cParametros); cParametros.TipoLog = Enum_Error.Log; } } return(strSession); }