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); }
            }
        }
        public string GuardaConfiguracion(JObject jdata)
        {
            string  PeriodoId, TipoCarreraId, UsuarioId;
            string  Respuesta = "Error, consulte a su administrador.";
            dynamic json      = jdata;
            var     a2        = json.PeriodoId;
            var     b2        = json.TipoCarreraId;
            var     c2        = json.UsuarioId;

            PeriodoId     = a2.ToObject <string>();
            TipoCarreraId = b2.ToObject <string>();
            UsuarioId     = c2.ToObject <string>();

            DTO.DTOConfiguracionEncuesta objConfiguracionEncuesta;
            try
            {
                if (GetConfiguracionEncuestaByPeriodoTC(Convert.ToInt32(PeriodoId), Convert.ToInt32(TipoCarreraId)) == null)
                {
                    objConfiguracionEncuesta                   = new DTO.DTOConfiguracionEncuesta();
                    objConfiguracionEncuesta.PeriodoId         = Convert.ToInt32(PeriodoId);
                    objConfiguracionEncuesta.TipoCarreraId     = Convert.ToInt32(TipoCarreraId);
                    objConfiguracionEncuesta.UsuarioModifico   = Convert.ToInt32(UsuarioId);
                    objConfiguracionEncuesta.FechaModificacion = DateTime.Now;
                    if (AddConfiguracionEncuesta(objConfiguracionEncuesta) == true)
                    {
                        Respuesta = "Se guardo correctamente.";
                    }
                }
                else
                {
                    Respuesta = "La encuesta que desea agregar ya existe en el sistema.";
                }
            }
            catch { }
            return(Respuesta);

            DTOConfiguracionAll GetConfiguracionEncuestaByPeriodoTC(int PeriodoID, int TipoCarreraID)
            {
                try
                {
                    return((from a in db.ConfiguracionEncuesta
                            where a.PeriodoId == PeriodoID && a.TipoCarreraId == TipoCarreraID
                            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); }
            }

            bool AddConfiguracionEncuesta(DTOConfiguracionEncuesta ConfEncuesta)
            {
                try
                {
                    db.ConfiguracionEncuesta.Add(new ConfiguracionEncuesta
                    {
                        PeriodoId       = ConfEncuesta.PeriodoId,
                        TipoCarreraId   = ConfEncuesta.TipoCarreraId,
                        Estatus         = ConfEncuesta.Estatus,
                        UsuarioModifico = ConfEncuesta.UsuarioModifico
                        ,
                        FechaModificacion = ConfEncuesta.FechaModificacion
                    });
                    db.SaveChanges();
                    return(true);
                }
                catch { return(false); }
            }
        }