public void CheckMandatoryContosChangedByVersions() { AbstractBilancio banca = _bilancio.FindNodeById(BANCA4); AbstractBilancio bancaPreventivo = _preventivo.FindNodeById(BANCA4); if (banca == null && bancaPreventivo == null) { //vuol dire che non cè la banca allora creo la lista delle banche per il bilancio e per il preventivo //crerco il nodo deli depositi bancari AbstractBilancio depositi = _bilancio.FindNodeById(DEPOSITI_BANCARI_E_POSTALI); depositi.Add(new Conto("Banca4", "A.D.2.d", "A.D.2")); depositi.Add(new Conto("Banca5", "A.D.2.e", "A.D.2")); depositi.Add(new Conto("Banca6", "A.D.2.f", "A.D.2")); AbstractBilancio depositiPreventivo = _preventivo.FindNodeById(DEPOSITI_BANCARI_E_POSTALI); depositiPreventivo.Add(new ContoPreventivo("Banca4", "A.D.2.d", "A.D.2")); depositiPreventivo.Add(new ContoPreventivo("Banca5", "A.D.2.e", "A.D.2")); depositiPreventivo.Add(new ContoPreventivo("Banca6", "A.D.2.f", "A.D.2")); } }
private bool UpdateBilancio(NodeUpdate item) { AbstractBilancio structure = GetStructure(item); if (structure == null)//c'è un errore nel file { return(false); } //il parent non può essere una stringa nulla poichè rappresenterebbe //la radice dell'albero che può avere solo le voci di spesa, entrate e finanza if (string.IsNullOrEmpty(item.ParentId)) { return(false); } //se devo aggiungere o modificare un nodo esso deve avere un //id ed una descrizione non nulli if (string.IsNullOrEmpty(item.Id)) { return(false); } if (string.IsNullOrEmpty(item.Description)) { return(false); } //a questo punto verifico per prima cosa l'esistenza del parent //se non esiste c'è un errore nel file. //anche se teoricamente il processo potrebbe continuare è bene che il file sia sempre corretto AbstractBilancio parent = structure.FindNodeById(item.ParentId); if (parent == null) { return(false); } //a questo punto il parent esiste. //rimane da verifica che il nodo da aggiornare se esiste esiste sotto il parent // altrimenti si tratta di una imprecisione nel file di aggiornamento AbstractBilancio nodeInStructure = structure.FindNodeById(item.Id); AbstractBilancio nodeInParent = structure.FindNodeById(item.Id); //se non sono nulli vuol dire che il nodo è al di sotto del parent //ed è pronto per essere modificato if (nodeInParent != null && nodeInStructure != null) { nodeInParent.Description = item.Description; return(true); } else if (nodeInParent == null && nodeInStructure == null)//il nodo non esiste e va creato { AbstractBilancio b = CreateStructureItem(item.ContoType, item.Id, item.Description, item.ParentId); b.ParentName = parent.Description; parent.Add(b); return(true); } else // c'è un errore nel file { return(false); } }