示例#1
0
        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"));
            }
        }
示例#2
0
        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);
            }
        }