| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace crusherScanner
- {
- internal class OreDefData
- {
- private static HashSet<Samples> SampleDataCache = new();
- /// <summary>
- /// Check if this sample has a prefix that need checking.
- /// </summary>
- /// <param name="scanned">Scan object data.</param>
- /// <returns>False on error. True on success.</returns>
- public static Scan CheckSampleType(Scan scanned)
- {
- string[] OreDefTypesArray;
- string OreDefTypes = Properties.Settings.Default.OreDefTypes;
- if (OreDefTypes.Contains(','))
- {
- OreDefTypesArray = OreDefTypes.Split(',');
- for (int i = 0; i < OreDefTypesArray.Length; i++)
- {
- if (scanned.barcode.Contains(OreDefTypesArray[i]))
- {
- scanned.sampleType = OreDefTypesArray[i];
- return scanned;
- }
- }
- }
- else
- {
- MessageBox.Show("OreDef prefix must be a comma seperated list.","Error");
- scanned.sampleType = "Error!";
- }
- return scanned;
- }
- public static Scan CheckContaminates(Scan scanned)
- {
- scanned.sampleData = new();
-
- if (SampleDataCache.Count == 0)
- {
- SampleDataCache = FileAccess.GetOreDefData(SampleDataCache,scanned.barcode);
- }
- scanned.BufferCount = SampleDataCache.Count;
- for (int i = 0; i < 2; i++)
- {
- foreach (var Sample in SampleDataCache)
- {
- if (scanned.barcode == Sample.Sid)
- {
- scanned.sampleData = Sample;
- if (Sample.HammerOil || Sample.Manganese || Sample.Plastic || Sample.Pyrite)
- {
- scanned.Contaminated = true;
- return scanned;
- }
- return scanned;
- }
- }
- SampleDataCache = FileAccess.GetOreDefData(SampleDataCache,scanned.barcode);
- scanned.BufferCount = SampleDataCache.Count;
- }
- scanned.SampleNotFound = true;
- return scanned;
- }
- }
- }
|