Exemplo n.º 1
0
        /// <inheritdoc/>
        public virtual bool AddItem <T>(T item, ModuleManager moduleManager, bool ignoreLinkedTableUpdate = false) where T : AtomicItem
        {
            T newItem = item;

            newItem.Encrypted = false;

            var itemSource = GetAllItems <T>();

            dbMemoryDirty = true;

            if (!AddItemAdditionCheck(item))
            {
                return(false);
            }

            if (newItem.Id == -1)
            {
                newItem.Id = itemSource != null?GetID(itemSource) : 0;

                if (ignoreLinkedTableUpdate == false)
                {
                    UpdateLinkedTableValues(item, moduleManager);
                }

                return(dbAccess.AddItemIntoDatabase(newItem).Result);
            }
            else
            {
                oldItem       = GetItem <T>(newItem.Id);
                dbMemoryDirty = true;

                if (ignoreLinkedTableUpdate == false)
                {
                    UpdateLinkedTableValues(item, moduleManager);
                }

                return(dbAccess.EditItemInDatabase(newItem).Result);
            }
        }