//loadXml public static Lista LoadNodoXml(XmlNode nodoListas) { XmlNode nodo, nodoListaTemporal = nodoListas.ChildNodes[0].FirstChild; Lista lista; long idLista; listasGuardadas.Clear(); //pongo las listas guardadas nodoListas = nodoListas.ChildNodes[1]; //creo las listas for (int i = 0; i < nodoListas.ChildNodes.Count; i++) { lista = new Lista(nodoListas.ChildNodes[i]); listasGuardadas.Add(lista.IdUnico, lista); } //pongo la herencia for (int i = 0; i < nodoListas.ChildNodes.Count; i++) { idLista = Convert.ToInt64(nodoListas.ChildNodes[i].ChildNodes[(int)NodoLista.Id].InnerText); nodo = nodoListas.ChildNodes[i].ChildNodes[(int)NodoLista.Herencia]; PonHerenciaXml(nodo, listasGuardadas[idLista]); } //añado tareas ocultas y hechas for (int j = 0; j < nodoListas.ChildNodes.Count; j++) { nodo = nodoListas.ChildNodes[j]; PonTareasHechasYOclutasXml(nodo, listasGuardadas[Convert.ToInt64(nodo.ChildNodes[(int)NodoLista.Id].InnerText)]); } if (nodoListaTemporal != null && nodoListaTemporal.HasChildNodes) { lista = new Lista(nodoListaTemporal); PonHerenciaXml(nodoListaTemporal.ChildNodes[(int)NodoLista.Herencia], lista); PonTareasHechasYOclutasXml(nodoListaTemporal, lista); } else { lista = null; } return(lista); }
//saveXml public static XmlNode SaveNodoXml(Lista listaTemporal = null) { XmlDocument xmldoc = new XmlDocument(); StringBuilder strNodo = new StringBuilder("<Listas>"); strNodo.Append("<ListaTemporal>"); if (listaTemporal != null) { strNodo.Append(listaTemporal.ToXml().OuterXml); } strNodo.Append("</ListaTemporal>"); strNodo.Append("<ListasGuardadas>"); foreach (KeyValuePair <long, Lista> lista in listasGuardadas) { strNodo.Append(lista.Value.ToXml().OuterXml); } strNodo.Append("</ListasGuardadas>"); strNodo.Append("</Listas>"); xmldoc.LoadXml(strNodo.ToString()); xmldoc.Normalize(); return(xmldoc.FirstChild); }
public static Tarea[] TareasVisibles(Lista lista) { ListaUnica <Tarea> tareasVisibles = new ListaUnica <Tarea>(); Lista[] herencia = lista.Herencia(); Tarea[] tareas; tareasVisibles.AddRange(Tarea.TareasLista(lista)); for (int i = 0; i < herencia.Length; i++) { tareas = TareasVisibles(herencia[i]); for (int j = 0; j < tareas.Length; j++) { if (!tareasVisibles.Contains(tareas[j])) { tareasVisibles.Add(tareas[j]); } } } tareasVisibles.RemoveRange(TareasOcultas(lista)); return(tareasVisibles.ToArray()); }
void TxtBxTextoHaBuscar_TextChanged(object sender, TextChangedEventArgs e) { Tarea[] tareas; Lista[] listas; stkListasEncontradas.Children.Clear(); if (rdBtnDescripcionTarea.IsChecked.Value) { //busco las tareas que contienen esa descripcion tareas = Tarea.Obtener(txtBxTextoHaBuscar.Text); //pongo las listas for (int i = 0; i < tareas.Length; i++) { stkListasEncontradas.Children.AddRange(ListaTareaHeredada.ListasTarea(tareas[i]).ToObjViewerArray(VisualizaLista)); } } else { //busco las listas que contienen ese nombre listas = Lista.Obtener(txtBxTextoHaBuscar.Text); stkListasEncontradas.Children.AddRange(listas.ToObjViewerArray(VisualizaLista)); } }
private void TareaHaEliminar(ObjViewer visor) { Tarea tarea = visor.Object as Tarea; bool hacer = false, esHeredada = !listaTareas.Contains(tarea); if (ckOmitirPregunta.IsChecked.Value || !esHeredada && MessageBox.Show("Se va a borrar de forma permanente, estas seguro?", "se requiere su atención", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes || esHeredada && MessageBox.Show("Se va ocultar", "Informacion", MessageBoxButton.OK, MessageBoxImage.Information) == MessageBoxResult.OK) { if (esHeredada) { hacer = Lista.Herederos(listaHaEditar).Length == 0; if (ckOmitirPregunta.IsChecked.Value || !hacer && MessageBox.Show("Esta lista tiene herederos y se quitara la tarea tambien de ellos (si esta hecha o oculta), estas conforme?", "se requiere su atención", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes) { hacer = true; } } else { hacer = true; } if (hacer) { try { tarea.Ocultar(listaHaEditar); } catch { Tarea.Eliminar(tarea); } main.ActivarTemporizadorAutoSave(); main.PonTareasLista(); stkTareasLista.Children.Remove(visor); CerrarSiNoHayTareasHaEliminar(); } } }
public static void QuitarHerederos(Lista listaActual) { Lista[] herederos = HerederosDirectos(listaActual); Tarea[] tareasLista = Tarea.TareasLista(listaActual); DateTime fechaHecho; for (int i = 0; i < herederos.Length; i++) { herederos[i].herencia.Remove(listaActual); } for (int i = 0; i < tareasLista.Length; i++) { fechaHecho = default(DateTime); if (tareasLista[i].EstaHecha(listaActual)) { fechaHecho = tareasLista[i].FechaHecho(listaActual); } tareasLista[i].VaciarListaHechosYOcultos(); if (!fechaHecho.Equals(default(DateTime))) { tareasLista[i].AñadirHecho(listaActual, fechaHecho); } } }
private void ISave(string nombre) { Action act; XmlDocument xml; StringBuilder strSave = new StringBuilder(); if (Dispatcher.InvokeRequired()) { act = () => ISave(nombre); Dispatcher.BeginInvoke(act).Wait(); } else { try { if (hiloCargarTareas != null) { hiloCargarTareas.Abort(); } xml = new XmlDocument(); strSave.Append("<TareasPendientes>"); strSave.Append(Categoria.SaveXmlNodo().OuterXml); strSave.Append(Lista.SaveNodoXml(listaActual.EsTemporal ? listaActual : null).OuterXml); strSave.Append("</TareasPendientes>"); xml.LoadXml(strSave.ToString()); xml.Normalize(); xml.Save(nombre); guardado = true; } finally { // temporizadorAutoSave.StopAndAbort(); } } }
public Tarea(Lista lista, XmlNode nodo) : this(lista, nodo.ChildNodes[(int)TareaXml.Descripcion].InnerText.DescaparCaracteresXML(), Convert.ToInt64(nodo.ChildNodes[(int)TareaXml.IdUnico].InnerText)) { }
//solo si esa lista tiene la tarea por herencia sino la elimina public Tarea(Lista lista, string contenido) : this(lista, contenido, DateTime.Now.Ticks) { }
public bool EstaDentro(Lista listaActual) { return(listasDeLaCategoria.Contains(listaActual)); }
public static Tarea[] TareasHeredadas(Lista lista) { return(lista.ToArray().Except(TareasLista(lista)).ToArray()); }
public void Quitar(Lista lista) { listasDeLaCategoria.Remove(lista); }
private void CreaListaNueva() { listaActual = new Lista(txboxNombreLista.Text); }
public VisorTarea(Lista lista, Tarea tarea) { InitializeComponent(); this.lista = lista; this.Tarea = tarea; }
public ListaTareaHeredada(Lista lista, Tarea tarea, bool mostrarLista) { this.Lista = lista; this.Tarea = tarea; this.mostrarLista = mostrarLista; }
public bool EstaVisible(Lista lista) { return(tareasPorLista.ContainsKey(lista) && (tareasPorLista[lista].Contains(this) || !listasTareaOculta.Contains(lista))); }
public bool EstaHecha(Lista lista) { return(listasTareaHecha.ContainsKey(lista)); }
public static Lista[] Herederos(Lista lista) { Lista[] herederos = IHerederos(lista).Except(new Lista[] { lista }).ToArray(); return(herederos); }
public static Lista[] HerederosDirectos(Lista lista) { return(listasGuardadas.Filtra((listaHeredera) => listaHeredera.Value.herencia.Contains(lista) ).ValuesToArray()); }
public static Lista[] Herencias(Lista listaActual) { return(IHerencias(listaActual).Except(new Lista[] { listaActual }).ToArray()); }
public Tarea(Lista lista) : this(lista, "") { }
public VisorTarea(Lista lista) : this(lista, null) { Tarea = Tarea; }
public void AñadirHecho(Lista lista, DateTime fechaHecho) { listasTareaHecha.AddOrReplace(lista, fechaHecho); }
public void QuitarHecho(Lista lista) { listasTareaHecha.Remove(lista); }
public void Desocultar(Lista lista) { listasTareaOculta.Remove(lista); }
public DateTime FechaHecho(Lista lista) { return(listasTareaHecha[lista]); }
public bool EsHeredable(Lista lista) { return(((IList <Lista>)ListasHeredables(this)).Contains(lista)); }