123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using Edge.Core.IndustryStandardInterface.ATG;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- namespace Applications.UniversalApi_WebConsole_App
- {
- public class MockAutoTankGaugeController : IAutoTankGaugeController
- {
- public string MetaConfigName => "I'm a mock controller";
- public int DeviceId => 999;
- //private List<Tank> tanks;
- public IEnumerable<Tank> Tanks { get; }
- public SystemUnit SystemUnit { get; }
- public AtgState State => throw new NotImplementedException();
- public event EventHandler<AtgStateChangeEventArg> OnStateChange;
- public event EventHandler<AtgAlarmEventArg> OnAlarm;
- public MockAutoTankGaugeController(List<Tank> tanks, SystemUnit systemUnit)
- {
- this.Tanks = tanks;
- this.SystemUnit = systemUnit;
- }
- public void FireOnStateChangeEvent(AtgState state)
- {
- var safe = this.OnStateChange;
- safe?.Invoke(this, new AtgStateChangeEventArg(state,""));
- }
- public Task<IEnumerable<Delivery>> GetTankDeliveryAsync(int tankNumber, int pageRowCount = 10, int pageIndex = 0, DateTime? filterTimestamp = null)
- {
- //if (tankNumber.HasValue)
- // if (!this.Tanks.Select(t => t.TankNumber).Contains((byte)tankNumber)) throw new ArgumentException("Controller does not have such a tank with number: " + tankNumber.Value);
- if (tankNumber == null)
- {
- return Task.FromResult(this.Tanks.Select(t => new Edge.Core.IndustryStandardInterface.ATG.Delivery()
- {
- TankNumber = t.TankNumber,
- StartingDateTime = DateTime.Now.Subtract(new TimeSpan(24 + t.TankNumber * 24, 0, 0)),
- EndingDateTime = DateTime.Now.Subtract(new TimeSpan(24 + t.TankNumber * 24, 10, 0)),
- }));
- }
- else
- {
- return Task.FromResult(this.Tanks.Where(t => t.TankNumber == tankNumber)
- .Select(t => new Edge.Core.IndustryStandardInterface.ATG.Delivery()
- {
- TankNumber = t.TankNumber,
- StartingDateTime = DateTime.Now.Subtract(new TimeSpan(24 + t.TankNumber * 24, 0, 0)),
- EndingDateTime = DateTime.Now.Subtract(new TimeSpan(24 + t.TankNumber * 24, 10, 0)),
- }));
- }
- }
-
- public async Task<TankReading> GetTankReadingAsync(int tankNumber)
- {
- return new TankReading()
- {
- Height = 1800 - new Random().Next(100, 1000),
- Water = 0 + new Random().Next(10, 500),
- Temperature = 20 + new Random().Next(1, 30),
- Volume = 4000 + new Random().Next(100, 2000),
- WaterVolume = 100 + new Random().Next(2, 200),
- };
- }
- public Task<IEnumerable<Inventory>> GetTankInventoryAsync(int tankNumber, int pageRowCount = 10, int pageIndex = 0, DateTime? filterTimestamp = null)
- {
- throw new NotImplementedException();
- }
- public Task<IEnumerable<Alarm>> GetTankAlarmAsync(int tankNumber, int pageRowCount = 10, int pageIndex = 0, DateTime? filterTimestamp = null)
- {
- throw new NotImplementedException();
- }
- //public async Task<IEnumerable<TankReadingDto>> GetTankReadingAsync(int? tankNumber)
- //{
- // List<TankReadingDto> tankReadings = new List<TankReadingDto>();
- // foreach (var tank in this.Tanks)
- // {
- // var reading = new TankReadingDto
- // {
- // tankNumber = tank.TankNumber,
- // Height = 1800 - new Random().Next(100, 1000),
- // Water = 0 + new Random().Next(10, 500),
- // Temperature = 20 + new Random().Next(1, 30),
- // Volume = 4000 + new Random().Next(100, 2000),
- // WaterVolume = 100 + new Random().Next(2, 200),
- // };
- // tankReadings.Add(reading);
- // };
- // if (tankNumber.HasValue)
- // return tankReadings.Where(r => r.tankNumber == tankNumber.Value);
- // else
- // return tankReadings;
- //}
- }
- }
|