public DTO.DTOConfiguracionAll ObtieneEncuestaPorId(JObject jdata)
        {
            dynamic     json    = jdata;
            CultureInfo Cultura = CultureInfo.CreateSpecificCulture("es-MX");
            string      ConfiguracionEncuestaId;
            var         a2 = json.ConfiguracionEncuestaId;

            ConfiguracionEncuestaId = a2.ToObject <string>();


            DTO.DTOConfiguracionAll objEncuesta = new DTO.DTOConfiguracionAll();

            objEncuesta             = GetConfiguracionEncuestaById(Convert.ToInt32(ConfiguracionEncuestaId));
            objEncuesta.FechaInicio = objEncuesta.FechaInicio == "" ? "" : Convert.ToDateTime(objEncuesta.FechaInicio).ToString("dd/MM/yyyy", Cultura);
            objEncuesta.FechaFin    = objEncuesta.FechaFin == "" ? "" : Convert.ToDateTime(objEncuesta.FechaFin).ToString("dd/MM/yyyy", Cultura);

            return(objEncuesta);

            DTOConfiguracionAll GetConfiguracionEncuestaById(int ConfiguracionEncuestaIdd)
            {
                try
                {
                    return((from a in db.ConfiguracionEncuesta
                            where a.ConfiguracionEncuestaId == ConfiguracionEncuestaIdd
                            select new DTOConfiguracionAll
                    {
                        ConfiguracionEncuestaId = a.ConfiguracionEncuestaId,
                        PeriodoId = a.PeriodoId,
                        FechaInicio = a.FechaInicio == null ? "" : a.FechaInicio.ToString(),
                        FechaFin = a.FechaFin == null ? "" : a.FechaFin.ToString(),
                        Estatus = a.Estatus == true ? "1" : "0"
                    }).FirstOrDefault());
                }
                catch (Exception e) { string b = e.ToString(); return(null); }
            }
        }
        public string GuardaConfiguarionById(JObject jdata)
        {
            string  ConfiguracionEncuestaId, FechaInicio, FechaFin, Estatus, UsuarioId;
            string  Respuesta = "Error al configurar la encuesta.";
            dynamic json      = jdata;
            var     a         = json.ConfiguracionEncuestaId;
            var     b1        = json.FechaInicio;
            var     c         = json.FechaFin;
            var     d         = json.Estatus;
            var     e1        = json.UsuarioId;

            ConfiguracionEncuestaId = a.ToObject <string>();
            FechaInicio             = b1.ToObject <string>();
            FechaFin  = c.ToObject <string>();
            Estatus   = d.ToObject <string>();
            UsuarioId = e1.ToObject <string>();

            DTO.DTOConfiguracionAll objDtoConf = ObtieneEncuestaPorId(JObject.Parse("{ConfiguracionEncuestaId:" + ConfiguracionEncuestaId + "}"));

            DTO.DTOPeriodo objDtoPer = TraerPeriodoPorID(objDtoConf.PeriodoId);

            if ((Convert.ToDateTime(FechaInicio) >= objDtoPer.FechaInicio && Convert.ToDateTime(FechaInicio) <= objDtoPer.FechaFin)
                &&
                (Convert.ToDateTime(FechaFin) >= objDtoPer.FechaInicio && Convert.ToDateTime(FechaFin) <= objDtoPer.FechaFin))
            {
                if (Convert.ToDateTime(FechaInicio) > Convert.ToDateTime(FechaFin))
                {
                    Respuesta = "La fecha de inicio debe ser menor a la fecha de termino.";
                    return(Respuesta);
                }
            }
            else
            {
                Respuesta = "La fecha de inicio y termino deben de estar dentro del periodo seleccionado.";
                return(Respuesta);
            }


            DTO.DTOConfiguracionEncuesta objConfiguracionEncuesta;

            try
            {
                objConfiguracionEncuesta = new DTO.DTOConfiguracionEncuesta();
                objConfiguracionEncuesta.ConfiguracionEncuestaId = Convert.ToInt32(ConfiguracionEncuestaId);
                objConfiguracionEncuesta.FechaFin        = Convert.ToDateTime(FechaFin);
                objConfiguracionEncuesta.FechaInicio     = Convert.ToDateTime(FechaInicio);
                objConfiguracionEncuesta.Estatus         = Convert.ToBoolean(Convert.ToInt32(Estatus));
                objConfiguracionEncuesta.UsuarioModifico = Convert.ToInt32(UsuarioId);
                ModificaConfiguracionEncuesta(objConfiguracionEncuesta);

                Respuesta = "Se configuro correctamente la encuesta.";
            }
            catch (Exception e)
            {
                string b = e.ToString();
            }
            return(Respuesta);

            DTOPeriodo TraerPeriodoPorID(int PeriodoID)
            {
                return(db.Periodo.Where(I => I.PeriodoId == PeriodoID)
                       .Select(d2 => new DTOPeriodo
                {
                    PeriodoId = d2.PeriodoId,
                    Descripcion = d2.Descripcion,
                    FechaInicio = d2.FechaInicio,
                    FechaFin = d2.FechaFin
                }).FirstOrDefault());
            }

            int ModificaConfiguracionEncuesta(DTOConfiguracionEncuesta ConfEncuesta)
            {
                try
                {
                    ConfiguracionEncuesta objCE = db.ConfiguracionEncuesta
                                                  .Where(d2 => d2.ConfiguracionEncuestaId == ConfEncuesta.ConfiguracionEncuestaId)
                                                  .FirstOrDefault();

                    objCE.FechaInicio     = ConfEncuesta.FechaInicio;
                    objCE.FechaFin        = ConfEncuesta.FechaFin;
                    objCE.Estatus         = ConfEncuesta.Estatus;
                    objCE.UsuarioModifico = ConfEncuesta.UsuarioModifico;

                    db.SaveChanges();

                    return(objCE.ConfiguracionEncuestaId);
                }
                catch { return(0); }
            }
        }