Beispiel #1
0
 public void Test_GetItemType_ST()
 {
     Assert.AreEqual(ItemType.Fish, ALCore.GetItemType(SpeciesType.Fish));
     Assert.AreEqual(ItemType.Invertebrate, ALCore.GetItemType(SpeciesType.Invertebrate));
     Assert.AreEqual(ItemType.Plant, ALCore.GetItemType(SpeciesType.Plant));
     Assert.AreEqual(ItemType.Coral, ALCore.GetItemType(SpeciesType.Coral));
 }
Beispiel #2
0
 public void Test_GetItemType_IT()
 {
     Assert.AreEqual(ItemType.Additive, ALCore.GetItemType(InventoryType.Additive));
     Assert.AreEqual(ItemType.Chemistry, ALCore.GetItemType(InventoryType.Chemistry));
     Assert.AreEqual(ItemType.Equipment, ALCore.GetItemType(InventoryType.Equipment));
     Assert.AreEqual(ItemType.Maintenance, ALCore.GetItemType(InventoryType.Maintenance));
     Assert.AreEqual(ItemType.Furniture, ALCore.GetItemType(InventoryType.Furniture));
     Assert.AreEqual(ItemType.Decoration, ALCore.GetItemType(InventoryType.Decoration));
 }
Beispiel #3
0
        /// <summary>
        /// Cleaning waste space
        /// </summary>
        public void CleanSpace()
        {
            var transfers = QueryTransfers();

            foreach (Transfer rec in transfers)
            {
                var itemRec = GetRecord(rec.ItemType, rec.ItemId);

                bool     valid        = true;
                ItemType sourItemType = ItemType.None;
                switch (itemRec.EntityType)
                {
                case EntityType.Aquarium:
                case EntityType.Species:
                case EntityType.Nutrition:
                case EntityType.Device:
                case EntityType.Maintenance:
                case EntityType.Measure:
                case EntityType.Note:
                case EntityType.Schedule:
                case EntityType.Transfer:
                case EntityType.Snapshot:
                case EntityType.Brand:
                case EntityType.Shop:
                case EntityType.TSPoint:
                    break;

                case EntityType.Inhabitant:
                    var inhab   = itemRec as Inhabitant;
                    var species = GetRecord <Species>(inhab.SpeciesId);
                    sourItemType = ALCore.GetItemType(species.Type);
                    valid        = rec.ItemType == sourItemType;
                    break;

                case EntityType.Inventory:
                    var invent = itemRec as Inventory;
                    sourItemType = ALCore.GetItemType(invent.Type);
                    valid        = rec.ItemType == sourItemType;
                    break;
                }

                if (!valid)
                {
                    string str = string.Format("itemId={0}, itemType={1}, sourItemType={2}", rec.ItemId, rec.ItemType, sourItemType);
                    System.Diagnostics.Debug.WriteLine(str);
                }
            }

            fDB.Execute("drop table if exists Expense");
            fDB.Execute("VACUUM;");
        }
Beispiel #4
0
        public bool CheckConstraints(Entity entity)
        {
            // any links?
            bool result = false;

            switch (entity.EntityType)
            {
            case EntityType.Aquarium:
            {
                var      aqmRec   = entity as Aquarium;
                ItemType itemType = ItemType.Aquarium;
                result = HasTransfers(fDB, entity.Id, itemType) || HasAquariumLinks(fDB, entity.Id) || HasAquariumSTT(fDB, entity.Id);
            }
            break;

            case EntityType.Inhabitant:
            {
                var         inhRec      = entity as Inhabitant;
                SpeciesType speciesType = GetSpeciesType(inhRec.SpeciesId);
                ItemType    itemType    = ALCore.GetItemType(speciesType);
                result = HasTransfers(fDB, entity.Id, itemType) || HasSnapshots(fDB, entity.Id, itemType);
            }
            break;

            case EntityType.Species:
            {
                var    spcRec = entity as Species;
                string query  = string.Format("select count(*) as value from Inhabitant where SpeciesId = {0}", entity.Id);
                result = HasCount(fDB, query);
            }
            break;

            case EntityType.Nutrition:
            {
                var      nutrRec  = entity as Nutrition;
                ItemType itemType = ItemType.Nutrition;
                result = HasTransfers(fDB, entity.Id, itemType);
            }
            break;

            case EntityType.Device:
            {
                var      devRec   = entity as Device;
                ItemType itemType = ItemType.Device;
                result = HasTransfers(fDB, entity.Id, itemType);
            }
            break;

            case EntityType.Inventory:
            {
                // for Soils in the future - links from aquarium records
                var      invRec   = entity as Inventory;
                ItemType itemType = ALCore.GetItemType(invRec.Type);
                result = HasTransfers(fDB, entity.Id, itemType);
            }
            break;

            case EntityType.Maintenance:
            case EntityType.Measure:
            case EntityType.Note:
            case EntityType.Schedule:
            case EntityType.Transfer:
            case EntityType.Snapshot:
                // default, no external links
                break;

            case EntityType.Brand:
            case EntityType.Shop:
                // default, because it is not used as a reference table
                break;

            case EntityType.TSPoint:
            {
                var    tspRec = entity as TSPoint;
                string query  = string.Format("select count(*) as value from Device where PointId = {0}", entity.Id);
                result = HasCount(fDB, query);
            }
            break;
            }

            return(result);
        }