예제 #1
0
        public async Task <IActionResult> ConfirmarCorreo(string guuid, int id)
        {
            ConfirmacionProspecto confirmacionProspecto = await _context.ConfirmacionProspectos.SingleOrDefaultAsync(x => x.Id == id);

            if (confirmacionProspecto.Guuid == guuid)
            {
                confirmacionProspecto.IsConfirmed       = true;
                confirmacionProspecto.FechaConfirmacion = DateTime.Now;
                confirmacionProspecto.IdEstado          = (int)Constants.EstadosProspectos.Confirmado;
                await _context.SaveChangesAsync();

                ViewData["IsConfirmed"] = true;

                // Auditoría 2019-06-29
                AuditoriaProspectos auditor = new AuditoriaProspectos
                {
                    FechaRegistro      = DateTime.Now,
                    IdProspecto        = confirmacionProspecto.Prospecto.IdProspecto,
                    IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                    TipoDeMovimiento   = "Confirmación de correo por parte del cliente",
                    UsuarioRegistrante = "Acción iniciada por el cliente",
                    DatosNuevos        = "N/A",
                    DatosPrevios       = "N/A"
                };
                _context.Add(auditor);
                await _context.SaveChangesAsync();
            }
            else
            {
                ViewData["IsConfirmed"] = false;
            }
            return(View());
        }
예제 #2
0
        public async Task <IActionResult> Create(IFormCollection form)
        {
            int.TryParse(s: form["NumeroDocumento"], result: out int documentoIdentidad);

            /*if (documentoIdentidad == 0 || _context.Prospectos.Count(x => x.NumeroDocumento == documentoIdentidad) > 0 || _context.Prospectos.Count(x => x.Email == form["email"].ToString().ToUpper()) > 0)
             * {
             *  return RedirectToAction("Create", new { e = (int)Constants.ErrorList.CedulaCorreoDuplicado});
             * }  */

            Prospecto prospecto = _utilities.FillProspecto(form);

            _context.Prospectos.Add(prospecto);
            await _context.SaveChangesAsync();

            ConfirmacionProspecto confirmacionProspecto = new ConfirmacionProspecto()
            {
                IdProspecto            = prospecto.IdProspecto,
                Guuid                  = Guid.NewGuid().ToString(),
                IsConfirmed            = false,
                Agencia                = int.Parse(form["Agencia"]),
                DescripcionAgencia     = form["AgenciaDescripcion"],
                TipoMedio              = int.Parse(form["TipoMedio"]),
                DescripcionTipoMedio   = form["TipoMedioDescripcion"],
                Medio                  = int.Parse(form["TipoMedioAgencia"]),
                DescripcionMedio       = form["TipoMedioAgenciaDescripcion"],
                TipoCliente            = int.Parse(form["TipoCliente"]),
                DescripcionTipoCliente = form["TipoClienteDescripcion"],
                UserId                 = _userManager.GetUserId(User),
                IdEstado               = (int)Constants.EstadosProspectos.PorConfirmarCorreo,
                FechaCreacion          = DateTime.Now,
                Observaciones          = form["observaciones"],
                Asesor                 = int.Parse(form["asesores"])
            };

            _context.ConfirmacionProspectos.Add(confirmacionProspecto);
            await _context.SaveChangesAsync();

            try
            {
            }
            catch (Exception ex)
            {
                string value = ex.Message;
            }

            EmailService        emailService = new EmailService(_emailConfiguration);
            EmailMessage        emailMessage = new EmailMessage();
            CanonicalUrlService urlService   = new CanonicalUrlService(_canonicalUrlConfiguration);



            string src = "";

            if (prospecto.IdCompania.Equals(Constants.GuuidElectro))
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "YAMAHA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailMotoMas.html";
                    break;

                case "AUTECO - BAJAJ":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailBajaj.html";
                    break;

                case "AUTECO - KAWASAKI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKawasaki.html";
                    break;

                case "AUTECO - KTM":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKtm.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailElectroplan.html";
                    break;
                }
            }
            else
            {
                emailMessage.FromAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = "Qurii", Address = "*****@*****.**"
                    }
                };
                emailMessage.ToAddresses = new List <EmailAddress>()
                {
                    new EmailAddress {
                        Name = prospecto.PrimerNombre + " " + prospecto.SegundoNombre + " " + prospecto.PrimerApellido + " " + prospecto.SegundoApellido, Address = prospecto.Email
                    }
                };
                emailMessage.Subject = "[Qurii] Verificación de correo electrónico";
                switch (prospecto.Marca_exclusiva_bien)
                {
                case "KIA":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailKiaPlan.html";
                    break;

                case "HYUNDAI":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutokoreana.html";
                    break;

                case "VOLKSWAGEN":
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;

                default:
                    src = _hostingEnvironment.WebRootPath + "/emailtemplates/ConfirmacionCorreo/ConfirmacionEmailAutofinanciera.html";
                    break;
                }
            }

            emailMessage.Content = String.Format(
                _utilities.GetTemplate(src),
                urlService.GetCanonicalUrl() + "Prospectos/confirmarcorreo/?guuid=" + confirmacionProspecto.Guuid + "&id=" + confirmacionProspecto.Id);

            try
            {
                emailService.Send(emailMessage);
                TempData["EmailResult"] = "Success";
            }
            catch (Exception ex)
            {
                TempData["EmailResult"] = "Ha ocurrido un error: " + ex.Message;
            }
            TempData.Keep("EmailREsult");

            // Auditoría 2019-06-29
            AuditoriaProspectos auditor = new AuditoriaProspectos
            {
                FechaRegistro      = DateTime.Now,
                IdProspecto        = prospecto.IdProspecto,
                IPRegistro         = HttpContext.Connection.RemoteIpAddress.ToString(),
                TipoDeMovimiento   = "Creación de prospecto",
                UsuarioRegistrante = prospecto.ConfirmacionProspecto.UserId,
                DatosNuevos        = _utilities.GetDatosJson(prospecto),
                DatosPrevios       = "N/A"
            };

            _context.Add(auditor);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Details", "Prospectos", new { id = prospecto.IdProspecto }));
        }