예제 #1
0
        public ACustomModuleView(LoadTypes type)
        {
            _id = Guid.NewGuid();
            IThermalPlantSettings customPlant = null;

            switch (type)
            {
            // Todo: case for each
            case LoadTypes.Cooling:
                customPlant = new CustomCoolingSupplyModule {
                    Id = _id, Name = "New Cooling Supply Module"
                };
                break;

            case LoadTypes.Elec:
                customPlant = new CustomElectricitySupplyModule {
                    Id = _id, Name = "New Electricity Supply Module"
                };
                break;

            case LoadTypes.Heating:
                customPlant = new CustomHeatingSupplyModule {
                    Id = _id, Name = "New Heating Supply Module"
                };
                break;
            }

            DistrictControl.Instance.ListOfPlantSettings.Add(customPlant);

            InitializeComponent();
            DataContext = new ACustomModuleViewModel {
                Id = _id
            };
        }
        /// <summary>
        /// </summary>
        /// <param name="plant"></param>
        /// <param name="alpha">uses a default value of 255 for the alpha channel (opaque).</param>
        /// <param name="cost"></param>
        public VariableCost(IThermalPlantSettings plant, byte alpha = 255)
        {
            var color = plant.Fill[plant.OutputType].Color;

            Fill = new SolidColorBrush(Color.FromArgb(alpha, color.R, color.G, color.B));
            Name = plant.Name + " Variable Cost";
            if (plant.Output != null)
            {
                Cost = plant.Output.Sum() * plant.V;
            }
        }
        /// <summary>
        /// </summary>
        /// <param name="plant"></param>
        /// <param name="alpha">uses a default value of 255 for the alpha channel (opaque).</param>
        /// <param name="cost"></param>
        public FixedCost(IThermalPlantSettings plant, byte alpha = 255)
        {
            var color = plant.Fill[plant.OutputType].Color;

            Fill = new SolidColorBrush(Color.FromArgb(alpha, color.R, color.G, color.B));
            Name = plant.Name + " Fixed Cost";
            if (plant.Output != null)
            {
                Cost = plant.Capacity * DistrictControl.PlanningSettings.AnnuityFactor * plant.F;
            }
        }