public void Test_IsInhabitant() { Assert.AreEqual(true, ALCore.IsInhabitant(ItemType.Fish)); Assert.AreEqual(true, ALCore.IsInhabitant(ItemType.Invertebrate)); Assert.AreEqual(true, ALCore.IsInhabitant(ItemType.Plant)); Assert.AreEqual(true, ALCore.IsInhabitant(ItemType.Coral)); }
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)); }
public void Test_IsAnimal() { Assert.AreEqual(true, ALCore.IsAnimal(SpeciesType.Fish)); Assert.AreEqual(true, ALCore.IsAnimal(SpeciesType.Invertebrate)); Assert.AreEqual(false, ALCore.IsAnimal(SpeciesType.Plant)); Assert.AreEqual(false, ALCore.IsAnimal(SpeciesType.Coral)); }
public WorkTime GetWorkTime(Aquarium aquarium) { int aquariumId = aquarium.Id; IList <Maintenance> maintenances = fDB.Query <Maintenance>("select * from Maintenance where (AquariumId = ? and Type between 8 and 9) order by [Timestamp] desc", aquariumId); DateTime startDate = ALCore.ZeroDate; DateTime stopDate = ALCore.ZeroDate; foreach (var mtn in maintenances) { if (mtn.Type == MaintenanceType.AquariumStopped && ALCore.IsZeroDate(stopDate)) { stopDate = mtn.Timestamp; } if (mtn.Type == MaintenanceType.AquariumStarted && ALCore.IsZeroDate(startDate)) { startDate = mtn.Timestamp; break; } } return(new WorkTime(startDate, stopDate)); //return new WorkTime(aquarium.StartDate, aquarium.StopDate); }
public static string GetRangeStr(double min, double max) { if (double.IsNaN(min) && double.IsNaN(max)) { return(string.Empty); } return(ALCore.GetDecimalStr(min) + " - " + ALCore.GetDecimalStr(max)); }
public void Test_IsLifesupport() { Assert.AreEqual(true, ALCore.IsLifesupport(ItemType.Nutrition)); Assert.AreEqual(true, ALCore.IsLifesupport(ItemType.Device)); Assert.AreEqual(true, ALCore.IsLifesupport(ItemType.Additive)); Assert.AreEqual(true, ALCore.IsLifesupport(ItemType.Chemistry)); Assert.AreEqual(false, ALCore.IsLifesupport(ItemType.Equipment)); }
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)); }
public string GetEntityName(Entity entity) { string result = string.Empty; switch (entity.EntityType) { case EntityType.Aquarium: case EntityType.Inhabitant: case EntityType.Species: case EntityType.Nutrition: case EntityType.Device: case EntityType.Inventory: case EntityType.Note: case EntityType.Schedule: case EntityType.Snapshot: case EntityType.Brand: case EntityType.Shop: case EntityType.TSPoint: result = entity.ToString(); break; case EntityType.Maintenance: { var mntRec = entity as Maintenance; string strType = Localizer.LS(ALData.MaintenanceTypes[(int)mntRec.Type].Name); string timestamp = ALCore.GetDateStr(mntRec.Timestamp); result = strType + " [" + timestamp + "]"; } break; case EntityType.Measure: { var msrRec = entity as Measure; string strType = Localizer.LS(LSID.Measure); string timestamp = ALCore.GetDateStr(msrRec.Timestamp); result = strType + " [" + timestamp + "]"; } break; case EntityType.Transfer: { var trnRec = entity as Transfer; var itemRec = GetRecord(trnRec.ItemType, trnRec.ItemId); string itName = (itemRec == null) ? string.Empty : itemRec.ToString(); string strType = Localizer.LS(ALData.TransferTypes[(int)trnRec.Type]); string timestamp = ALCore.GetDateStr(trnRec.Timestamp); result = strType + " [" + timestamp + ", " + itName + "]"; } break; default: result = entity.ToString(); break; } return(result); }
/// <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;"); }
private void PrepareValue(IList <MeasureValue> measures, double mVal, string sign, string uom, ValueRange[] ranges) { string strVal = !double.IsNaN(mVal) ? ALCore.GetDecimalStr(mVal) : string.Empty; string text = string.Format("{0}={1} {2}", sign, strVal, uom); Color color = Color.Black; ValueRange bounds = CheckValue(mVal, ranges); if (bounds != null) { color = bounds.Color; } var tval = new MeasureValue(sign, mVal, uom, strVal, text, color, ranges); measures.Add(tval); }
public string GetItemStateStr(int recId, ItemType itemType, out ItemState itemState) { DateTime exclusionDate; GetItemState(recId, itemType, out itemState, out exclusionDate); string strState; if (itemState == ItemState.Unknown) { strState = string.Empty; } else { string strExclusDate = ALCore.IsZeroDate(exclusionDate) ? "-" : ALCore.GetDateStr(exclusionDate); strState = string.Format("{0} [{1}]", Localizer.LS(ALData.ItemStates[(int)itemState]), strExclusDate); } return(strState); }
public void GetInhabitantDates(int recId, ItemType itemType, out DateTime inclusionDate, out DateTime exclusionDate, out int currAqmId) { currAqmId = -1; inclusionDate = ALCore.ZeroDate; exclusionDate = ALCore.ZeroDate; IList <Transfer> transfers = QueryTransfers(recId, (int)itemType); int count = 0; foreach (var trf in transfers) { switch (trf.Type) { case TransferType.Relocation: break; case TransferType.Purchase: case TransferType.Birth: count += (int)trf.Quantity; if (ALCore.IsZeroDate(inclusionDate)) { inclusionDate = trf.Timestamp; } break; case TransferType.Sale: case TransferType.Death: count -= (int)trf.Quantity; if (count == 0) { exclusionDate = trf.Timestamp; } break; } if (trf.TargetId > 0) { currAqmId = trf.TargetId; } } }
public void GetWaterChangeIntervals(int aquariumId, WorkTime workTime, out double avgChangeDays, out double lastChangeDays) { double changesDays = 0.0d; int changesCount = 0; DateTime dtPrev = ALCore.ZeroDate; var records = fDB.Query <Maintenance>("select * from Maintenance where ((AquariumId = ?) and (Type between 0 and 3) and (Timestamp >= ?)) order by [Timestamp]", aquariumId, workTime.Start); foreach (Maintenance rec in records) { if (!ALCore.IsZeroDate(dtPrev)) { int days = (rec.Timestamp.Date - dtPrev).Days; changesDays += days; changesCount += 1; } dtPrev = rec.Timestamp.Date; } avgChangeDays = changesDays / changesCount; lastChangeDays = (DateTime.Now.Date - dtPrev).Days; }
public void GetItemState(int recId, ItemType itemType, out ItemState itemState, out DateTime exclusionDate) { itemState = ItemState.Unknown; exclusionDate = ALCore.ZeroDate; IList <Transfer> transfers = QueryTransfers(recId, (int)itemType); foreach (var trf in transfers) { switch (trf.Type) { case TransferType.Death: if (ALCore.IsZeroDate(exclusionDate)) { itemState = ItemState.Dead; exclusionDate = trf.Timestamp; } break; case TransferType.Sale: if (ALCore.IsZeroDate(exclusionDate)) { itemState = ItemState.Sold; exclusionDate = trf.Timestamp; } break; case TransferType.Exclusion: if (ALCore.IsZeroDate(exclusionDate)) { itemState = ALData.ItemTypes[(int)itemType].ExclusionState; exclusionDate = trf.Timestamp; } break; } } }
public static string CastStr(double value, MeasurementType measurementType, int decimalDigits = 2, bool hideZero = false) { // sourceUoM = always only SI MeasurementUnit targetUnit = MeasurementUnit.Unknown; switch (measurementType) { case MeasurementType.Length: targetUnit = ALSettings.Instance.LengthUoM; break; case MeasurementType.Volume: targetUnit = ALSettings.Instance.VolumeUoM; break; case MeasurementType.Mass: targetUnit = ALSettings.Instance.MassUoM; break; case MeasurementType.Temperature: targetUnit = ALSettings.Instance.TemperatureUoM; break; } switch (targetUnit) { case MeasurementUnit.Centimeter: break; case MeasurementUnit.Inch: value = UnitConverter.cm2inch(value); break; case MeasurementUnit.Litre: break; case MeasurementUnit.UKGallon: break; case MeasurementUnit.USGallon: value = UnitConverter.l2gal(value); break; case MeasurementUnit.Kilogram: break; case MeasurementUnit.Pound: value = UnitConverter.kg2lb(value); break; case MeasurementUnit.DegreeCelsius: break; case MeasurementUnit.DegreeFahrenheit: value = UnitConverter.C2F(value); break; case MeasurementUnit.DegreeKelvin: value = UnitConverter.C2K(value); break; case MeasurementUnit.Unknown: default: break; } return(ALCore.GetDecimalStr(value, decimalDigits, hideZero)); }
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); }