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); }
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); }
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); }
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)); }
public override bool EstaEnSubtareas(Tarea tarea) { return(false); }
public abstract bool EstaEnSubtareas(Tarea tarea);
public void AgregarTarea(Tarea tarea) { Tareas.Add(tarea); }
private bool esTareaAntecesora(Tarea tareaMasGrande) { return(tareaMasGrande != null); }