private void FindOptions(decimal needToFreeAmps) { int inputLenght = SortedConnectors.Count; decimal minPossibleAmps = int.MaxValue; //look up for singles for (var i = 0; i < inputLenght; i++) { var connector = (Connector)SortedConnectors[i]; var currentValue = connector.MaxCurrentAmps; if (currentValue >= needToFreeAmps && currentValue <= minPossibleAmps) { //found minPossibleAmps = currentValue; var UnplugOption = CreateOption(connector); Results.AddToList(currentValue, UnplugOption); } } //look up for pairs for (var i = 0; i < inputLenght - 1; i++) { for (var j = i + 1; j < inputLenght; j++) { var connectorI = (Connector)SortedConnectors[i]; var connectorJ = (Connector)SortedConnectors[j]; var currentValue = connectorI.MaxCurrentAmps + connectorJ.MaxCurrentAmps; if (currentValue >= needToFreeAmps && currentValue <= minPossibleAmps) { //found minPossibleAmps = currentValue; var UnplugOption = CreateDoubleOption(connectorI, connectorJ); Results.AddToList(currentValue, UnplugOption); } } } }
private void GetInputData(ChargeGroup chargeGroup) { SortedList <decimal, List <Connector> > Input = new SortedList <decimal, List <Connector> >(); foreach (var chargeStation in chargeGroup.ChargeStations) { foreach (var connector in chargeStation.Connectors) { Input.AddToList(connector); } } foreach (var kvp in Input) { foreach (var connector in kvp.Value) { SortedConnectors.Add(connector); } } }