public async Task <JsonResult> EditarSector(int sectorId, string nombreSector, List <Posiciones> arreglo) { if (string.IsNullOrEmpty(nombreSector) || arreglo.Count <= 2) { return(Json(false)); } var lista = new List <PuntoSector>(); foreach (var item in arreglo) { // item.latitud = item.latitud.Replace(".", ","); //item.longitud = item.longitud.Replace(".", ","); lista.Add(new PuntoSector { Latitud = Convert.ToDouble(item.latitud), Longitud = Convert.ToDouble(item.longitud) }); } var sector = new SectorViewModel { Sector = new Sector { NombreSector = nombreSector, SectorId = sectorId }, PuntoSector = lista, }; var response = await ApiServicio.InsertarAsync(sector, new Uri(WebApp.BaseAddress), "api/Sectors/EditarSector"); if (!response.IsSuccess) { return(Json(false)); } return(Json(true)); }
public async Task <ActionResult> Create(Agente agente) { if (!ModelState.IsValid) { ViewBag.SectorId = new SelectList(await obtenerSectoresPorEmpresa(), "SectorId", "NombreSector", agente.SectorId); return(View(agente)); } IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity; string nombreUsuario = ci.Identity.Name; var administrador = new Administrador { Nombre = nombreUsuario }; administrador = await ProveedorAutenticacion.GetUser(administrador); var codificar = CodificarHelper.SHA512(new Codificar { Entrada = agente.Nombre }); agente.Contrasena = codificar.Salida; agente.EmpresaId = administrador.EmpresaId; var response = await ApiServicio.InsertarAsync(agente, new Uri(WebApp.BaseAddress), "api/Agentes/CreateAgente"); if (!response.IsSuccess) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(RedirectToAction("Index", "Agentes")); }
public async Task <ActionResult> Create(Vendedor vendedor) { if (!ModelState.IsValid) { return(View(vendedor)); } IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity; string nombreUsuario = ci.Identity.Name; var administrador = new Administrador { Nombre = nombreUsuario }; administrador = await ProveedorAutenticacion.GetUser(administrador); var codificar = CodificarHelper.SHA512(new Codificar { Entrada = vendedor.Nombre }); vendedor.Contrasena = codificar.Salida; vendedor.EmpresaId = administrador.EmpresaId; var response = await ApiServicio.InsertarAsync(vendedor, new Uri(WebApp.BaseAddress), "api/Vendedors/CreateVendedor"); if (!response.IsSuccess) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(RedirectToAction("Index", "Vendedores")); }
public async Task <ActionResult> Create(SalarioBasico salarioBasico) { if (!ModelState.IsValid) { return(View(salarioBasico)); } IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity; string nombreUsuario = ci.Identity.Name; var administrador = new Administrador { Nombre = nombreUsuario }; administrador = await ProveedorAutenticacion.GetUser(administrador); salarioBasico.EmpresaId = administrador.EmpresaId; var response = await ApiServicio.InsertarAsync(salarioBasico, new Uri(WebApp.BaseAddress), "api/SalariosBasicos/CreateSalarioBasico"); if (!response.IsSuccess) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(RedirectToAction("Index")); }
public async Task <JsonResult> ListaClientes() { var lista = new List <ClienteRequest>(); SupervisorRequest supervisorRequest = new SupervisorRequest(); VendedorRequest vendedorRequest = new VendedorRequest(); int idEmpresaInt = 0;; try { ApplicationDbContext db = new ApplicationDbContext(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); // obtener el idEmpresa var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; // convertir el idEmpresa a int idEmpresaInt = Convert.ToInt32(idEmpresa); //** agregar el idEmpresa al vendedorRequest ** vendedorRequest.idEmpresa = idEmpresaInt; var idUsuarioActual = User.Identity.GetUserId(); supervisorRequest.IdUsuario = idUsuarioActual; supervisorRequest.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { // obtener el Id del supervisor Response response = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/obtenerSupervisorPorIdUsuario"); supervisorRequest = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); //** agregar el id del supervisor al vendedorRequest ** vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor; } lista = await ApiServicio.ObtenerElementoAsync1 <List <ClienteRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/ListarClientesPorSupervisor"); return(Json(lista)); } catch (Exception ex) { return(Json(false)); } }
public async Task <ActionResult> EnviarCorreo(InfoRequest info) { var respuesta = await ApiServicio.InsertarAsync <Response>(info, new Uri(WebApp.BaseAddress) , "api/Informacion/Generar"); return (RedirectToAction("Index")); }
public async Task <JsonResult> Cargar() { SupervisorRequest supervisorRequest = new SupervisorRequest(); try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; int idEmpresaInt = Convert.ToInt32(idEmpresa); ApplicationDbContext db = new ApplicationDbContext(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var idUsuarioActual = User.Identity.GetUserId(); var lista = new Response(); supervisorRequest.IdUsuario = idUsuarioActual; supervisorRequest.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { lista = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/LogRutaVendedors/VendedoresPorSupervisor"); } else if (userManager.IsInRole(idUsuarioActual, "GerenteGeneral")) { Empresa empresa = new Empresa() { IdEmpresa = idEmpresaInt, }; lista = await ApiServicio.InsertarAsync(empresa, new Uri(WebApp.BaseAddress), "api/LogRutaVendedors/VendedoresPorEmpresa"); } if (lista.IsSuccess) { var listaVendedor = JsonConvert.DeserializeObject <List <VendedorPositionRequest> >(lista.Resultado.ToString()); List <VendedorPositionRequest> listaVendedores = new List <VendedorPositionRequest>(); foreach (var vendedor in listaVendedor) { vendedor.urlFoto = string.IsNullOrEmpty(vendedor.urlFoto) != true?vendedor.urlFoto.Replace("~", WebApp.BaseAddress) : ""; listaVendedores.Add(vendedor); } // var f = (DateTime)(listaVendedor.FirstOrDefault().fecha.Date); return(Json(listaVendedor)); } else { return(Json(false)); } } catch (Exception ex) { //InicializarMensaje(Mensaje.Excepcion); //lista.FirstOrDefault().NumeroMenu = 1; return(Json(false)); } }
public async Task <ActionResult> Compromisos(SupervisorRequest supervisorRequest) { //bUSCA LA EMPRESA var idEmpresaInt = 0; try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); return(View()); } //FIN SupervisorRequest supervisorRequest1 = new SupervisorRequest(); ApplicationDbContext db = new ApplicationDbContext(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var idUsuarioActual = User.Identity.GetUserId(); supervisorRequest1.IdUsuario = idUsuarioActual; supervisorRequest1.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { Response response = await ApiServicio.InsertarAsync(supervisorRequest1, new Uri(WebApp.BaseAddress), "api/Vendedores/obtenerSupervisorPorIdUsuario"); supervisorRequest1 = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); supervisorRequest.IdSupervisor = supervisorRequest1.IdSupervisor; var lista = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest, new Uri(WebApp.BaseAddress) , "api/Vista/ListarVisitas"); supervisorRequest.Listarcompromiso = lista.Listarcompromiso; var listavendedor = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest, new Uri(WebApp.BaseAddress) , "api/Vendedores/ListarVendedoresGerente"); ViewBag.IdVendedor = new SelectList(listavendedor.ListaVendedores, "IdVendedor", "NombreApellido"); supervisorRequest.ListaVendedores = listavendedor.ListaVendedores; return(View(supervisorRequest)); } return(View()); }
public async Task <JsonResult> InsertarSector(string nombreSector, List <Posiciones> arreglo) { if (string.IsNullOrEmpty(nombreSector) || arreglo.Count <= 2) { return(Json(false)); } IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity; string nombreUsuario = ci.Identity.Name; var administrador = new Administrador { Nombre = nombreUsuario }; administrador = await ProveedorAutenticacion.GetUser(administrador); var lista = new List <PuntoSector>(); foreach (var item in arreglo) { //item.latitud=item.latitud.Replace(".", ","); //item.longitud=item.longitud.Replace(".", ","); lista.Add(new PuntoSector { Latitud = Convert.ToDouble(item.latitud), Longitud = Convert.ToDouble(item.longitud) }); } var sector = new SectorViewModel { Sector = new Sector { NombreSector = nombreSector, EmpresaId = administrador.EmpresaId }, PuntoSector = lista, }; var response = await ApiServicio.InsertarAsync(sector, new Uri( WebApp.BaseAddress), "/api/Sectors/InsertarSector"); if (!response.IsSuccess) { return(Json(false)); } return(Json(true)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, IdEmpresa = model.IdEmpresa }; var result = await UserManager.CreateAsync(user, model.Password); //Aqui se debe crear el rol de gerente UserManager.AddToRoles(user.Id, "GerenteGeneral"); var gerente = new Gerente() { IdUsuario = user.Id }; var response = await ApiServicio.InsertarAsync <Gerente>(gerente, new Uri(WebApp.BaseAddress), "Api/Gerentes"); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // Para obtener más información sobre cómo habilitar la confirmación de cuentas y el restablecimiento de contraseña, visite https://go.microsoft.com/fwlink/?LinkID=320771 // Enviar correo electrónico con este vínculo // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirmar cuenta", "Para confirmar la cuenta, haga clic <a href=\"" + callbackUrl + "\">aquí</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario return(View(model)); }
public async Task <ActionResult> Create(HttpPostedFileBase fileUpload, string Latitud, string Longitud, ClienteRequest clienteRequest) { try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; var lat = Latitud.Replace(".", ","); var lon = Longitud.Replace(".", ","); clienteRequest.Latitud = Convert.ToDouble(lat); clienteRequest.Longitud = Convert.ToDouble(lon); var cliente = new ClienteRequest { Identificacion = clienteRequest.Identificacion, IdEmpresa = Convert.ToInt32(idEmpresa), }; var respuesta = await ApiServicio.ObtenerElementoAsync1 <Response>(cliente, new Uri(WebApp.BaseAddress) , "api/Clientes/ExisteClientePorEmpresa"); if (respuesta == null) { ModelState.AddModelError("", "Ha ocurrido un error al conectarse al servicio..."); await CargarCombos(); return(View(clienteRequest)); } if (respuesta.IsSuccess == true) { ModelState.AddModelError("Identificacion", "El cliente ya existe..."); await CargarCombos(); clienteRequest.Identificacion = ""; return(View(clienteRequest)); } cliente.Apellido = clienteRequest.Apellido; cliente.Direccion = clienteRequest.Direccion; cliente.Email = clienteRequest.Email; cliente.IdTipoCliente = Convert.ToInt32(clienteRequest.IdTipoCliente); cliente.IdVendedor = Convert.ToInt32(clienteRequest.IdVendedor); cliente.Latitud = Convert.ToDouble(clienteRequest.Latitud); cliente.Longitud = Convert.ToDouble(clienteRequest.Longitud); cliente.Nombre = clienteRequest.Nombre; cliente.Telefono = clienteRequest.Telefono; cliente.TelefonoMovil = clienteRequest.TelefonoMovil; cliente.RazonSocial = clienteRequest.RazonSocial; cliente.Estado = EstadoCliente.Activo; var respuestaInsertar = await ApiServicio.InsertarAsync <Response>(cliente, new Uri(WebApp.BaseAddress) , "api/Clientes/InsertarCliente"); if (respuestaInsertar.IsSuccess) { if (fileUpload != null) { var clienteSalvado = JsonConvert.DeserializeObject <ClienteRequest>(respuestaInsertar.Resultado.ToString()); var fichero = readFileContents(fileUpload); var foto = new ArchivoRequest { Id = Convert.ToString(clienteSalvado.IdCliente), Array = fichero, Tipo = 1 }; var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress) , "Api/Archivos/Insertar"); if (fotoRequest.IsSuccess) { var clienteActualizarFoto = new ClienteRequest { IdCliente = clienteSalvado.IdCliente, Foto = fotoRequest.Resultado.ToString(), }; var fotoActualizar = await ApiServicio.InsertarAsync <Response>(clienteActualizarFoto, new Uri(WebApp.BaseAddress) , "api/Clientes/EditarFotoCliente"); if (fotoActualizar.IsSuccess) { return(RedirectToAction("Index", EstadoCliente.Activo)); } } } return(RedirectToAction("Index", EstadoCliente.Activo)); } return(RedirectToAction("Index", EstadoCliente.Activo)); } catch (Exception ex) { throw; } }
public async Task <ActionResult> CalendarioIndex(int idVendedor) { SupervisorRequest supervisorRequest = new SupervisorRequest(); VendedorRequest vendedorRequest = new VendedorRequest(); var lista = new List <VendedorRequest>(); int idEmpresaInt = 0; try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); vendedorRequest.idEmpresa = idEmpresaInt; vendedorRequest.IdVendedor = idVendedor; } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); return(View(lista)); } try { // Obtener supervisor ApplicationDbContext db = new ApplicationDbContext(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var idUsuarioActual = User.Identity.GetUserId(); supervisorRequest.IdUsuario = idUsuarioActual; supervisorRequest.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { Response response = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/obtenerSupervisorPorIdUsuario"); supervisorRequest = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor; } // Carga de combo lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress) , "api/Vendedores/ListarVendedoresPorSupervisor"); lista.Add(new VendedorRequest { IdVendedor = 0, NombreApellido = "Seleccione" }); lista = lista.OrderBy(x => x.IdVendedor).ToList(); ViewBag.IdVendedor = new SelectList(lista, "IdVendedor", "NombreApellido"); // Lista de eventos para cargar la agenda var listaEventos = await ApiServicio.ObtenerElementoAsync1 <List <EventoRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress) , "api/Agendas/ListarEventosPorVendedor"); return(View(listaEventos)); } catch (Exception ex) { InicializarMensaje(Mensaje.Excepcion); return(View()); } }
public async Task <ActionResult> EditarVendedor(HttpPostedFileBase fileUpload, VendedorRequest vendedorRequest) { InicializarMensaje(Mensaje.GuardadoSatisfactorio); int idEmpresaInt = 0; try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); vendedorRequest.idEmpresa = idEmpresaInt; vendedorRequest.TiempoSeguimiento = 5; } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); return(View(vendedorRequest)); } if (!ModelState.IsValid) { InicializarMensaje(Mensaje.ModeloInvalido); return(View(vendedorRequest)); } Response response = new Response(); ApplicationDbContext db = new ApplicationDbContext(); using (var transaction = db.Database.BeginTransaction()) { try { var userManager2 = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo); if (InstanciaUsuario != null && InstanciaUsuario.Id != vendedorRequest.IdUsuario) { InicializarMensaje(Mensaje.ExisteCorreo); return(View(vendedorRequest)); } var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/BuscarUsuariosVendedoresPorEmpresaEIdentificacion"); if (ExisteUsuario.Count > 0) { for (int i = 0; i < ExisteUsuario.Count; i++) { if (ExisteUsuario.ElementAt(i).IdUsuario != vendedorRequest.IdUsuario) { InicializarMensaje(Mensaje.ExisteIdentificacionUsuario); return(View(vendedorRequest)); } } } var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); InstanciaUsuario = await userManager.FindByIdAsync(vendedorRequest.IdUsuario); InstanciaUsuario.UserName = vendedorRequest.Correo; InstanciaUsuario.Email = vendedorRequest.Correo; InstanciaUsuario.Identificacion = vendedorRequest.Identificacion; InstanciaUsuario.Nombres = vendedorRequest.Nombres; InstanciaUsuario.Apellidos = vendedorRequest.Apellidos; InstanciaUsuario.Direccion = vendedorRequest.Direccion; InstanciaUsuario.Telefono = vendedorRequest.Telefono; InstanciaUsuario.Estado = 1; InstanciaUsuario.IdEmpresa = idEmpresaInt; db.Entry(InstanciaUsuario).State = EntityState.Modified; await db.SaveChangesAsync(); response = await ApiServicio.InsertarAsync(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/EditarVendedor"); if (response.IsSuccess) { if (fileUpload != null) { var idVendedor = response.Resultado; var fichero = readFileContents(fileUpload); var foto = new ArchivoRequest { Id = Convert.ToString(vendedorRequest.IdVendedor), Array = fichero, Tipo = 3 }; var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress) , "Api/Archivos/Insertar"); if (fotoRequest.IsSuccess) { InstanciaUsuario.Foto = fotoRequest.Resultado.ToString(); db.Entry(InstanciaUsuario).State = EntityState.Modified; await db.SaveChangesAsync(); transaction.Commit(); return(RedirectToAction("VendedorIndex", new { mensaje = response.Message })); } else { transaction.Rollback(); return(RedirectToAction("VendedorIndex", new { mensaje = Mensaje.Error })); } } else { transaction.Commit(); return(RedirectToAction("VendedorIndex", new { mensaje = response.Message })); } } transaction.Rollback(); ViewData["Error"] = response.Message; return(View(vendedorRequest)); } catch (Exception ex) { transaction.Rollback(); ViewData["Error"] = response.Message; return(View(vendedorRequest)); } } }
public async Task <ActionResult> VendedorIndex(string mensaje) { List <VendedorRequest> lista = new List <VendedorRequest>(); VendedorRequest vendedorRequest = new VendedorRequest(); SupervisorRequest supervisorRequest = new SupervisorRequest(); int idEmpresaInt = 0; Response response = new Response(); InicializarMensaje(mensaje); try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); vendedorRequest.idEmpresa = idEmpresaInt; } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); return(View(lista)); } try { ApplicationDbContext db = new ApplicationDbContext(); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var idUsuarioActual = User.Identity.GetUserId(); supervisorRequest.IdUsuario = idUsuarioActual; supervisorRequest.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { response = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/obtenerSupervisorPorIdUsuario"); supervisorRequest = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor; lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/ListarVendedoresPorSupervisor"); } else //(userManager.IsInRole(idUsuarioActual, "GerenteComercial")) { lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/ListarVendedores"); } lista.FirstOrDefault().NumeroMenu = 1; return(View(lista)); } catch (Exception ex) { //InicializarMensaje(Mensaje.Excepcion); //lista.FirstOrDefault().NumeroMenu = 1; return(View(lista)); } }
public async Task <ActionResult> CrearVendedor(HttpPostedFileBase fileUpload, VendedorRequest vendedorRequest) { InicializarMensaje(""); int idEmpresaInt = 0; SupervisorRequest supervisorRequest = new SupervisorRequest(); var guardar = false; try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); vendedorRequest.idEmpresa = idEmpresaInt; vendedorRequest.TiempoSeguimiento = 5; } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); return(View(vendedorRequest)); } if (!ModelState.IsValid) { InicializarMensaje(Mensaje.ModeloInvalido); return(View(vendedorRequest)); } ApplicationDbContext db = new ApplicationDbContext(); Response response = new Response(); try { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var idUsuarioActual = User.Identity.GetUserId(); supervisorRequest.IdUsuario = idUsuarioActual; supervisorRequest.IdEmpresa = idEmpresaInt; if (userManager.IsInRole(idUsuarioActual, "Supervisor")) { response = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/obtenerSupervisorPorIdUsuario"); supervisorRequest = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor; guardar = true; } else if (userManager.IsInRole(idUsuarioActual, "GerenteGeneral")) { guardar = true; } if (guardar == false) { InicializarMensaje("No tiene permisos para agregar un nuevo vendedor"); return(View(vendedorRequest)); } var userManager2 = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo); if (InstanciaUsuario != null) { InicializarMensaje(Mensaje.ExisteCorreo); return(View(vendedorRequest)); } var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/BuscarUsuariosVendedoresPorEmpresaEIdentificacion"); if (ExisteUsuario.Count > 0) { InicializarMensaje(Mensaje.ExisteIdentificacionUsuario); return(View(vendedorRequest)); } var user = new ApplicationUser { UserName = vendedorRequest.Correo, Email = vendedorRequest.Correo, Identificacion = vendedorRequest.Identificacion, Nombres = vendedorRequest.Nombres, Apellidos = vendedorRequest.Apellidos, Direccion = vendedorRequest.Direccion, Telefono = vendedorRequest.Telefono, Estado = 1, IdEmpresa = idEmpresaInt }; var result = await userManager.CreateAsync(user, "A123345.1a"); db.SaveChanges(); if (result != null) { InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo); vendedorRequest.IdUsuario = InstanciaUsuario.Id; userManager.AddToRole(InstanciaUsuario.Id, "Vendedor"); response = await ApiServicio.InsertarAsync(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/InsertarVendedor"); if (response.IsSuccess) { if (fileUpload != null) { var idVendedor = response.Resultado; var fichero = readFileContents(fileUpload); var foto = new ArchivoRequest { Id = Convert.ToString(idVendedor), Array = fichero, Tipo = 3 }; var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress) , "Api/Archivos/Insertar"); if (fotoRequest.IsSuccess) { user.Foto = fotoRequest.Resultado.ToString(); db.Entry(user).State = EntityState.Modified; await db.SaveChangesAsync(); var recuperarContrasenaRequest0 = new RecuperarContrasenaRequest(); recuperarContrasenaRequest0.Email = user.Email; var response0 = await ApiServicio.ObtenerElementoAsync1 <Response>(recuperarContrasenaRequest0, new Uri(WebApp.BaseAddress) , "api/Usuarios/GenerarCodigo"); return(RedirectToAction("VendedorIndex", new { mensaje = response.Message })); } else { InicializarMensaje(Mensaje.Error); return(View(vendedorRequest)); } } var recuperarContrasenaRequest = new RecuperarContrasenaRequest(); recuperarContrasenaRequest.Email = user.Email; var response2 = await ApiServicio.ObtenerElementoAsync1 <Response>(recuperarContrasenaRequest, new Uri(WebApp.BaseAddress) , "api/Usuarios/GenerarCodigo"); return(RedirectToAction("VendedorIndex", new { mensaje = response.Message })); } } InicializarMensaje("No se ha podido crear un usuario"); return(View(vendedorRequest)); } catch (Exception ex) { ViewData["Error"] = Mensaje.Error; return(View(vendedorRequest)); } }
public async Task <ActionResult> Create(SupervisorRequest supervisorRequest) { //Seteando el id de la empresa var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; InicializarMensaje(null); if (!ModelState.IsValid) { InicializarMensaje(null); return(View(supervisorRequest)); } Response response = new Response(); try { ApplicationDbContext db = new ApplicationDbContext(); supervisorRequest.IdEmpresa = int.Parse(idEmpresa); //VALIDA SI EXITE EL CORREO AL CREAR var userManager2 = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var InstanciaUsuario = await userManager2.FindByEmailAsync(supervisorRequest.Correo); if (InstanciaUsuario != null) { InicializarMensaje(Mensaje.ExisteCorreo); return(View(supervisorRequest)); } //VALIDA SI EXITE LA IDENTIFICACION AL CREAR var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Supervisor/BuscarSupervisorPorEmpresaEIdentificacion"); if (ExisteUsuario != null) { InicializarMensaje(Mensaje.ExisteIdentificacionUsuario); return(View(supervisorRequest)); } //Inserta el supervisor var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); var empresaActual = new EmpresaActual { IdEmpresa = Convert.ToInt32(idEmpresa) }; var user = new ApplicationUser { UserName = supervisorRequest.Correo, Email = supervisorRequest.Correo, Identificacion = supervisorRequest.Identificacion, Apellidos = supervisorRequest.Apellidos, Nombres = supervisorRequest.Nombres, Estado = 1, Direccion = supervisorRequest.Direccion, Telefono = supervisorRequest.Telefono, IdEmpresa = empresaActual.IdEmpresa }; var result = await userManager.CreateAsync(user, "A12345.1a"); db.SaveChanges(); var enviarContrasenaRequest = new RecuperarContrasenaRequest(); enviarContrasenaRequest.Email = user.Email; enviarContrasenaRequest.Codigo = "A12345.1a"; var response2 = await ApiServicio.ObtenerElementoAsync1 <Response>(enviarContrasenaRequest, new Uri(WebApp.BaseAddress) , "api/Usuarios/EnviarContrasena"); //varifica el rol userManager.AddToRoles(user.Id, "Supervisor"); if (result != null) { supervisorRequest.IdEmpresa = Convert.ToInt32(idEmpresa); supervisorRequest.IdUsuario = user.Id; response = await ApiServicio.InsertarAsync(supervisorRequest, new Uri(WebApp.BaseAddress), "api/Supervisor/InsertarSupervisor"); if (response.IsSuccess) { var idsuper = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString()); return(RedirectToAction("Edit", new { id = idsuper.IdSupervisor })); } } } catch (Exception ex) { ex.ToString(); } ViewData["Error"] = response.Message; return(View(supervisorRequest)); }