public void updateReport(ModelingState state) { for (int i = 0; i < state.queues.Count(); i++) { maxTranzactsInQueue.ElementAt(i).value += state.queues.ElementAt(i).get_max_tranzacts_in_queue(); } for (int i = 0; i < state.queues.Count(); i++) { avgTranzactsInQueue.ElementAt(i).value += state.queues.ElementAt(i).get_sum_tranzacts_in_queue() / (double)state.time_of_modeling; } for (int i = 0; i < state.lables.Count(); i++) { numberRunTranzactsOnLable.ElementAt(i).value += state.lables.ElementAt(i).get_entries_number(); } for (int i = 0; i < state.variables.Count(); i++) { if (!state.variables.ElementAt(i).value.Equals("")) { variablesValue.ElementAt(i).value += double.Parse(state.variables.ElementAt(i).value); } } numberOfReportsUpdates++; }
//Сброс отчета public void reset(ModelingState state) { numberOfReportsUpdates = 0; maxTranzactsInQueue = new List <ElementsNameWithElementsValue>(); avgTranzactsInQueue = new List <ElementsNameWithElementsValue>(); numberRunTranzactsOnLable = new List <ElementsNameWithElementsValue>(); variablesValue = new List <ElementsNameWithElementsValue>(); if (state.report != null && state.report.maxTranzactsInQueue.Count != 0 & state.report.avgTranzactsInQueue.Count != 0 & state.report.numberRunTranzactsOnLable.Count != 0 & state.report.numberRunTranzactsOnLable.Count != 0) { for (int i = 0; i < state.report.getMaxTranzactsInQueue().Count(); i++) { maxTranzactsInQueue.Add( new ElementsNameWithElementsValue( state.report.getMaxTranzactsInQueue().ElementAt(i).name, 0)); } for (int i = 0; i < state.report.getAvgTranzactsInQueue().Count(); i++) { avgTranzactsInQueue.Add( new ElementsNameWithElementsValue( state.report.getAvgTranzactsInQueue().ElementAt(i).name, 0)); } for (int i = 0; i < state.report.numberRunTranzactsOnLable.Count(); i++) { numberRunTranzactsOnLable.Add( new ElementsNameWithElementsValue( state.report.numberRunTranzactsOnLable.ElementAt(i).name, 0)); } for (int i = 0; i < state.report.getVariablesValue().Count(); i++) { variablesValue.Add( new ElementsNameWithElementsValue( state.report.getVariablesValue().ElementAt(i).name, 0)); } } else { for (int i = 0; i < state.queues.Count(); i++) { maxTranzactsInQueue.Add( new ElementsNameWithElementsValue(state.queues.ElementAt(i).get_name(), 0)); } for (int i = 0; i < state.queues.Count(); i++) { avgTranzactsInQueue.Add( new ElementsNameWithElementsValue(state.queues.ElementAt(i).get_name(), 0)); } for (int i = 0; i < state.lables.Count(); i++) { numberRunTranzactsOnLable.Add( new ElementsNameWithElementsValue(state.lables.ElementAt(i).get_name(), 0)); } for (int i = 0; i < state.variables.Count(); i++) { variablesValue.Add( new ElementsNameWithElementsValue(state.variables.ElementAt(i).get_name(), 0)); } } }
//В конструкторе только создается нужная структура, с именами элементов, но во всех //значения стоит 0 public ModelingReport(ModelingState state) { reset(state); }
public ModelingReport copyReport(ModelingState state) { ModelingReport copy = new ModelingReport(state); for (int i = 0; i < maxTranzactsInQueue.Count(); i++) { if ((copy.maxTranzactsInQueue.Count - 1) >= i) { copy.maxTranzactsInQueue.RemoveAt(i); copy.maxTranzactsInQueue.Insert(i, maxTranzactsInQueue.ElementAt(i).copy()); } else { copy.maxTranzactsInQueue.Add(maxTranzactsInQueue.ElementAt(i).copy()); } } for (int i = 0; i < avgTranzactsInQueue.Count(); i++) { if ((copy.avgTranzactsInQueue.Count - 1) >= i) { copy.avgTranzactsInQueue.RemoveAt(i); copy.avgTranzactsInQueue.Insert(i, avgTranzactsInQueue.ElementAt(i).copy()); } else { copy.avgTranzactsInQueue.Add(avgTranzactsInQueue.ElementAt(i).copy()); } } for (int i = 0; i < numberRunTranzactsOnLable.Count(); i++) { if ((copy.numberRunTranzactsOnLable.Count - 1) >= i) { copy.numberRunTranzactsOnLable.RemoveAt(i); copy.numberRunTranzactsOnLable.Insert(i, numberRunTranzactsOnLable. ElementAt(i).copy()); } else { copy.numberRunTranzactsOnLable.Add(numberRunTranzactsOnLable. ElementAt(i).copy()); } } for (int i = 0; i < variablesValue.Count(); i++) { if ((copy.variablesValue.Count - 1) >= i) { copy.variablesValue.RemoveAt(i); copy.variablesValue.Insert(i, variablesValue.ElementAt(i).copy()); } else { copy.variablesValue.Add(variablesValue.ElementAt(i).copy()); } } copy.setNumberOfReportsUpdates(getNumberOfReportsUpdates()); return(copy); }