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(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> Delete(int id)
        {
            Pollster encuestador = await db.Pollster.FindAsync(id);

            if (encuestador == null)
            {
                return(NotFound());
            }
            return(View(encuestador));
        }
Exemple #4
0
        public int SavePollsters(PollsterRegisterViewModel models)
        {
            var model = new PollsterRegisterViewModel();

            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <PollsterRegisterViewModel, Pollster>();
            });
            var _marpermodel = new Pollster();

            _marpermodel = Mapper.Map <Pollster>(models);

            var _result = _campaignServicesDao.SavePollster(_marpermodel);

            return(_result);
        }
Exemple #5
0
        public PollsterRegisterViewModel GetPollster(int Id)
        {
            var model = new PollsterRegisterViewModel();

            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <Pollster, PollsterRegisterViewModel>();
            });
            var equipmentsmodel = new Pollster();

            equipmentsmodel = _campaignServicesDao.GetPollster_Edit(Id);
            model           = Mapper.Map <PollsterRegisterViewModel>(equipmentsmodel);



            return(model);
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            var      controlConfiguracion = new ConfiguracionsController(db);
            Pollster encuestador          = await db.Pollster.FindAsync(id);

            try
            {
                db.Pollster.Remove(encuestador);
                await db.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                var error = controlConfiguracion.SqlErrorHandler(ex);
                HttpContext.Session.SetComplex("error", error);
            }

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Details(int id)
        {
            var user = await userManager.FindByNameAsync(User.Identity.Name);

            var respRelacionado = await GetResponsablesbyIdParent(user.IDDependencia, 1, 3);

            Pollster encuestador = await db.Pollster.Where(n => n.Id == id && respRelacionado.Contains(n.IdResponsable)).FirstOrDefaultAsync();

            var kobo = new KoboController(db, userManager, _env);

            ViewBag.DataTime      = kobo.GetDatetimeData(KoboController.FILE_CARACTERIZACION);
            ViewBag.DataTimeAssoc = kobo.GetDatetimeData(KoboController.FILE_ASOCIACION);

            if (encuestador == null)
            {
                return(NotFound());
            }
            return(View(encuestador));
        }
        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));
        }
        public int SavePollster(Pollster entity)
        {
            try
            {
                Context.Pollsters.Add(entity);

                if (entity.Id < 1)
                {
                    Context.Entry(entity).State = EntityState.Added;
                }
                else
                {
                    Context.Entry(entity).State = EntityState.Modified;
                }


                Context.SaveChanges();
                return(1);
            }
            catch (Exception)
            {
                return(0);
            }
        }