12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using Application.ATG_Classic_App.Model;
- using AutoMapper;
- using Edge.Core.IndustryStandardInterface.ATG;
- using Microsoft.Extensions.DependencyInjection;
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace Application.ATG_Classic_App
- {
- internal class RichTankInfo
- {
- internal RichTankInfo(IServiceProvider services,
- TankConfig tankConfig, TankOverallConfig tankOverallConfig, IProbeHandler probeHandler)
- {
- if (tankConfig == null || tankOverallConfig == null || probeHandler == null
- || tankConfig.TankProfileDatas == null
- || probeHandler.Probe.DeviceId != tankConfig.ProbeConfig.DeviceId)
- throw new ArgumentException("Miss or invalid configuation for Tank");
- var tankLimit = services.GetRequiredService<IMapper>().Map<TankLimit>(tankConfig.TankLimitConfig);
- var tankProduct = services.GetRequiredService<IMapper>().Map<Product>(tankConfig.ProductConfig);
- var tank = new Tank()
- {
- TankNumber = tankConfig.TankNumber,
- State = TankState.Idle,
- Label = tankConfig.Label,
- Diameter = tankConfig.Diameter,
- Limit = tankLimit,
- Probe = new Probe()
- {
- DeviceId = tankConfig.ProbeConfig.DeviceId,
- HardwareIdentity = probeHandler.Probe.HardwareIdentity,
- ProbeLength = probeHandler.Probe.ProbeLength,
- ProbeOffset = tankConfig.ProbeConfig.ProbeOffset,
- WaterOffset = tankConfig.ProbeConfig.WaterOffset,
- },
- Product = tankProduct
- };
- this.Tank = tank;
- this.TankConfig = tankConfig;
- this.TankOverallConfig = tankOverallConfig;
- }
- public Tank Tank { get; }
- public TankConfig TankConfig { get; }
- public TankOverallConfig TankOverallConfig { get; }
- }
- }
|