public string AgregaPeriodo(JObject jdata)
        {
            dynamic json = jdata;
            string  MesInicio, MesFin, AnioInicio, AnioFin, UsuarioId;
            var     a1 = json.MesInicio;

            MesInicio = a1.ToObject <string>();
            var b = json.MesFin;

            MesFin = b.ToObject <string>();
            var c = json.AnioInicio;

            AnioInicio = c.ToObject <string>();
            var d = json.AnioFin;

            AnioFin = d.ToObject <string>();
            var e = json.UsuarioId;

            UsuarioId = e.ToObject <string>();

            string Respuesta = "Error, consulte a su administrador.";

            CultureInfo culture = CultureInfo.CreateSpecificCulture("es-MX");

            DateTime fechatemp;
            DateTime fechaInicio;
            DateTime fechaFin;

            //tomamos la fecha del primer dia del fin del periodo
            fechatemp = DateTime.ParseExact("01/" + RetornaMes(MesFin) + "/" + AnioFin, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            //fechatemp = new DateTime(Convert.ToInt32(AnioFin),RetornaMes(MesFin), 1);

            fechaInicio = DateTime.ParseExact("01/" + RetornaMes(MesInicio) + "/" + AnioInicio, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            //new DateTime(Convert.ToInt32(AnioInicio),RetornaMes(MesInicio), 1);
            fechaFin = fechatemp.AddMonths(1).AddDays(-1);



            try
            {
                DTO.DTOPeriodo bllPer = new DTO.DTOPeriodo();
                bllPer = db.Periodo.Where(I => I.Descripcion == (MesInicio + " " + AnioInicio + " - " + MesFin + " " + AnioFin))
                         .Select(d2 => new DTOPeriodo
                {
                    PeriodoId   = d2.PeriodoId,
                    Descripcion = d2.Descripcion
                }).FirstOrDefault();

                if (bllPer != null && bllPer.PeriodoId > 0)
                {
                    return("Periodo ya existe");
                }
                bllPer = new DTO.DTOPeriodo();
                if (MesInicio == "Agosto" && MesFin == "Enero")
                {
                    if (Convert.ToInt32(AnioFin) - Convert.ToInt32(AnioInicio) == 1)
                    {
                        bllPer.Descripcion = MesInicio + " " + AnioInicio + " - " + MesFin + " " + AnioFin;
                        bllPer.PeriodoId   = 0;
                        bllPer.FechaInicio = fechaInicio;
                        bllPer.FechaFin    = fechaFin;
                        bllPer.UsuarioId   = Convert.ToInt32(UsuarioId);
                        try
                        {
                            db.Periodo.Add(new Periodo
                            {
                                //PeriodoId = Periodo.PeriodoId,
                                Descripcion = bllPer.Descripcion,
                                UsuarioId   = bllPer.UsuarioId,
                                FechaInicio = bllPer.FechaInicio,
                                FechaFin    = bllPer.FechaFin
                            });
                            db.SaveChanges();
                            Respuesta = "El periodo se agrego correctamente.";
                        }
                        catch
                        {                        }
                    }
                    else
                    {
                        Respuesta = "Periodo invalido, seleccione un periodo valido.";
                    }
                }
                else if (MesInicio == "Febrero" && MesFin == "Julio")
                {
                    if (Convert.ToInt32(AnioFin) - Convert.ToInt32(AnioInicio) == 0)
                    {
                        bllPer.Descripcion = MesInicio + " " + AnioInicio + " - " + MesFin + " " + AnioFin;
                        bllPer.PeriodoId   = 0;
                        bllPer.FechaInicio = fechaInicio;
                        bllPer.FechaFin    = fechaFin;
                        bllPer.UsuarioId   = Convert.ToInt32(UsuarioId);

                        try
                        {
                            db.Periodo.Add(new Periodo
                            {
                                //PeriodoId = Periodo.PeriodoId,
                                Descripcion = bllPer.Descripcion,
                                UsuarioId   = bllPer.UsuarioId,
                                FechaInicio = bllPer.FechaInicio,
                                FechaFin    = bllPer.FechaFin
                            });
                            db.SaveChanges();
                            Respuesta = "El periodo se agrego correctamente.";
                        }
                        catch
                        {
                        }
                    }
                    else
                    {
                        Respuesta = "Periodo invalido, seleccione un periodo valido.";
                    }
                }
                else
                {
                    Respuesta = "Periodo invalido, seleccione un periodo valido.";
                }
            }
            catch (Exception a)
            {
                string ad = a.Message;
            }

            return(Respuesta);
        }
        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); }
            }
        }