Exemple #1
0
        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);
        }