コード例 #1
0
ファイル: Sunat.cs プロジェクト: PLATSM/MuniBot_NET_3.1_V2
        public int VerificarRUC(ContribuyenteDTO contribuyenteDTO)
        {
            SunatCliente sunatClient = new SunatCliente();
            var          result      = sunatClient.GetSunatAsync(contribuyenteDTO.nu_documento_identidad);

            int error_number = 0;

            switch (result.coResultado)
            {
            case "0000":
                if (result.sunatDatos.ddp_numruc is null)
                {
                    error_number = -1;
                }
                else
                {
                    if (contribuyenteDTO.no_razon_social.Trim().ToUpper() != result.sunatDatos.ddp_nombre.Trim().ToUpper())
                    {
                        error_number = -2;
                    }
                }
                break;

            case "9999":
                error_number = 9999;
                break;
            }
            ;
            return(error_number);
        }
コード例 #2
0
        public Response <DataJsonDTO> GetJsonAsync(int id_contribuyente, string no_token)
        {
            var response = new Response <DataJsonDTO>();

            ContribuyenteDTO contribuyente = new ContribuyenteDTO
            {
                id_contribuyente = id_contribuyente,
                no_token         = no_token
            };

            var json = JsonConvert.SerializeObject(contribuyente);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:4020/api/");
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + contribuyente.no_token);
                var responseTask = client.PostAsync("Contribuyente/GetJsonAsync", data);
                responseTask.Wait();

                var result   = responseTask.Result;
                var readTask = result.Content.ReadAsAsync <Response <DataJsonDTO> >();
                readTask.Wait();
                response = readTask.Result;
            }
            return(response);
        }
コード例 #3
0
        public Response <ContribuyenteDTO> GetLoginAsync(int id_empresa, string co_documento_identidad, string nu_documento_identidad, string no_contrasena)
        {
            var response = new Response <ContribuyenteDTO>();

            ContribuyenteDTO contribuyente = new ContribuyenteDTO
            {
                id_empresa             = id_empresa,
                co_documento_identidad = co_documento_identidad,
                nu_documento_identidad = nu_documento_identidad,
                no_contrasena          = no_contrasena,
                no_token = Globales.no_token
            };

            var json = JsonConvert.SerializeObject(contribuyente);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:4020/api/");
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Globales.no_token);
                var responseTask = client.PostAsync("Contribuyente/GetLoginAsync", data);
                responseTask.Wait();

                var result   = responseTask.Result;
                var readTask = result.Content.ReadAsAsync <Response <ContribuyenteDTO> >();
                readTask.Wait();

                if (result.IsSuccessStatusCode)
                {
                    response = readTask.Result;
                }
                else
                {
                    switch ((int)result.StatusCode)
                    {
                    case 401:
                        response.error_number  = (int)result.StatusCode;
                        response.error_message = "Su sesión ha expirado, vuelva a iniciar sesión";
                        break;

                    case 404:
                        response = readTask.Result;
                        response.error_number  = (int)result.StatusCode;
                        response.error_message = response.error_message;
                        break;

                    default:
                        response.error_number  = -1;
                        response.error_message = "Sucedió un error, vuelva a intentarlo.";
                        break;
                    }
                }
            }
            return(response);
        }
コード例 #4
0
        public IActionResult GetAll([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            var response = _contribuyenteApplication.GetAll(contribuyenteDTO);

            if (response.IsSuccess)
            {
                return(Ok(response));
            }

            return(BadRequest(response));
        }
コード例 #5
0
        public async Task <IActionResult> GetAllAsync([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            var response = await _contribuyenteApplication.GetAllAsync(contribuyenteDTO);

            if (response.IsSuccess)
            {
                return(Ok(response));
            }

            return(BadRequest(response));
        }
コード例 #6
0
        public ResponseQuery Delete(ContribuyenteDTO contribuyenteDTO)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            try
            {
                var contribuyente = _mapper.Map <Contribuyente>(contribuyenteDTO);
                responseQuery = _contribuyenteDomain.Delete(contribuyente);
            }
            catch (Exception e)
            {
                responseQuery.error_number  = -1;
                responseQuery.error_message = e.Message;
            }
            return(responseQuery);
        }
コード例 #7
0
        public async Task <ResponseQuery> UpdateAsync(ContribuyenteDTO contribuyenteDTO)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            try
            {
                var contribuyente = _mapper.Map <Contribuyente>(contribuyenteDTO);
                responseQuery = await _contribuyenteDomain.UpdateAsync(contribuyente);
            }
            catch (Exception e)
            {
                responseQuery.error_number  = -1;
                responseQuery.error_message = e.Message;
            }
            return(responseQuery);
        }
コード例 #8
0
        public async Task <IActionResult> GetLoginAsync([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            var response = await _contribuyenteApplication.GetLoginAsync(contribuyenteDTO.id_empresa, contribuyenteDTO.co_documento_identidad, contribuyenteDTO.nu_documento_identidad, contribuyenteDTO.no_contrasena);

            if (response.IsSuccess)
            {
                if (response.Data.error_number == 0)
                {
                    response.Data.no_token = BuildToken(response);
                    return(Ok(response));
                }
                else
                {
                    return(NotFound(response));
                }
            }
            return(BadRequest(response));
        }
コード例 #9
0
        public IActionResult Delete([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            if (contribuyenteDTO.id_contribuyente == 0)
            {
                responseQuery.error_number  = -1;
                responseQuery.error_message = "id_contribuyente no puede ser cero";
                return(BadRequest(responseQuery));
            }

            responseQuery = _contribuyenteApplication.Delete(contribuyenteDTO);
            if (responseQuery.error_number == 0)
            {
                return(Ok(responseQuery));
            }

            return(BadRequest(responseQuery));
        }
コード例 #10
0
        public IActionResult Update([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            if (contribuyenteDTO == null)
            {
                responseQuery.error_number  = -1;
                responseQuery.error_message = "contribuyenteDTO no puede ser nulo.";
                return(BadRequest(responseQuery));
            }

            responseQuery = _contribuyenteApplication.Update(contribuyenteDTO);
            if (responseQuery.error_number == 0)
            {
                return(Ok(responseQuery));
            }

            return(BadRequest(responseQuery));
        }
コード例 #11
0
        public ResponseQuery DeletetAsync(ContribuyenteDTO contribuyente)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            var json = JsonConvert.SerializeObject(contribuyente);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:4020/api/");
                var responseTask = client.PutAsync("Contribuyente/DeleteAsync", data);
                responseTask.Wait();

                var result   = responseTask.Result;
                var readTask = result.Content.ReadAsAsync <ResponseQuery>();
                readTask.Wait();
                responseQuery = readTask.Result;
            }
            return(responseQuery);
        }
コード例 #12
0
        public async Task <IActionResult> InsertAsync([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            if (contribuyenteDTO == null)
            {
                responseQuery.error_number  = -1;
                responseQuery.error_message = "contribuyenteDTO no puede ser nulo.";
                return(BadRequest(responseQuery));
            }

            responseQuery = await _contribuyenteApplication.InsertAsync(contribuyenteDTO);

            if (responseQuery.error_number == 0)
            {
                return(Ok(responseQuery));
            }

            return(BadRequest(responseQuery));
        }
コード例 #13
0
        public async Task <Response <IEnumerable <ContribuyenteDTO> > > GetAllAsync(ContribuyenteDTO contribuyenteDTO)
        {
            var response = new Response <IEnumerable <ContribuyenteDTO> >();

            try
            {
                var contribuyente  = _mapper.Map <Contribuyente>(contribuyenteDTO);
                var contribuyentes = await _contribuyenteDomain.GetAllAsync(contribuyente);

                response.Data = _mapper.Map <IEnumerable <ContribuyenteDTO> >(contribuyentes);
                if (response.Data != null)
                {
                    response.IsSuccess     = true;
                    response.error_message = "Consulta Exitosa!!!";
                }
            }
            catch (Exception e)
            {
                response.error_message = e.Message;
            }
            return(response);
        }
コード例 #14
0
        public IActionResult Get([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            if (contribuyenteDTO.id_contribuyente == 0)
            {
                return(BadRequest());
            }

            var response = _contribuyenteApplication.Get(contribuyenteDTO.id_contribuyente);

            if (response.IsSuccess)
            {
                if (response.Data.error_number == 0)
                {
                    return(Ok(response));
                }
                else
                {
                    return(NotFound(response));
                }
            }
            return(BadRequest(response));
        }
コード例 #15
0
        public async Task <IActionResult> GetJsonAsync([FromBody] ContribuyenteDTO contribuyenteDTO)
        {
            if (contribuyenteDTO.id_contribuyente == 0)
            {
                return(BadRequest());
            }

            var response = await _contribuyenteApplication.GetJsonAsync(contribuyenteDTO.id_contribuyente);

            if (response.IsSuccess)
            {
                if (response.error_number == 0)
                {
                    return(Ok(response));
                }
                else
                {
                    return(NotFound(response));
                }
            }
            return(BadRequest(response));
        }
コード例 #16
0
        public Response <ContribuyenteDTO> GetLoginAsync(string co_documento_identidad, string nu_documento_identidad, string no_contrasena)
        {
            var response = new Response <ContribuyenteDTO>();

            ContribuyenteDTO contribuyente = new ContribuyenteDTO
            {
                co_documento_identidad = co_documento_identidad,
                nu_documento_identidad = nu_documento_identidad,
                no_contrasena          = no_contrasena
            };

            var json = JsonConvert.SerializeObject(contribuyente);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:4020/api/");
                var responseTask = client.PostAsync("Contribuyente/GetLoginAsync", data);
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <Response <ContribuyenteDTO> >();
                    readTask.Wait();

                    response = readTask.Result;
                }
                else
                {
                    var readTask = result.Content.ReadAsAsync <Response <ContribuyenteDTO> >();
                    readTask.Wait();

                    response = readTask.Result;
                }
            }
            return(response);
        }
コード例 #17
0
        public Response <IEnumerable <ContribuyenteDTO> > GetAll(ContribuyenteDTO contribuyenteDTO)
        {
            var response = new Response <IEnumerable <ContribuyenteDTO> >();

            try
            {
                var contribuyente  = _mapper.Map <Contribuyente>(contribuyenteDTO);
                var contribuyentes = _contribuyenteDomain.GetAll(contribuyente);
                response.Data = _mapper.Map <IEnumerable <ContribuyenteDTO> >(contribuyentes);
                if (response.Data != null)
                {
                    response.IsSuccess     = true;
                    response.error_message = "Consulta Exitosa!!!";
                    _logger.LogInformation("Consulta Exitosa!!!");
                }
            }
            catch (Exception e)
            {
                response.error_message = e.Message;
                _logger.LogError(e.Message);
            }
            return(response);
        }
コード例 #18
0
        public ResponseQuery DeletetAsync(ContribuyenteDTO contribuyente)
        {
            ResponseQuery responseQuery = new ResponseQuery();

            var json = JsonConvert.SerializeObject(contribuyente);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:4020/api/");
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Globales.no_token);
                var responseTask = client.PutAsync("Contribuyente/DeleteAsync", data);
                responseTask.Wait();

                var result   = responseTask.Result;
                var readTask = result.Content.ReadAsAsync <ResponseQuery>();
                readTask.Wait();
                if (result.IsSuccessStatusCode)
                {
                    responseQuery = readTask.Result;
                }
                else
                {
                    if ((int)result.StatusCode == 401)
                    {
                        responseQuery.error_number  = (int)result.StatusCode;
                        responseQuery.error_message = "Su sesión ha expirado, vuelva a iniciar sesión";
                    }
                    else
                    {
                        responseQuery.error_number  = -1;
                        responseQuery.error_message = "Sucedió un error, vuelva a intentarlo.";
                    }
                }
            }
            return(responseQuery);
        }
コード例 #19
0
        protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            //Logger.LogInformation("Running dialog with Message Activity.");

            var GoMainDialog = true;

            if (turnContext.Activity.Type == ActivityTypes.Message)
            {
                var activity = turnContext.Activity;

                if (activity.Text != null && activity.Value == null)
                {
                    switch (activity.Text)
                    {
                    case "Inicio":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Iniciar Sesion":
                        GoMainDialog = false;

                        AdaptiveCardList adaptiveCardLogin = new AdaptiveCardList();
                        var loginCard = adaptiveCardLogin.CreateAttachment(2, "");
                        await turnContext.SendActivityAsync(MessageFactory.Attachment(loginCard), cancellationToken);

                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Cerrar Sesion":
                        GoMainDialog = false;

                        string mensaje = Globales.no_contribuyente;
                        Globales.OnSesion         = false;
                        Globales.id_contribuyente = 0;
                        Globales.no_token         = string.Empty;
                        Globales.no_contribuyente = string.Empty;

                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Has cerrado tu sesión {mensaje}, hasta pronto."), cancellationToken);

                        break;

                    case "Foto":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para mostrar la {activity.Text}"), cancellationToken);
                        }
                        else
                        {
                            var result = contribuyenteClient.GetAsync(Globales.id_contribuyente, Globales.no_token);
                            if (result.error_number == 0)
                            {
                                var DataJson = JsonConvert.SerializeObject(result.Data);

                                AdaptiveCardList adaptiveCardLicencia = new AdaptiveCardList();
                                var ContribuyenteCard = adaptiveCardLicencia.CreateAttachment(8, DataJson);
                                await turnContext.SendActivityAsync(MessageFactory.Attachment(ContribuyenteCard), cancellationToken);

                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);
                            }
                            else
                            {
                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);
                            }
                        }
                        break;

                    case "Crear una cuenta":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(5, "Seleccione Tipo de Persona:"), cancellationToken);

                        break;

                    case "Crear Cuenta Persona Natural":
                        GoMainDialog = false;
                        AdaptiveCardList adaptiveCardNatural = new AdaptiveCardList();
                        var PersonaNaturalCard = adaptiveCardNatural.CreateAttachment(1, "");
                        await turnContext.SendActivityAsync(MessageFactory.Attachment(PersonaNaturalCard), cancellationToken);

                        await Task.Delay(500);

                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Crear Cuenta Persona Juridica":
                        GoMainDialog = false;
                        AdaptiveCardList adaptiveCardJuridica = new AdaptiveCardList();
                        var PersonaJuridicaCard = adaptiveCardJuridica.CreateAttachment(4, "");
                        await turnContext.SendActivityAsync(MessageFactory.Attachment(PersonaJuridicaCard), cancellationToken);

                        await Task.Delay(500);

                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Seleccionar Trámite":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(1, ""), cancellationToken);

                        break;

                    case "Trámite Licencia de Funcionamiento":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(2, ""), cancellationToken);

                        break;

                    case "Nuevo Trámite Licencia de Funcionamiento":
                        if (Globales.OnSesion == false)
                        {
                            GoMainDialog = false;
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar {activity.Text}"), cancellationToken);
                        }
                        break;

                    case "Consultar Licencias de Funcionamiento":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar {activity.Text}"), cancellationToken);
                        }
                        else
                        {
                            // Obtiene la información del contribuyente
                            var resultado = contribuyenteClient.GetJsonAsync(Globales.id_contribuyente, Globales.no_token);

                            if (resultado.error_number == 0)
                            {
                                AdaptiveCardList adaptiveCardLicencia = new AdaptiveCardList();
                                var LicenciaCard = adaptiveCardLicencia.CreateAttachment(5, resultado.Data.no_data_json);
                                await turnContext.SendActivityAsync(MessageFactory.Attachment(LicenciaCard), cancellationToken);

                                await Task.Delay(500);

                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);
                            }
                            else
                            {
                                await Task.Delay(500);

                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, resultado.error_message), cancellationToken);
                            }
                        }
                        break;

                    case "Requisitos Licencia de Funcionamiento":
                        GoMainDialog = true;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Trámite Impuesto de Alcabala":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(3, ""), cancellationToken);

                        break;

                    case "Nuevo Trámite Impuesto de Alcabala":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar un {activity.Text}"), cancellationToken);
                        }
                        break;

                    case "Consultar Trámites Impuesto de Alcabala":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar {activity.Text}"), cancellationToken);
                        }
                        break;

                    case "Requisitos Impuesto de Alcabala":
                        GoMainDialog = true;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;

                    case "Trámite Impuesto Vehicular":
                        GoMainDialog = false;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(4, ""), cancellationToken);

                        break;

                    case "Nuevo Trámite Impuesto Vehicular":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar {activity.Text}"), cancellationToken);
                        }
                        break;

                    case "Consultar Trámites Impuesto Vehicular":
                        GoMainDialog = false;

                        if (Globales.OnSesion == false)
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Debe **Iniciar Sesión** para realizar {activity.Text}"), cancellationToken);
                        }
                        break;

                    case "Requisitos Impuesto Vehicular":
                        GoMainDialog = true;
                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);

                        break;
                    }
                }

                if (string.IsNullOrWhiteSpace(activity.Text) && activity.Value != null)
                {
                    //activity.Text = JsonConvert.SerializeObject(activity.Value);

                    JObject InfoCard = JObject.Parse(activity.Value.ToString());
                    string  idCard   = (string)InfoCard["id"];

                    switch (idCard)
                    {
                    case "LoginCard":
                        GoMainDialog = false;

                        if (
                            string.IsNullOrEmpty(InfoCard.GetValue("cboTipoDocumento").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtNumeroDocumento").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtContrasena").ToString()))
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Ingrese documento de identidad/contraseña"), cancellationToken);
                        }
                        else
                        {
                            var co_documento_identidad = InfoCard.GetValue("cboTipoDocumento").ToString();
                            var nu_documento_identidad = InfoCard.GetValue("txtNumeroDocumento").ToString();
                            var no_contrasena          = Funciones.GetSHA256(InfoCard.GetValue("txtContrasena").ToString());

                            var result = contribuyenteClient.GetLoginAsync(Globales.id_empresa, co_documento_identidad, nu_documento_identidad, no_contrasena);

                            if (result.error_number == 0)
                            {
                                Globales.OnSesion         = true;
                                Globales.no_token         = result.Data.no_token;
                                Globales.id_contribuyente = result.Data.id_contribuyente;
                                if (result.Data.co_tipo_persona == "0002")     // 0002=Persona Juridica
                                {
                                    Globales.no_contribuyente = result.Data.no_razon_social;
                                }
                                else
                                {
                                    Globales.no_contribuyente = result.Data.no_nombres + ' ' + result.Data.no_apellido_paterno + ' ' + result.Data.no_apellido_materno;
                                }

                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"Hola {Globales.no_contribuyente}, en que te puedo ayudar?"), cancellationToken);
                            }
                            else
                            {
                                Globales.OnSesion         = false;
                                Globales.id_contribuyente = 0;
                                Globales.no_token         = string.Empty;
                                Globales.no_contribuyente = string.Empty;
                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"{result.error_message}"), cancellationToken);
                            }
                        }
                        break;

                    case "PersonaNaturalNewCard":
                        GoMainDialog = false;
                        if
                        (
                            string.IsNullOrEmpty(InfoCard.GetValue("txtNombres").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtApellidoPaterno").ToString()) ||
                            // string.IsNullOrEmpty(InfoCard.GetValue("txtApellidoMaterno").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtFechaNacimiento").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("cboSexo").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("cboTipoDocumento").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtDocumentoIdentidad").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtCorreoElectronico").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtTelefono").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtDireccion").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtContrasena").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtVerificarContrasena").ToString())
                        )
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Todos los campos son obligatorios."), cancellationToken);
                        }
                        else
                        {
                            if (InfoCard.GetValue("txtContrasena").ToString() != InfoCard.GetValue("txtVerificarContrasena").ToString())
                            {
                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Contraseña y Verificar Contraseña deben ser iguales."), cancellationToken);
                            }
                            else
                            {
                                ContribuyenteDTO contribuyenteDTO = new ContribuyenteDTO();
                                contribuyenteDTO.id_empresa             = 1;
                                contribuyenteDTO.no_nombres             = InfoCard.GetValue("txtNombres").ToString();
                                contribuyenteDTO.no_apellido_paterno    = InfoCard.GetValue("txtApellidoPaterno").ToString();
                                contribuyenteDTO.no_apellido_materno    = InfoCard.GetValue("txtApellidoMaterno").ToString();
                                contribuyenteDTO.fe_nacimiento          = InfoCard.GetValue("txtFechaNacimiento").ToString();
                                contribuyenteDTO.co_sexo                = InfoCard.GetValue("cboSexo").ToString();
                                contribuyenteDTO.co_documento_identidad = InfoCard.GetValue("cboTipoDocumento").ToString();
                                contribuyenteDTO.nu_documento_identidad = InfoCard.GetValue("txtDocumentoIdentidad").ToString();
                                contribuyenteDTO.no_correo_electronico  = InfoCard.GetValue("txtCorreoElectronico").ToString();
                                contribuyenteDTO.nu_telefono            = InfoCard.GetValue("txtTelefono").ToString();
                                contribuyenteDTO.no_direccion           = InfoCard.GetValue("txtDireccion").ToString();
                                contribuyenteDTO.no_contrasena          = InfoCard.GetValue("txtContrasena").ToString();
                                contribuyenteDTO.no_contrasena_sha256   = Funciones.GetSHA256(InfoCard.GetValue("txtContrasena").ToString());
                                contribuyenteDTO.id_usuario_creacion    = 2;  // (2=Bot)

                                // Verificar Informacion en RENIEC
                                var numero = _reniecPIDE.VerificarDNI(contribuyenteDTO);

                                switch (numero)
                                {
                                case 0:
                                    var result = contribuyenteClient.InsertAsync(contribuyenteDTO);

                                    if (result.error_number == 0)
                                    {
                                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Se ha creado su cuenta exitosamente."), cancellationToken);
                                    }
                                    else
                                    {
                                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"{result.error_message}"), cancellationToken);
                                    }
                                    break;

                                case -1:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Los datos ingresados no coinciden con la información de RENIEC."), cancellationToken);

                                    break;

                                case 999:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "No se ha encontrado información para el número de DNI."), cancellationToken);

                                    break;

                                case 1000:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Uno o más datos de la petición no son válidos."), cancellationToken);

                                    break;

                                case 1001:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "El DNI, RUC y contraseña no corresponden a un usuario válido."), cancellationToken);

                                    break;

                                case 1002:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "La contraseña para el DNI y RUC está caducada."), cancellationToken);

                                    break;

                                case 1003:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Se ha alcanzado el límite de consultas permitidas por día."), cancellationToken);

                                    break;

                                case 1999:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Error desconocido / inesperado."), cancellationToken);

                                    break;

                                default:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Sucedió un problema, intente otra vez."), cancellationToken);

                                    break;
                                }
                            }
                        }
                        break;

                    case "PersonaJuridicaNewCard":
                        GoMainDialog = false;
                        if
                        (
                            string.IsNullOrEmpty(InfoCard.GetValue("txtRazonSocial").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtRepresentanteLegal").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("cboTipoDocumento").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtDocumentoIdentidad").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtCorreoElectronico").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtTelefono").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtDireccion").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtContrasena").ToString()) ||
                            string.IsNullOrEmpty(InfoCard.GetValue("txtVerificarContrasena").ToString())
                        )
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Todos los campos son obligatorios."), cancellationToken);
                        }
                        else
                        {
                            if (InfoCard.GetValue("txtContrasena").ToString() != InfoCard.GetValue("txtVerificarContrasena").ToString())
                            {
                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Contraseña y Verificar Contraseña deben ser iguales."), cancellationToken);
                            }
                            else
                            {
                                ContribuyenteDTO contribuyenteDTO = new ContribuyenteDTO();
                                contribuyenteDTO.id_empresa             = 1;
                                contribuyenteDTO.no_razon_social        = InfoCard.GetValue("txtRazonSocial").ToString();
                                contribuyenteDTO.no_representante_legal = InfoCard.GetValue("txtRepresentanteLegal").ToString();
                                contribuyenteDTO.co_documento_identidad = InfoCard.GetValue("cboTipoDocumento").ToString();
                                contribuyenteDTO.nu_documento_identidad = InfoCard.GetValue("txtDocumentoIdentidad").ToString();
                                contribuyenteDTO.no_correo_electronico  = InfoCard.GetValue("txtCorreoElectronico").ToString();
                                contribuyenteDTO.nu_telefono            = InfoCard.GetValue("txtTelefono").ToString();
                                contribuyenteDTO.no_direccion           = InfoCard.GetValue("txtDireccion").ToString();
                                contribuyenteDTO.no_contrasena          = InfoCard.GetValue("txtContrasena").ToString();
                                contribuyenteDTO.no_contrasena_sha256   = Funciones.GetSHA256(InfoCard.GetValue("txtContrasena").ToString());
                                contribuyenteDTO.id_usuario_creacion    = 2;  // (2=Bot)

                                // Verificar Informacion en SUNAT
                                var numero = _sunatPIDE.VerificarRUC(contribuyenteDTO);
                                switch (numero)
                                {
                                case 0:
                                    var result = contribuyenteClient.InsertAsync(contribuyenteDTO);

                                    if (result.error_number == 0)
                                    {
                                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Se ha creado su cuenta exitosamente."), cancellationToken);
                                    }
                                    else
                                    {
                                        await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"{result.error_message}"), cancellationToken);
                                    }
                                    break;

                                case -1:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Número de RUC errado, no está registrado en SUNAT."), cancellationToken);

                                    break;

                                case -2:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Los datos no coinciden con la información de SUNAT."), cancellationToken);

                                    break;

                                case 999:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "No se ha encontrado información para el número RUC ingresado."), cancellationToken);

                                    break;

                                default:
                                    await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Sucedió un problema, intente otra vez."), cancellationToken);

                                    break;
                                }
                            }
                        }
                        break;

                    case "ConsultarIdSolicitudLicencia":
                        GoMainDialog = false;

                        if (string.IsNullOrEmpty(InfoCard.GetValue("txtNumeroSolicitud").ToString()))
                        {
                            await turnContext.SendActivityAsync(MenuBot.Buttons(0, "Debe ingresar un número de Solicitud."), cancellationToken);
                        }
                        else
                        {
                            SolicitudLicenciaDTO solicitudLicenciaDTO = new SolicitudLicenciaDTO();
                            solicitudLicenciaDTO.id_solicitud_licencia = 0;
                            solicitudLicenciaDTO.id_contribuyente      = Globales.id_contribuyente;
                            solicitudLicenciaDTO.nu_solicitud_licencia = InfoCard.GetValue("txtNumeroSolicitud").ToString();

                            SolicitudLicenciaClient solicitudLicenciaClient = new SolicitudLicenciaClient();
                            var result = solicitudLicenciaClient.GetAsync(solicitudLicenciaDTO);

                            if (result.error_number == 0)
                            {
                                var dataJson = JsonConvert.SerializeObject(result.Data);
                                AdaptiveCardList adaptiveCardLicencia = new AdaptiveCardList();
                                var LicenciaCard = adaptiveCardLicencia.CreateAttachment(6, dataJson);
                                await turnContext.SendActivityAsync(MessageFactory.Attachment(LicenciaCard), cancellationToken);

                                await Task.Delay(500);

                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, ""), cancellationToken);
                            }
                            else
                            {
                                await turnContext.SendActivityAsync(MenuBot.Buttons(0, $"{result.error_message}"), cancellationToken);
                            }
                        }
                        break;
                    }
                }
            }

            // Run the Dialog with the new message Activity.
            if (GoMainDialog)
            {
                await Dialog.RunAsync(turnContext, ConversationState.CreateProperty <DialogState>(nameof(DialogState)), cancellationToken);
            }
        }
コード例 #20
0
        public int VerificarDNI(ContribuyenteDTO contribuyenteDTO)
        {
            ReniecClient reniecClient = new ReniecClient();
            var          result       = reniecClient.GetReniecAsync(contribuyenteDTO.nu_documento_identidad);

            int error_number = 0;

            switch (result.coResultado)
            {
            case "0000":

                if (result.reniecDatos.prenombres != null)
                {
                    if (contribuyenteDTO.no_nombres.Trim().ToUpper() != result.reniecDatos.prenombres.Trim().ToUpper())
                    {
                        error_number = -1;
                    }
                }

                if (result.reniecDatos.apPrimer != null)
                {
                    if (contribuyenteDTO.no_apellido_paterno.Trim().ToUpper() != result.reniecDatos.apPrimer.Trim().ToUpper())
                    {
                        error_number = -1;
                    }
                }

                if (result.reniecDatos.apSegundo != null)
                {
                    if (contribuyenteDTO.no_apellido_materno.Trim().ToUpper() != result.reniecDatos.apSegundo.Trim().ToUpper())
                    {
                        error_number = -1;
                    }
                }

                if (error_number == 0)
                {
                    if (result.reniecDatos.foto != null)
                    {
                        contribuyenteDTO.foto = result.reniecDatos.foto;
                    }
                }
                break;

            case "0001":
                error_number = 1;
                break;

            case "0999":
                error_number = 999;
                break;

            case "1000":
                error_number = 1000;
                break;

            case "1001":
                error_number = 1001;
                break;

            case "1002":
                error_number = 1002;
                break;

            case "1003":
                error_number = 1003;
                break;

            case "1999":
                error_number = 1999;
                break;
            }
            ;

            return(error_number);
        }