Ejemplo n.º 1
0
 public bool AgregarAntecesora(Tarea antecesora)
 {
     if (antecesora.Equals(this))
     {
         return(false);
     }
     if (antecesora.FechaFinalizacion > FechaInicio)
     {
         return(false);
     }
     Antecesoras.Add(antecesora);
     return(true);
 }
        private Tarea tareaFechaMayor()
        {
            DateTime fechaRetorno = DateTime.MinValue;
            Tarea    tareaMayor   = null;

            foreach (Tarea tarea in Subtareas)
            {
                if (tarea.FechaFinalizacion >= fechaRetorno)
                {
                    tareaMayor = tarea;
                }
            }
            return(tareaMayor);
        }
        public override bool EstaEnSubtareas(Tarea tarea)
        {
            TareaCompuesta tareaCompuesta = ((TareaCompuesta)this);

            if (tareaCompuesta.Subtareas.Contains(tarea))
            {
                return(true);
            }
            foreach (Tarea tareaActual in tareaCompuesta.Subtareas)
            {
                return(tareaActual.EstaEnSubtareas(tarea));
            }
            return(false);
        }
Ejemplo n.º 4
0
        public Tarea UltimaAntecesora()
        {
            Tarea    antecesoraMasGrande = null;
            DateTime mayorFecha          = DateTime.MinValue;

            foreach (Tarea tarea in Antecesoras)
            {
                if (tarea.FechaFinalizacion > mayorFecha)
                {
                    mayorFecha          = tarea.FechaFinalizacion;
                    antecesoraMasGrande = tarea;
                }
            }
            return(antecesoraMasGrande);
        }
 public bool AgregarSubtarea(Tarea subtarea)
 {
     if (Equals(subtarea))
     {
         return(false);
     }
     if (tareaIniciaDespues(subtarea))
     {
         Subtareas.Add(subtarea);
     }
     else
     {
         throw new FechaInvalida();
     }
     return(true);
 }
        public override int CalcularDuracionPendiente()
        {
            Tarea tarea = tareaFechaMayor();

            if (tarea == null)
            {
                return(0);
            }
            int valorRetorno = tarea.CalcularDuracionPendiente();

            foreach (Tarea tareaAntecesora in tareaFechaMayor().Antecesoras)
            {
                valorRetorno += tareaAntecesora.CalcularDuracionPendiente();
            }
            return(valorRetorno);
        }
Ejemplo n.º 7
0
        public List <Tarea> ObtenerCaminoCritico()
        {
            List <Tarea> retorno        = new List <Tarea>();
            Tarea        tareaMasGrande = tareaQueFinalizaUltima();

            if (tareaMasGrande != null)
            {
                retorno.Add(tareaMasGrande);
            }
            while (esTareaAntecesora(tareaMasGrande))
            {
                tareaMasGrande = tareaMasGrande.UltimaAntecesora();
                if (tareaMasGrande != null)
                {
                    retorno.Add(tareaMasGrande);
                }
            }
            return(retorno);
        }
Ejemplo n.º 8
0
        public override bool Equals(object obj)
        {
            if (Convert.IsDBNull(obj))
            {
                return(false);
            }
            Tarea tarea = (Tarea)obj;

            if (TareaID == 0)
            {
                return(tarea.Nombre.Equals(this.Nombre) &&
                       tarea.Objetivo.Equals(Objetivo) &&
                       tarea.FechaEsIgual(tarea.FechaInicio, this.FechaInicio) &&
                       tarea.Prioridad == this.Prioridad);
            }
            else
            {
                return(tarea.TareaID == TareaID);
            }
        }
 private bool tareaIniciaDespues(Tarea tarea)
 {
     return(FechaEsMenor(this.FechaInicio, tarea.FechaInicio) ||
            FechaEsIgual(this.FechaInicio, tarea.FechaInicio));
 }
Ejemplo n.º 10
0
 public override bool EstaEnSubtareas(Tarea tarea)
 {
     return(false);
 }
Ejemplo n.º 11
0
 public abstract bool EstaEnSubtareas(Tarea tarea);
Ejemplo n.º 12
0
 public void AgregarTarea(Tarea tarea)
 {
     Tareas.Add(tarea);
 }
Ejemplo n.º 13
0
 private bool esTareaAntecesora(Tarea tareaMasGrande)
 {
     return(tareaMasGrande != null);
 }