public static void AsignarCoordinador(int codigoEvaluador, int codigoProyecto) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var coordinador = db.Evaluadors.SingleOrDefault(filter => filter.CodContacto.Equals(codigoEvaluador) && filter.CodCoordinador != null); if (coordinador != null) { // Se agrega Desctivar Coordinadores de Evaluadores, que No estan asociado al evaluador var entities = db.ProyectoContactos.Where(filter => filter.CodProyecto.Equals(codigoProyecto) && filter.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) && filter.FechaFin == null ); foreach (var entity in entities) { if (!entity.CodContacto.Equals(coordinador.CodCoordinador.GetValueOrDefault(0))) { entity.FechaFin = DateTime.Now; entity.Inactivo = true; } } if (!db.ProyectoContactos.Any(filter => filter.CodContacto.Equals(coordinador.CodCoordinador) && filter.CodProyecto.Equals(codigoProyecto) && filter.CodConvocatoria.Equals(PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0)) && filter.FechaFin == null && filter.Inactivo == false)) { var NewentityCoordinador = new ProyectoContacto { CodContacto = coordinador.CodCoordinador.GetValueOrDefault(0), CodProyecto = codigoProyecto, CodRol = Constantes.CONST_RolCoordinadorEvaluador, FechaInicio = DateTime.Now, FechaFin = null, Inactivo = false, Beneficiario = false, Participacion = 0, HorasProyecto = null, Acreditador = false, CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0) }; db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador); } db.SubmitChanges(); } else { throw new ApplicationException("Este evaluador no tiene coordinador de evaluador asignado, por favor asignelo primero para poder continuar."); } } }
public static void AsignarCoordinadorAEvaluador(int codigoEvaluador, int codigoCoordinador, bool desasignar = false) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var coordinadorActual = db.Evaluadors.SingleOrDefault(filter => filter.CodContacto.Equals(codigoEvaluador)); if (coordinadorActual.CodCoordinador != null) { var proyectosParaAsignar = new List <ProyectoContacto>(); if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar) { proyectosParaAsignar = (from proyectos in db.ProyectoContactos where proyectos.CodContacto.Equals(codigoEvaluador) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador) select proyectos ).ToList(); } else { proyectosParaAsignar = (from proyectos in db.ProyectoContactos where proyectos.CodContacto.Equals(codigoEvaluador) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador) select proyectos ).ToList(); } foreach (var proyecto in proyectosParaAsignar) { if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar) { var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos where proyectos.CodProyecto.Equals(proyecto.CodProyecto) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) select proyectos ).FirstOrDefault(); if (proyectoPorCoordinadorActual != null) { proyectoPorCoordinadorActual.FechaFin = DateTime.Now; proyectoPorCoordinadorActual.Inactivo = true; } db.SubmitChanges(); } else { var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos where proyectos.CodProyecto.Equals(proyecto.CodProyecto) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) select proyectos ).FirstOrDefault(); if (proyectoPorCoordinadorActual != null) { proyectoPorCoordinadorActual.FechaFin = DateTime.Now; proyectoPorCoordinadorActual.Inactivo = true; } var NewentityCoordinador = new ProyectoContacto { CodContacto = codigoCoordinador, CodProyecto = proyecto.CodProyecto, CodRol = Constantes.CONST_RolCoordinadorEvaluador, FechaInicio = DateTime.Now, FechaFin = null, Inactivo = false, Beneficiario = false, Participacion = 0, HorasProyecto = null, Acreditador = false, CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(proyecto.CodProyecto, 0).GetValueOrDefault(0) }; db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador); db.SubmitChanges(); } } if (coordinadorActual.CodCoordinador.Equals(codigoCoordinador) && desasignar) { coordinadorActual.CodCoordinador = null; db.SubmitChanges(); } else { coordinadorActual.CodCoordinador = codigoCoordinador; db.SubmitChanges(); } } else { var proyectosParaAsignar = (from proyectos in db.ProyectoContactos where proyectos.CodContacto.Equals(codigoEvaluador) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolEvaluador) select proyectos ).ToList(); foreach (var proyecto in proyectosParaAsignar) { var proyectoPorCoordinadorActual = (from proyectos in db.ProyectoContactos where proyectos.CodProyecto.Equals(proyecto.CodProyecto) && proyectos.FechaFin == null && proyectos.Inactivo.Equals(false) && proyectos.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) select proyectos ).FirstOrDefault(); if (proyectoPorCoordinadorActual != null) { proyectoPorCoordinadorActual.FechaFin = DateTime.Now; proyectoPorCoordinadorActual.Inactivo = true; } var NewentityCoordinador = new ProyectoContacto { CodContacto = codigoCoordinador, CodProyecto = proyecto.CodProyecto, CodRol = Constantes.CONST_RolCoordinadorEvaluador, FechaInicio = DateTime.Now, FechaFin = null, Inactivo = false, Beneficiario = false, Participacion = 0, HorasProyecto = null, Acreditador = false, CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(proyecto.CodProyecto, 0).GetValueOrDefault(0) }; db.ProyectoContactos.InsertOnSubmit(NewentityCoordinador); coordinadorActual.CodCoordinador = codigoCoordinador; db.SubmitChanges(); } coordinadorActual.CodCoordinador = codigoCoordinador; db.SubmitChanges(); } } }
protected void gvEmprendedores_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("deleteEmprendedor")) { try { if (e.CommandArgument != null) { string[] parametros; parametros = e.CommandArgument.ToString().Split(';'); int codigoProyecto = Convert.ToInt32(parametros[0]); int codigoContacto = Convert.ToInt32(parametros[1]); using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var tareasPendientes = (from tareas in db.TareaUsuarios join tareaRepeticion in db.TareaUsuarioRepeticions on tareas.Id_TareaUsuario equals tareaRepeticion.CodTareaUsuario where tareas.CodContacto == codigoContacto && tareaRepeticion.FechaCierre == null select tareas).Any(); if (tareasPendientes) { throw new ApplicationException("No se puede eliminar el emprendedor porque tiene tareas pendientes"); } GrupoContacto grupocontacto = db.GrupoContactos.Single(grupo => grupo.CodContacto.Equals(codigoContacto)); db.GrupoContactos.DeleteOnSubmit(grupocontacto); ProyectoContacto proyectocontacto = db.ProyectoContactos.Single(proyecto => proyecto.CodContacto == codigoContacto && proyecto.CodProyecto == codigoProyecto && proyecto.Inactivo == false && proyecto.CodRol == Constantes.CONST_RolEmprendedor); proyectocontacto.Inactivo = true; proyectocontacto.FechaFin = DateTime.Now; Contacto contacto = db.Contacto.Single(contactoProyecto => contactoProyecto.Id_Contacto == codigoContacto); contacto.Inactivo = true; lblError.Visible = false; db.SubmitChanges(); gvEmprendedores.DataBind(); } } } catch (ApplicationException ex) { lblError.Visible = true; lblError.Text = "Advertencia : " + ex.Message; } catch (Exception ex) { lblError.Visible = true; lblError.Text = "Sucedio un error inesperado al eliminar el emprendedor."; } } else if (e.CommandName.Equals("updateEmprendedor")) { if (e.CommandArgument != null) { string[] parametros; parametros = e.CommandArgument.ToString().Split(';'); int codigoProyecto = Convert.ToInt32(parametros[0]); int codigoContacto = Convert.ToInt32(parametros[1]); Session["codigoEmprendedor"] = codigoContacto; Redirect(null, "~/FONADE/PlandeNegocio/CrearEmprendedor.aspx", "_blank", "menubar=0,scrollbars=1,width=1000,height=600,top=50"); } } }
public static void AsignarProyectoEvaluador(int codigoEvaluador, int codigoProyecto, bool desasignar = false) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var entities = db.ProyectoContactos.Where(filter => filter.CodProyecto.Equals(codigoProyecto) && filter.CodRol.Equals(Constantes.CONST_RolEvaluador) && filter.FechaFin == null ); if (!entities.Any()) { var entity = new ProyectoContacto { CodContacto = codigoEvaluador, CodProyecto = codigoProyecto, CodRol = Constantes.CONST_RolEvaluador, FechaInicio = DateTime.Now, FechaFin = null, Inactivo = false, Beneficiario = false, Participacion = 0, HorasProyecto = null, Acreditador = false, CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0) }; db.ProyectoContactos.InsertOnSubmit(entity); var proyecto = db.Proyecto1s.FirstOrDefault(filter => filter.Id_Proyecto.Equals(codigoProyecto) && filter.CodEstado.Equals(Constantes.CONST_Acreditado)); if (proyecto != null) { proyecto.CodEstado = Constantes.CONST_Evaluacion; } AsignarCoordinador(codigoEvaluador, codigoProyecto); db.SubmitChanges(); } else { foreach (var entity in entities) { if (!entity.CodContacto.Equals(codigoEvaluador) || desasignar) { entity.FechaFin = DateTime.Now; entity.Inactivo = true; } } if (!desasignar) { var Newentity = new ProyectoContacto { CodContacto = codigoEvaluador, CodProyecto = codigoProyecto, CodRol = Constantes.CONST_RolEvaluador, FechaInicio = DateTime.Now, FechaFin = null, Inactivo = false, Beneficiario = false, Participacion = 0, HorasProyecto = null, Acreditador = false, CodConvocatoria = PlanDeNegocioV2.Utilidad.Convocatoria.GetConvocatoriaByProyecto(codigoProyecto, 0).GetValueOrDefault(0) }; db.ProyectoContactos.InsertOnSubmit(Newentity); var proyecto = db.Proyecto1s.FirstOrDefault(filter => filter.Id_Proyecto.Equals(codigoProyecto) && filter.CodEstado.Equals(Constantes.CONST_Acreditado)); if (proyecto != null) { proyecto.CodEstado = Constantes.CONST_Evaluacion; } AsignarCoordinador(codigoEvaluador, codigoProyecto); } else { var entitiesCoordinadores = db.ProyectoContactos.Where(filter => filter.CodProyecto.Equals(codigoProyecto) && filter.CodRol.Equals(Constantes.CONST_RolCoordinadorEvaluador) && filter.FechaFin == null ); foreach (var entity in entitiesCoordinadores) { entity.FechaFin = DateTime.Now; entity.Inactivo = true; } } db.SubmitChanges(); } } }