private void btn_agregar_Click(object sender, EventArgs e)
        {
            if (CamposSonValidos() == false)
            {
                MessageBox.Show("Por favor llene todos los datos correctamente!");
                return;
            }

            if (proyecto == null)
            {
                proyecto = new Proyecto();
                FormToElement();
                Program.ctx.Proyectoes.Add(proyecto);
            }
            else
            {
                FormToElement();
            }

            Program.ctx.SaveChanges();

            ActualizarOtrosFormularios();
            CerrarForm();
        }
 public void PrepararModoAgregar()
 {
     this.Text             = "Agregar Proyecto";
     this.btn_agregar.Text = "Agregar";
     proyecto = null;
 }
        public void Preparar(int ProyectoId)
        {
            proyecto  = Program.ctx.Proyectoes.Find(ProyectoId);
            this.Text = "Equipo de " + proyecto.Nombre;

            var lista = Program.ctx.DesarrolladorProyectoes.Where(x => x.ProyectoId == ProyectoId).AsEnumerable()
                        .OrderBy(x => x.Desarrollador.Apellido)
                        .ThenBy(x => x.Desarrollador.Nombre).Select(x => new
            {
                FechaAsociacion  = x.Fecha.Date,
                SiglasDocumento  = x.Desarrollador.TipoDocumento.Siglas,
                NumeroDocumento  = x.Desarrollador.NroDocumento,
                NombreApellido   = x.Desarrollador.Nombre + " " + x.Desarrollador.Apellido,
                PorcentajeAvance = GetAvanceDesarrollador(x.DesarrolladorId),
                HorasTotales     = GetHorasDesarrollador(x.DesarrolladorId),
            }).ToList();

            datagridview.DataSource = lista;

            foreach (DataGridViewColumn col in datagridview.Columns)
            {
                switch (col.Name)
                {
                case "FechaAsociacion":
                    col.HeaderText   = "Fecha de Asociación";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 35;
                    break;

                case "SiglasDocumento":
                    col.HeaderText   = "Documento";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 35;
                    break;

                case "NumeroDocumento":
                    col.HeaderText   = "Nro Documento";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 50;
                    break;

                case "NombreApellido":
                    col.HeaderText   = "Nombre Completo";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 65;
                    break;

                case "PorcentajeAvance":
                    col.HeaderText   = "Porcentaje";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 30;
                    break;

                case "HorasTotales":
                    col.HeaderText   = "Horas";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 30;
                    break;

                default:
                    col.Visible = false;
                    break;
                }
            }
        }
        public void Preparar(int ProyectoId)
        {
            proyecto  = Program.ctx.Proyectoes.Find(ProyectoId);
            this.Text = "Avances de " + proyecto.Nombre;

            var lista = Program.ctx.Avances
                        .Where(x => x.ProyectoId == ProyectoId)
                        .AsEnumerable()
                        .OrderByDescending(x => x.Fecha.Year)
                        .ThenByDescending(x => x.Fecha.Month)
                        .ThenByDescending(x => x.Fecha.Day)
                        .Select(x => new
            {
                AvanceId          = x.AvanceId,
                FechaAvance       = x.Fecha.Date,
                SiglasDeDocumento = x.Desarrollador.TipoDocumento.Siglas,
                NombreCompleto    = x.Desarrollador.Nombre + " " + x.Desarrollador.Apellido,
                Porcentaje        = x.Porcentaje,
                Horas             = x.Horas,
            })
                        .ToList();

            datagridview.DataSource = lista;

            foreach (DataGridViewColumn col in datagridview.Columns)
            {
                switch (col.Name)
                {
                case "AvanceId":
                    col.Visible = false;
                    break;

                case "FechaAvance":
                    col.HeaderText   = "Fecha";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 20;
                    break;

                case "SiglasDeDocumento":
                    col.HeaderText   = "Documento";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 30;
                    break;

                case "NombreCompleto":
                    col.HeaderText   = "Nombre Completo";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 60;
                    break;

                case "Porcentaje":
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 30;
                    break;

                case "Horas":
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 30;
                    break;

                default:
                    col.Visible = false;
                    break;
                }
            }
        }
        public void Preparar(int ProyectoId)
        {
            proyecto  = Program.ctx.Proyectoes.Find(ProyectoId);
            this.Text = "Asignar desarrollador a " + proyecto.Nombre;

            var desarrolladores = Program.ctx.Desarrolladors.ToList();
            var desarrolladores_en_el_equipo = Program.ctx.DesarrolladorProyectoes.Where(x => x.ProyectoId == ProyectoId).ToList();

            var lista = desarrolladores
                        .Where(x => desarrolladores_en_el_equipo.Any(y => y.DesarrolladorId == x.DesarrolladorId) == false)
                        .OrderBy(x => x.Apellido)
                        .ThenBy(x => x.Nombre)
                        .Select(x => new
            {
                DesarrolladorId = x.DesarrolladorId,
                SiglasDocumento = x.TipoDocumento.Siglas,
                NumeroDocumento = x.NroDocumento,
                Nombre          = x.Nombre,
                Apellido        = x.Apellido,
            })
                        .ToList();

            datagridview.DataSource = lista;

            foreach (DataGridViewColumn col in datagridview.Columns)
            {
                switch (col.Name)
                {
                case "DesarrolladorId":
                    col.Visible = false;
                    break;

                case "SiglasDocumento":
                    col.HeaderText   = "Documento";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 35;
                    break;

                case "NumeroDocumento":
                    col.HeaderText   = "Nro Documento";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 50;
                    break;

                case "Nombre":
                    col.HeaderText   = "Nombre";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 70;
                    break;

                case "Apellido":
                    col.HeaderText   = "Apellido";
                    col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    col.FillWeight   = 70;
                    break;

                default:
                    col.Visible = false;
                    break;
                }
            }
        }