public async Task <AddConnectorResponseDto> Handle(AddConnectorCommand request, CancellationToken cancellationToken) { var group = await GetGroup(request.GroupId, cancellationToken); var connectors = await GetGroupConnectors(request.GroupId, cancellationToken); //if exceeds capacity if (ExceedsGroupCapacity(connectors, request.MaxCurrent, group.Capacity)) { var combinations = CombinationsCalculator.GetCombinations(connectors, request.MaxCurrent); return(new AddConnectorResponseDto { Suggestions = GetConnectorsToBeRemove(combinations) }); } //TODO:if exceeds the max number of connectors per station //if can add new connector var connector = new Connector { ChargeStationId = request.ChargeStationId, MaxCurrent = request.MaxCurrent, Id = GetConnectorAvailableId(connectors, request.ChargeStationId) }; _context.Connectors.Add(connector); await _context.SaveChangesAsync(cancellationToken); return(new AddConnectorResponseDto { NewConnectorId = connector.Id }); }
public async Task <UpdateConnectorResponseDto> Handle(UpdateConnectorCommand request, CancellationToken cancellationToken) { var connector = await _context.Connectors.FindAsync( new object[] { request.ConnectorId, request.ChargeStationId }, cancellationToken); var group = await GetGroup(request.GroupId, cancellationToken); var connectors = await GetGroupConnectors(request.GroupId, cancellationToken); //if exceeds capacity if (ExceedsGroupCapacity(connectors, request.MaxCurrent, group.Capacity)) { var combinations = CombinationsCalculator.GetCombinations(connectors, request.MaxCurrent); return(new UpdateConnectorResponseDto { Suggestions = GetConnectorsToBeRemove(combinations) }); } connector.MaxCurrent = request.MaxCurrent; await _context.SaveChangesAsync(cancellationToken); return(new UpdateConnectorResponseDto()); }
static void Main() { IConfigurationRoot configuration = LoadConfiguration(); var combinationsDatasource = configuration.GetSection("CombinationsDatasource").Value; var repository = new CombinationRepository() { DataSource = combinationsDatasource }; var combinations = repository.GetCombinations(); var combinationsCalculator = new CombinationsCalculator(); var combination = combinationsCalculator.GetCombinationWithMostCommonNumbers(combinations); Console.WriteLine($"Columns: {combination.Columns.ToSortedString()}"); Console.WriteLine($"Stars: {combination.Stars.ToSortedString()}"); Console.ReadLine(); }
public IActionResult Index(CombinationsCalculator model) { SetViewBagValues(); if (!ModelState.IsValid) { return(View()); } if (model.NumberOfObjects < model.SampleSize || model.NumberOfObjects < 0) { model.Result = 0; } else { model.Result = model.CalculateResult(); } return(View(model)); }
public void Setup() { sut = new CombinationsCalculator(); }