Ejemplo n.º 1
0
 private void eliminarAntecesoras(ITarea tarea)
 {
     for (int i = tarea.Antecesoras.Count - 1; i >= 0; i--)
     {
         EliminarTarea(tarea.Antecesoras[i].TareaID);
     }
 }
Ejemplo n.º 2
0
 private void eliminarPersonasEnTarea(ITarea tarea)
 {
     for (int i = tarea.Personas.Count - 1; i >= 0; i--)
     {
         EliminarPersona(tarea.Personas[i].PersonaID);
     }
 }
Ejemplo n.º 3
0
        private void editarTareaVentana(ITarea tarea, bool esNuevaTarea)
        {
            VentanaDetallesTarea ventanaDetalles = new VentanaDetallesTarea(tarea, esNuevaTarea, contexto);

            ventanaDetalles.ShowDialog(this);
            refrescarVentanaAlCerrarseDialogo();
        }
Ejemplo n.º 4
0
        private void agregarElementoListaAntecesoras(ITarea tarea)
        {
            ListViewItem elementoLista = generarElementoListView(tarea);

            elementoLista.ImageIndex = iconoTarea(tarea);
            listViewAntecesoras.Items.Add(elementoLista);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Programa una tarea
        /// </summary>
        /// <param name="id"></param>
        /// <param name="tarea"></param>
        /// <param name="tarea"></param>
        /// <param name="tipoTarea"></param>
        /// <param name="procesosIncompatibles">Coleccion de IDs de tareas incompatibles</param>
        void ProgramaTarea(string id, ITarea tarea, Type tipoTarea, IProgramador programacion, IEnumerable <string> procesosIncompatibles = null)
        {
            if ((tarea == null && tipoTarea == null) || programacion == null)
            {
                throw new ArgumentException("La tarea y la programación deben especificarse");
            }

            if (tarea != null && tipoTarea != null)
            {
                throw new ArgumentException("Solo se puede especificar la tarea o su tipo");
            }

            if (tipoTarea != null && container == null)
            {
                throw new ArgumentException($"El contenedor es nulo y la tarea tipo {tipoTarea.Name} lo necesita");
            }

            if (tipoTarea != null && container.GetRegistration(tipoTarea) == null)
            {
                throw new ArgumentException($"El contenedor no conoce a {tipoTarea.Name}");
            }

            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentException($"La tarea debe tener un Id unico");
            }

            log.Info($"Programando tarea {id} con el programador {programacion.GetType()}");

            DateTime primeraEjecucion = programacion.PrimeraEjecucion(DateTime.Now);

            if (primeraEjecucion < DateTime.Now.AddSeconds(-5))
            {
                log.Warn($"La tarea {id} ha caducado antes de iniciarse");
                return;
            }
            log.Info($"Servicio periodico registrado {id} en fecha {primeraEjecucion:g}");
            TareaProgramada prog = new TareaProgramada();

            prog.ID              = id;
            prog.Programacion    = programacion;
            prog.Tarea           = tarea;
            prog.TipoTarea       = tipoTarea;
            prog.SiguienteInicio = primeraEjecucion;
            if (procesosIncompatibles != null)
            {
                prog.ProcesosIncompatibles.AddRange(procesosIncompatibles);
            }
            lock (bloqueo)
            {
                if (tareasProgramadas.Where(x => x.ID == id).FirstOrDefault() != null)
                {
                    log.Warn($"La tarea {id} está duplicada");
                    return;
                }
                tareasProgramadas.Add(prog);
            }
            EscaneaTareas();
        }
        private TreeNode GenerarNodoArbolTareaSimple(ITarea tarea)
        {
            TreeNode nodoArbol = new TreeNode(GenerarTextoAMostrar(tarea));

            nodoArbol.Tag = tarea;
            AsignarIconosTareaSimple(nodoArbol);
            return(nodoArbol);
        }
Ejemplo n.º 7
0
        private TreeNode generarNodoArbolTareaSimple(ITarea tarea)
        {
            TreeNode nodoRetorno = new TreeNode(generarTextoAMostrar(tarea));

            nodoRetorno.Tag = tarea;
            asignarIconosTareaSimple(nodoRetorno);
            return(nodoRetorno);
        }
        private void AgregarSubArbolTareaSimple(TreeNode[] arbolNodos, int posicion, ITarea tarea)
        {
            TreeNode hojaArbol = GenerarNodoArbolTareaSimple(tarea);

            hojaArbol.Tag = tarea;
            AsignarIconosTareaSimple(hojaArbol);
            arbolNodos[posicion] = hojaArbol;
        }
 public VentanaAsignarAntecesoraVentanaDetallesEtapa(IEtapa etapa, ITarea tarea, IContextoGestorProyectos contexto)
 {
     this.contexto = contexto;
     InitializeComponent();
     this.etapa = etapa;
     this.tarea = tarea;
     inicializarComboBoxTareas();
 }
Ejemplo n.º 10
0
        private void borrarAntecesora()
        {
            ITarea seleccionada = antecesoraSeleccionada();

            agregarAntecesorasAntesElminacion(seleccionada);
            tarea.Antecesoras.Remove(antecesoraSeleccionada());
            tarea.AgregarModificacion("Eliminada antecesora " + seleccionada.ToString());
            contexto.ModificarTarea(tarea);
        }
Ejemplo n.º 11
0
 public VentanaDetallesTarea(ITarea tarea, bool esNueva, IContextoGestorProyectos contexto)
 {
     InitializeComponent();
     this.contexto       = contexto;
     this.tarea          = contexto.ObtenerTarea(tarea.TareaID);
     this.tarea.Contexto = contexto;
     this.esNuevaTarea   = esNueva;
     InicializarComponentes();
 }
Ejemplo n.º 12
0
 private void agregarAntecesorasAntesElminacion(ITarea seleccionada)
 {
     foreach (Tarea antecesora in seleccionada.Antecesoras)
     {
         if (!tarea.Antecesoras.Contains(antecesora))
         {
             tarea.Antecesoras.Add(antecesora);
         }
     }
 }
Ejemplo n.º 13
0
 private void eliminarSubtareasSiTiene(ITarea tarea)
 {
     if (esTareaCompuesta(tarea))
     {
         for (int i = (((TareaCompuesta)tarea).Subtareas).Count - 1; i >= 0; i--)
         {
             EliminarTarea((((TareaCompuesta)tarea).Subtareas)[i].TareaID);
         }
     }
 }
Ejemplo n.º 14
0
 private int iconoTarea(ITarea tarea)
 {
     if (esCompuesta(tarea))
     {
         return(0);
     }
     else
     {
         return(1);
     }
 }
Ejemplo n.º 15
0
        public void ClonarPrueba(string nombre, int duracionPendiente, string fechaInicio, string fechaFin)
        {
            TareaCompuesta tarea = new TareaCompuesta(new ContextoGestorProyectos())
            {
                Nombre      = nombre,
                FechaInicio = DateTime.Parse(fechaInicio)
            };
            ITarea tareaClonada = tarea.Clonar();

            Assert.Equal(tarea, tareaClonada);
        }
Ejemplo n.º 16
0
        public void EliminarTarea(int id)
        {
            ITarea tarea = ObtenerTarea(id);

            eliminarPersonasEnTarea(tarea);
            eliminarAntecesoras(tarea);
            eliminarSubtareasSiTiene(tarea);

            Tareas.Remove(Tareas.Find(id));
            SaveChanges();
        }
Ejemplo n.º 17
0
 private string crearMensajeElminacion(ITarea tarea)
 {
     if (esCompuesta(tarea))
     {
         return("¿Seguro desea eliminar esta subtarea compuesta?\n" +
                "Esto eliminará todas las subtareas que la componen.");
     }
     else
     {
         return("¿Seguro desea eliminar esta subtarea?");
     }
 }
Ejemplo n.º 18
0
        public ITarea ObtenerTarea(int id)
        {
            ITarea t      = null;
            var    tareas = from r in Tareas.Include(ENTIDAD_PERSONA)//.Include("Antecesoras").Include("Subtareas")
                            where r.TareaID == id
                            select r;

            foreach (Tarea ta in tareas)
            {
                t = ta;
            }
            return(t);
        }
        private void editarTareaVentana(ITarea tarea, bool esNuevaTarea)
        {
            VentanaDetallesTarea ventanaDetalles = new VentanaDetallesTarea(tarea, esNuevaTarea, contexto);

            ventanaDetalles.ShowDialog(this);
            foreach (Form formulario in Application.OpenForms)
            {
                if (estaCerradaVentanaDetallesTarea(formulario))
                {
                    inicializarComponentes();
                    break;
                }
            }
        }
Ejemplo n.º 20
0
        private TreeNode generarNodoArbol(ITarea tarea)
        {
            TreeNode nodoRetorno = new TreeNode();

            if (esCompuesta(tarea))
            {
                nodoRetorno = generarNodoArbolTareaCompuesta((TareaCompuesta)tarea);
            }
            else
            {
                nodoRetorno = generarNodoArbolTareaSimple(tarea);
            }
            return(nodoRetorno);
        }
        public void CloneadoTareaSimple(string nombre,
                                        string fechaInicio, string fechaFinalizacion)
        {
            Tarea tarea = new TareaSimple(new ContextoGestorProyectos())
            {
                Nombre            = nombre,
                FechaInicio       = DateTime.Parse(fechaInicio),
                FechaFinalizacion = DateTime.Parse(fechaFinalizacion)
            };

            ITarea tareaCloneada = tarea.Clonar();

            Assert.Equal(tarea, tareaCloneada);
        }
Ejemplo n.º 22
0
 private void cambiarATareaSimpleSimple(TareaCompuesta tareaCompuesta, DateTime fechaFinalizacion, int duracionPendiente)
 {
     if (tareaCompuesta.Subtareas.Count == 0)
     {
         tarea = new TareaSimple(contexto)
         {
             Nombre            = tarea.Nombre,
             FechaInicio       = tareaCompuesta.FechaInicio,
             FechaFinalizacion = fechaFinalizacion,
             DuracionPendiente = duracionPendiente,
             Prioridad         = tareaCompuesta.Prioridad,
             Antecesoras       = tareaCompuesta.Antecesoras,
             Descripcion       = tareaCompuesta.Descripcion,
             Objetivo          = tareaCompuesta.Objetivo,
             Personas          = tareaCompuesta.Personas
         };
     }
 }
Ejemplo n.º 23
0
        private void buttonGuardar_Click(object sender, EventArgs e)
        {
            ITarea tareaAnterior = tarea.Clonar();
            bool   confirmacion  = AyudanteVisual.CartelConfirmacion(crearMensaje(), "Impacto en la duracion del proyecto");

            if (!confirmacion && esNuevaTarea)
            {
                eliminarTareaActual();
                this.Close();
            }
            else if (!(confirmacion || esNuevaTarea))
            {
                InicializarComponentes();
            }
            else if (confirmacion)
            {
                asignarValoresTarea();
            }
            Close();
        }
Ejemplo n.º 24
0
        public void ModificarTarea(ITarea tarea)
        {
            var t = Tareas.Find(tarea.TareaID);

            t.Nombre           = tarea.Nombre;
            t.Objetivo         = tarea.Objetivo;
            t.Descripcion      = tarea.Descripcion;
            t.DuracionEstimada = tarea.DuracionEstimada;
            t.Personas         = tarea.Personas;
            t.Antecesoras      = tarea.Antecesoras;
            t.FechaInicio      = tarea.FechaInicio;
            t.Prioridad        = tarea.Prioridad;
            if (esTareaCompuesta(tarea))
            {
                ((TareaCompuesta)t).Subtareas = ((TareaCompuesta)tarea).Subtareas;
            }
            else
            {
                ((TareaSimple)t).FechaFinalizacion = ((TareaSimple)tarea).FechaFinalizacion;
            }
            SaveChanges();
        }
Ejemplo n.º 25
0
        public bool AdicionaTarea(ITarea tarea)
        {
            Tarea t = tarea as Tarea;

            if (arbol == null)
            {
                arbol = new IntervalTree <Tarea, DateTime>(t, Color.Black);
            }
            foreach (Tarea item in arbol.Overlap(t))
            {
                if (!item.Equals(t) && CompartenRecursos(t, item))
                {
                    return(false);
                }
            }
            IntervalTree <Tarea, DateTime> .InsertKey(t, arbol);

            foreach (Tarea item in t.Subtareas)
            {
                IntervalTree <Tarea, DateTime> .InsertKey(item, arbol);
            }
            return(true);
        }
Ejemplo n.º 26
0
        private void asignarValoresTarea()
        {
            cambiarNombreTarea();
            cambiarObjetivoTarea();
            cambiarPrioridadTarea();
            cambiarDescripcionTarea();
            cambiarFechaDeInicio();
            IProyecto padre        = tarea.ObtenerProyectoPadre();
            String    modificacion = "La duración pendiente se modificó de " + padre.CalcularDuracionPendiente();

            if (!esCompuesta(tarea))
            {
                TareaSimple tareaSimple = (TareaSimple)tarea;
                cambiarDuracionPendiente(tareaSimple);
                cambiarFechaFinalizacion(tareaSimple);
                tarea = tareaSimple;
            }
            tarea.DuracionEstimada = Int32.Parse(textBoxDuracionEstimada.Text);
            contexto.ModificarTarea(tarea);
            padre         = tarea.ObtenerProyectoPadre();
            modificacion += " a " + padre.CalcularDuracionPendiente();
            padre.AgregarModificacion(modificacion);
            contexto.ModificarProyecto(padre);
        }
 public bool ModificarTareaUsuarioComun(ITarea tarea)
 {
     throw new NotImplementedException();
 }
 private static bool EsUnaTareaSimple(ITarea tarea)
 {
     return(tarea.GetType() == typeof(TareaSimple) || tarea.GetType().BaseType == typeof(TareaSimple));
 }
 private static String GenerarTextoAMostrar(ITarea tarea)
 {
     return(tarea.ToString());
 }
Ejemplo n.º 30
0
 private static bool esTareaCompuesta(ITarea tarea)
 {
     return(tarea.GetType() == typeof(TareaCompuesta) || tarea.GetType().BaseType == typeof(TareaCompuesta));
 }