public async Task <IEnumerable <OutputDomainResult <Order> > > RunAsync( Guid gasStationId) { if (gasStationId == default(Guid)) { throw new ArgumentException("Invalid gas station id"); } var outputs = new List <OutputDomainResult <Order> >(); var gasstationDetail = await _gasStationRepository .GetGasStationIncludeTankOrderStrategyAsync(gasStationId); var runtime = DateTime.UtcNow; if (gasstationDetail.OrderType == OrderType.Schedule) { var result = await _scheduleOrder.CreateAsync(gasstationDetail); outputs.Add(result); } else if (gasstationDetail.OrderType == OrderType.Estimate) { var result = _estimateOrder.Create(gasstationDetail, runtime); outputs.Add(result); } return(outputs); }