예제 #1
0
 public List <Tarea> ListarPorTema(int temaId)
 {
     try
     {
         return(tareaDAO.ListarPorTema(temaId));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #2
0
        public List <Modelo.TareaInforme>[] ObtenerEstadoTareasPorDia(int temaId)
        {
            try
            {
                var tareas = tareaDAO.ListarPorTema(temaId);
                if (tareas != null && tareas.Count > 0)
                {
                    List <Modelo.TareaInforme>[] resultado = new List <Modelo.TareaInforme> [3];
                    resultado[0] = new List <TareaInforme>();
                    resultado[1] = new List <TareaInforme>();
                    resultado[2] = new List <TareaInforme>();
                    DateTime inicio = DateTime.MaxValue, fin = DateTime.MinValue;
                    foreach (var item in tareas)
                    {
                        if (item.FechaPorHacer < inicio)
                        {
                            inicio = item.FechaPorHacer;
                        }
                        if (item.FechaFinalizada > fin)
                        {
                            fin = item.FechaFinalizada;
                        }
                    }

                    for (DateTime date = inicio; date <= fin; date = date.AddDays(1))
                    {
                        var tareaToDo  = new TareaInforme();
                        var tareaDoing = new TareaInforme();
                        var tareaDone  = new TareaInforme();
                        tareaToDo.Fecha  = date;
                        tareaDoing.Fecha = date;
                        tareaDone.Fecha  = date;
                        foreach (var tarea in tareas)
                        {
                            // funcionamiento TODO
                            if (tarea.Estado.DBValue == 1)// con estado 1
                            {
                                if (tarea.FechaPorHacer.Date <= date.Date)
                                {
                                    tareaToDo.Cantidad++;
                                }
                            }
                            else
                            {
                                if (tarea.FechaPorHacer.Date <= date.Date && tarea.FechaEnCurso.Date > date.Date)// cuando tiene estado 2 o 3
                                {
                                    tareaToDo.Cantidad++;
                                }
                            }

                            //funcionamiento DOING
                            if (tarea.Estado.DBValue == 2)// con estado 2
                            {
                                if (tarea.FechaEnCurso.Date <= date.Date)
                                {
                                    tareaDoing.Cantidad++;
                                }
                            }
                            if (tarea.Estado.DBValue == 3 && tarea.FechaEnCurso.Date <= date.Date && tarea.FechaFinalizada.Date > date.Date)// con estado 3
                            {
                                tareaDoing.Cantidad++;
                            }

                            //funcionamiento DONE
                            if (tarea.Estado.DBValue == 3)// con estado 3
                            {
                                if (tarea.FechaFinalizada.Date <= date.Date)
                                {
                                    tareaDone.Cantidad++;
                                }
                            }
                        }
                        resultado[0].Add(tareaToDo);
                        resultado[1].Add(tareaDoing);
                        resultado[2].Add(tareaDone);
                    }
                    return(resultado);
                }
                else
                {
                    List <Modelo.TareaInforme>[] nulo = new List <Modelo.TareaInforme> [3];
                    nulo[0] = new List <TareaInforme>();
                    nulo[1] = new List <TareaInforme>();
                    nulo[2] = new List <TareaInforme>();
                    return(nulo);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }