public async Task <bool> AddClientNV(Models.N.Client.ClientData client) { var service = new HttpRequestFactory(); var isError = false; var url = _configuration["AddClient:Url"]; try { var request = new BUS.AdministracionCliente.CrearClienteDatosBasicosRequest { BGBAHeader = await _objectFactory.InstantiateFromJsonFile <BUS.AdministracionCliente.BGBAHeader>(_configuration["AddClient:BGBAHeader"]), Datos = _mapper.Map <Models.N.Client.ClientData, BUS.AdministracionCliente.CrearClienteDatosBasicosRequestDatos>(client) }; var content = new SoapJsonContent(request, _configuration["AddClient:Operation"]); var response = await service.Post(url, content, _cert); dynamic soapResponse = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(JObject.Parse(response.ContentAsString()).SelectToken($"..{typeof(BUS.AdministracionCliente.CrearClienteDatosBasicosResponse).Name}"))); if (soapResponse.BGBAResultadoOperacion.Severidad == BUS.AdministracionCliente.severidad.ERROR) { throw new Exception($"{soapResponse.BGBAResultadoOperacion.Codigo} {soapResponse.BGBAResultadoOperacion.Descripcion}"); } return(true); } catch (Exception e) { isError = true; throw new Exception("Error adding the client", e); } finally { this.Communicator_TraceHandler(this, new TraceEventArgs { Description = "Add client in NV.", ElapsedTime = service.ElapsedTime, ForceDebug = false, IsError = isError, Request = service.Request, Response = service.Response, URL = url }); } }
public async Task <bool> GetClientNV(Models.N.Client.ClientData client) { var service = new HttpRequestFactory(); var isError = false; var url = _configuration["GetClient:Url"]; BUS.ConsultaCliente.BuscarClientePorDatosBasicosRequest request = null; try { request = new BUS.ConsultaCliente.BuscarClientePorDatosBasicosRequest { BGBAHeader = await _objectFactory.InstantiateFromJsonFile <BUS.ConsultaCliente.BGBAHeader>(_configuration["GetClient:BGBAHeader"]), Datos = _mapper.Map <Models.N.Client.ClientData, BUS.ConsultaCliente.Datos>(client) }; } catch (Exception e) { throw new Exception("Error generating the request", e); } try { var response = await service.Post(url, new SoapJsonContent(request, _configuration["GetClient:Operation"]), _cert); dynamic soapResponse = JsonConvert.DeserializeObject <dynamic>( JsonConvert.SerializeObject( JObject.Parse(response.ContentAsString()) .SelectToken("..BuscarClientePorDatosBasicosResponse"))); if (soapResponse.BGBAResultadoOperacion.Severidad == BUS.ConsultaCliente.severidad.ERROR) { throw new Exception($"{soapResponse.BGBAResultadoOperacion.Codigo} {soapResponse.BGBAResultadoOperacion.Descripcion}"); } try { if (soapResponse.Datos.Personas == null) { return(false); } } catch (RuntimeBinderException) { return(false); } dynamic person; if ((soapResponse as dynamic).Datos.Personas.Persona.Type == JTokenType.Array) { JArray array = ((JArray)soapResponse.Datos.Personas.Persona); person = array.FirstOrDefault(p => client.Sex.ToUpper().StartsWith(p["PersonaFisica"]["Sexo"].ToString().ToUpper()) && (client.LastName.ToUpper().Contains(p["PersonaFisica"]["NombrePersona"]["Apellido"].ToString().ToUpper()) || p["PersonaFisica"]["NombrePersona"]["Apellido"].ToString().ToUpper().Contains(client.LastName.ToUpper()))); if (person == null) { return(false); } } else { person = soapResponse.Datos.Personas.Persona; } client.HostId = person.PersonaFisica.DatosPersonaComunes.IdPersona.ToString(); if (person.PersonaFisica.DatosPersonaComunes.Domicilio != null) { var address = new Address { PostalCode = person.PersonaFisica.DatosPersonaComunes.Domicilio.CodigoPostal.ToString(), LocalityDescription = person.PersonaFisica.DatosPersonaComunes.Domicilio.NombreLocalidad.ToString(), Street = person.PersonaFisica.DatosPersonaComunes.Domicilio.Calle.ToString(), Number = person.PersonaFisica.DatosPersonaComunes.Domicilio.NumeroPuerta.ToString() }; client.Addresses.Add(address); } return(true); } catch (Exception e) { isError = true; throw new Exception("Error getting the client", e); } finally { this.Communicator_TraceHandler(this, new TraceEventArgs { Description = "Get client from NV.", ElapsedTime = service.ElapsedTime, ForceDebug = false, IsError = isError, Request = service.Request, Response = service.Response, URL = url }); } }