public async Task <Response <SunarpDto.SunarpMtcResponseModel> > ConsultaPlaca(string sPlaca)
        {
            try
            {
                var oResponse = new Response <SunarpDto.SunarpMtcResponseModel>();
                oResponse.IsSuccess = false;

                if (string.IsNullOrEmpty(sPlaca))
                {
                    oResponse.Message = "El valor de la Placa no puede estar vacio.";
                    return(oResponse);
                }

                var wsSunarp = new wsSoapSUNARP.WSVehicularMtcDelegateClient();
                var oResult  = await wsSunarp.getConsultaxPlacaMTCAsync(sPlaca.Replace("-", ""));

                if (oResult == null)
                {
                    oResponse.Message = "No se encontro información de la PLACA ingresada.";
                    return(oResponse);
                }
                if (oResult.Body == null)
                {
                    oResponse.Message = "No se encontro información de la PLACA ingresada.";
                    return(oResponse);
                }
                if (string.IsNullOrEmpty(oResult.Body.@return))
                {
                    oResponse.Message = "No se encontro información de la PLACA ingresada.";
                    return(oResponse);
                }

                var sJson = FuncConvert.XmlToJson(oResult.Body.@return);

                // DEBIDO A QUE EL SERVICIO RESPONDE DE DOS MANERAS SE ESTA USANDO UN METODO QUE NOS AYUDA A CONVERTIR DE JSON A OBJETO
                var oData = FuncConvert.TryParseJsonToObject <SunarpDto.ConsultaxPLaca, SunarpDto.ConsultaxPlacav2>(sJson);

                var oInfo = new SunarpDto.SunarpMtcResponseModel();

                // VALIDAMOS QUE TIPO DE DATO RESPONDIO
                if (oData is SunarpDto.ConsultaxPLaca)
                {
                    // SE LLENA LA INFORMACION CUANDO TRAE SOLO UN PROPIETARIO
                    var oValue = (SunarpDto.ConsultaxPLaca)oData;
                    if (oValue != null)
                    {
                        oInfo.Propietarios.Add(this._mapper.Map <SunarpDto.Propietario, SunarpDto.PropietarioSunarpMtcModel>(oValue.placa_vigente.vehiculo.Propietarios.Propietario));
                        oInfo.Vehiculo = this._mapper.Map <SunarpDto.Vehiculo, SunarpDto.VehiculoSunarpMtcModel>(oValue.placa_vigente.vehiculo);
                    }
                }
                else if (oData is SunarpDto.ConsultaxPlacav2)
                {
                    // SE LLENA LA INFORMACION CUANDO TRAE MAS DE UN PROPIETARIO
                    var oValue = (SunarpDto.ConsultaxPlacav2)oData;
                    if (oValue != null)
                    {
                        oInfo.Vehiculo = this._mapper.Map <SunarpDto.Vehiculo, SunarpDto.VehiculoSunarpMtcModel>(oValue.placa_vigente.vehiculo[0]);
                        for (var i = 0; i < oValue.placa_vigente.vehiculo.Count; i++)
                        {
                            oInfo.Propietarios.Add(this._mapper.Map <SunarpDto.Propietario, SunarpDto.PropietarioSunarpMtcModel>(oValue.placa_vigente.vehiculo[i].Propietarios.Propietario));
                        }
                    }
                }

                oResponse.IsSuccess = true;
                oResponse.Data      = oInfo;
                return(oResponse);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }