public void CalculateCO2EmissionCost(PowerplantModel powerplant, FuelsModel fuels) { if (powerplant.Type != Enums.PowerplantType.Windturbine) { powerplant.CO2CostEmission = Math.Round(powerplant.P * 0.3m * fuels.Co2, 2); } }
private void UsePowerplant(PowerplantModel powerplant, FuelsModel fuels, ref int load, PowerplantModel nextTypePowerplant) { powerplant.P = GetPowerGenerated(powerplant, fuels, load, nextTypePowerplant); UpdateExpectedLoadRemaining(ref load, powerplant.P); runningCostService.CalculateCO2EmissionCost(powerplant, fuels); runningCostService.CalculateRunningCost(powerplant, fuels); powerplant.IsUsed = true; }
private int GetPowerGenerated(PowerplantModel powerplant, FuelsModel fuels, int load, PowerplantModel nextTypePowerplant = null) { if (powerplant.Type == PowerplantType.Windturbine) { return(UseWindturbine(powerplant, fuels)); } else { return(UseTurboJetAndGasFired(powerplant, load, nextTypePowerplant)); } }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); string carIDStr; NavigationContext.QueryString.TryGetValue("id", out carIDStr); this.carID = int.Parse(carIDStr); //load settings for units string distance, volume, average, currency; bool avgmethod; IsolatedStorageSettings.ApplicationSettings.TryGetValue("distance", out distance); IsolatedStorageSettings.ApplicationSettings.TryGetValue("volume", out volume); IsolatedStorageSettings.ApplicationSettings.TryGetValue("average", out average); IsolatedStorageSettings.ApplicationSettings.TryGetValue("currency", out currency); IsolatedStorageSettings.ApplicationSettings.TryGetValue("avgmethod", out avgmethod); stMpgUnits.Text = distance.ToLower() + "/" + volume.ToLower(); FuelsModel fm = new FuelsModel(this.carID); listBoxFuel.ItemsSource = fm.GetRecords(); fuelOverallMpg.Text = fm.OverallFuelConsumption().ToString("F2") + " " + distance.ToLower() + "/" + volume.ToLower(); /* * tFuelCS.Text = fm.totalCost.ToString("F2"); * tFCPD.Text = (fm.totalCost / fm.GetTotalTimeSpan().Days).ToString(); * tAvgFuelCS.Text = (fm.totalCost/fm.totalFuel).ToString("F2"); * tFCPM.Text = (fm.totalCost / fm.GetTotalTimeSpan().Days * 30).ToString(); * tMilesPD.Text = (fm.totalMiles / fm.GetTotalTimeSpan().Days).ToString(); * tMilesPM.Text = (fm.totalMiles / fm.GetTotalTimeSpan().Days * 30).ToString(); */ //tFuelCS.Text = fm.totalCost.ToString("F2"); stMpg.Text = fm.OverallFuelConsumption().ToString("F2"); stCostpd.Text = currency + (fm.totalCost / fm.GetTotalTimeSpan().Days).ToString("F2") + " /day"; stCostpm.Text = currency + (fm.totalCost / fm.GetTotalTimeSpan().Days * 30).ToString("F2") + " /month"; stMilepd.Text = (fm.totalMiles / fm.GetTotalTimeSpan().Days).ToString("F2") + " " + distance + "/day"; stMilepm.Text = (fm.totalMiles / fm.GetTotalTimeSpan().Days * 30).ToString("F2") + " " + distance + "/month"; tFuelC.Text = currency + (fm.totalCost).ToString("F2"); MaintsModel mm = new MaintsModel(this.carID); listBoxMaint.ItemsSource = mm.GetRecords(); tTotalCostMaint.Text = currency + " " + mm.GetTotalCost().ToString(); tMaintCS.Text = currency + mm.GetTotalCost().ToString("F2"); tMaintParts.Text = "Parts: " + currency + " " + mm.TotalPartsCost.ToString("F2"); tMaintLabor.Text = "Labor: " + currency + " " + mm.TotalLaborCost.ToString("F2"); CarsModel cm = new CarsModel(this.carID); carInfo car = cm.GetCar(); tCarname.Text = car.CarModel; }
public void CalculateRunningCost(PowerplantModel powerplant, FuelsModel fuels) { if (powerplant.Type != Enums.PowerplantType.Windturbine) { powerplant.RunningCost = Math.Round(powerplant.CO2CostEmission + ( (powerplant.P / powerplant.Efficiency) * ((powerplant.Type == Enums.PowerplantType.Gasfired) ? fuels.Gas : fuels.Kerosine) ), 2); } }
private ProductionplanService MakeSut(IList <PowerplantModel> powerplants, FuelsModel fuels) { var mockRunningCostService = new Mock <IRunningCostService>(); var mockMeritOrderService = new Mock <IMeritOrderService>(); mockMeritOrderService .Setup(m => m.SetMeritOrder(powerplants, fuels)) .ReturnsAsync(powerplants.OrderBy(p => p.MeritOrder).ToList()); return(new ProductionplanService(mockMeritOrderService.Object, mockRunningCostService.Object)); }
private async Task <bool> IsWindy(FuelsModel fuels) { return(await Task.FromResult(fuels.Wind > 0)); }
public async Task <IList <PowerplantModel> > SetMeritOrder(IList <PowerplantModel> powerplants, FuelsModel fuels) { int priority = 1; if (await IsWindy(fuels)) { Set(powerplants, PowerplantType.Windturbine, ref priority); } if (fuels.Gas < fuels.Kerosine) { Set(powerplants, PowerplantType.Gasfired, ref priority); Set(powerplants, PowerplantType.Turbojet, ref priority); } else { Set(powerplants, PowerplantType.Turbojet, ref priority); Set(powerplants, PowerplantType.Gasfired, ref priority); } return(powerplants.OrderBy(x => x.MeritOrder).ToList()); }
private int UseWindturbine(PowerplantModel powerplant, FuelsModel fuels) { return((int)Math.Round(powerplant.Efficiency * powerplant.Pmax * (fuels.Wind / 100))); }
public async Task <IList <PowerplantModel> > CalculateUnitOfCommitment(IList <PowerplantModel> powerplants, int load, FuelsModel fuels) { var results = await meritOrderService.SetMeritOrder(powerplants, fuels); foreach (var r in results) { var nextTypePowerplant = results.Where(x => x.MeritOrder > r.MeritOrder && !r.IsUsed).FirstOrDefault(); if (!r.IsUsed) { UsePowerplant(r, fuels, ref load, nextTypePowerplant); } if (load == 0) { break; } } return(results); }