public async Task <ActionResult> Create(Pollster encuestador) { var user = await userManager.FindByNameAsync(User.Identity.Name); if (ModelState.IsValid) { //Si no define la coordinación (dependencia) encargada se usa la del usuario actual if (encuestador.IdResponsable == 0) { encuestador.IdResponsable = user.IDDependencia; } //Usuario y fecha de creación encuestador.User = user; encuestador.CreationDate = DateTime.Now; encuestador.Code = await GenerateCode(encuestador.DNI); db.Pollster.Add(encuestador); await db.SaveChangesAsync(); return(RedirectToAction("Details", new { id = encuestador.Id })); } ResponsablesController controlResponsable = new ResponsablesController(db); var ids = controlResponsable.GetAllIdsFromResponsable(user.IDDependencia); ViewBag.Departamentos = new SelectList(await db.Location.Where(n => n.IdLevel == 2).OrderBy(n => n.Name).ToListAsync(), "Id", "Name"); ViewBag.Coordinaciones = new SelectList(await db.Responsable.Where(n => ids.Contains(n.Id) && n.Nombre.StartsWith("[CDR]")).OrderBy(n => n.Nombre).ToListAsync(), "Id", "Nombre", encuestador.IdResponsable); return(View(encuestador)); }
public async Task <ActionResult> Edit(int id) { ResponsablesController controlResponsable = new ResponsablesController(db); //Valida que el usuario tenga permisos sobre el encuestador var user = await userManager.FindByNameAsync(User.Identity.Name); var respRelacionado = await GetResponsablesbyIdParent(user.IDDependencia, 1, 3); var ids = controlResponsable.GetAllIdsFromResponsable(user.IDDependencia); Pollster encuestador = await db.Pollster.Where(n => n.Id == id && respRelacionado.Contains(n.IdResponsable)).FirstOrDefaultAsync(); if (encuestador == null) { return(NotFound()); } if (encuestador.Location != null) { encuestador.IdLocationParent = (int)encuestador.Location.IdParent; } ViewBag.Departamentos = new SelectList(await db.Location.Where(n => n.IdLevel == 2).OrderBy(n => n.Name).ToListAsync(), "Id", "Name", encuestador.IdLocationParent); ViewBag.Municipios = new SelectList(await db.Location.Where(n => n.IdLevel == 3 && n.IdParent == encuestador.IdLocationParent).OrderBy(n => n.Name).ToListAsync(), "Id", "Name", encuestador.IdLocation); ViewBag.Coordinaciones = new SelectList(await db.Responsable.Where(n => ids.Contains(n.Id) && n.Nombre.StartsWith("[CDR]")).OrderBy(n => n.Nombre).ToListAsync(), "Id", "Nombre", encuestador.IdResponsable); return(View(encuestador)); }
public async Task <ActionResult> Create() { ResponsablesController controlResponsable = new ResponsablesController(db); var user = await userManager.FindByNameAsync(User.Identity.Name); var ids = controlResponsable.GetAllIdsFromResponsable(user.IDDependencia); ViewBag.Departamentos = new SelectList(await db.Location.Where(n => n.IdLevel == 2).OrderBy(n => n.Name).ToListAsync(), "Id", "Name"); ViewBag.Coordinaciones = new SelectList(await db.Responsable.Where(n => ids.Contains(n.Id) && n.Nombre.StartsWith("[CDR]")).OrderBy(n => n.Nombre).ToListAsync(), "Id", "Nombre", ids.FirstOrDefault()); return(View()); }
public async Task <ActionResult> Edit(Pollster encuestador) { var original = await db.Pollster.FindAsync(encuestador.Id); if (original == null) { ModelState.AddModelError(string.Empty, "Encuestador no registrado."); } if (ModelState.IsValid) { original.DNI = encuestador.DNI; original.Name = encuestador.Name; original.PhoneNumber = encuestador.PhoneNumber; original.Email = encuestador.Email; if (encuestador.IdLocation > 0) { original.IdLocation = encuestador.IdLocation; } if (encuestador.IdResponsable > 0) { original.IdResponsable = encuestador.IdResponsable; } original.Code = await GenerateCode(original.DNI); db.Entry(original).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Details", new { id = original.Id })); } ResponsablesController controlResponsable = new ResponsablesController(db); var user = await userManager.FindByNameAsync(User.Identity.Name); var ids = controlResponsable.GetAllIdsFromResponsable(user.IDDependencia); ViewBag.Departamentos = new SelectList(await db.Location.Where(n => n.IdLevel == 2).OrderBy(n => n.Name).ToListAsync(), "Id", "Name", encuestador.IdLocation); ViewBag.Coordinaciones = new SelectList(await db.Responsable.Where(n => ids.Contains(n.Id) && n.Nombre.StartsWith("[CDR]")).OrderBy(n => n.Nombre).ToListAsync(), "Id", "Nombre", encuestador.IdResponsable); return(View(encuestador)); }