コード例 #1
0
        protected override void UpdateWinsLossesAndTiesForTeamSeasons(
            TeamSeasonDecorator?guestSeasonDecorator, TeamSeasonDecorator?hostSeasonDecorator,
            IGameDecorator gameDecorator)
        {
            if (gameDecorator.IsTie())
            {
                if (!(guestSeasonDecorator is null))
                {
                    guestSeasonDecorator.Ties--;
                }

                if (!(hostSeasonDecorator is null))
                {
                    hostSeasonDecorator.Ties--;
                }
            }
            else
            {
                var seasonYear = gameDecorator.SeasonYear;

                var winnerSeason =
                    _teamSeasonRepository.GetTeamSeasonByTeamAndSeason(gameDecorator.WinnerName !, seasonYear);
                if (!(winnerSeason is null))
                {
                    winnerSeason.Wins--;
                }

                var loserSeason =
                    _teamSeasonRepository.GetTeamSeasonByTeamAndSeason(gameDecorator.LoserName !, seasonYear);
                if (!(loserSeason is null))
                {
                    loserSeason.Losses--;
                }
            }
        }
コード例 #2
0
 public OrderDetailsDecorator(
     IAsyncRepository <OrderDetails> orderDetailsRepository,
     IGameDecorator gameDecorator)
 {
     _orderDetailsRepository = orderDetailsRepository;
     _gameDecorator          = gameDecorator;
 }
コード例 #3
0
 protected void EditWinLossData(TeamSeasonDecorator?guestSeasonDecorator,
                                TeamSeasonDecorator?hostSeasonDecorator, IGameDecorator gameDecorator)
 {
     UpdateGamesForTeamSeasons(guestSeasonDecorator, hostSeasonDecorator);
     UpdateWinsLossesAndTiesForTeamSeasons(guestSeasonDecorator, hostSeasonDecorator, gameDecorator);
     UpdateWinningPercentageForTeamSeasons(guestSeasonDecorator, hostSeasonDecorator);
 }
コード例 #4
0
        /// <summary>
        /// Processes a <see cref="Game"/> entity into the Teams data store asynchronously.
        /// </summary>
        /// <param name="game"></param>
        /// <returns></returns>
        public virtual async Task ProcessGameAsync(IGameDecorator gameDecorator)
        {
            Guard.ThrowIfNull(gameDecorator, $"{GetType()}.{nameof(ProcessGameAsync)}: {nameof(gameDecorator)}");

            var seasonYear = gameDecorator.SeasonYear;

            var guestSeason =
                await _teamSeasonRepository.GetTeamSeasonByTeamAndSeasonAsync(gameDecorator.GuestName, seasonYear);

            TeamSeasonDecorator?guestSeasonDecorator = null;

            if (!(guestSeason is null))
            {
                guestSeasonDecorator = new TeamSeasonDecorator(guestSeason);
            }

            var hostSeason =
                await _teamSeasonRepository.GetTeamSeasonByTeamAndSeasonAsync(gameDecorator.HostName, seasonYear);

            TeamSeasonDecorator?hostSeasonDecorator = null;

            if (!(hostSeason is null))
            {
                hostSeasonDecorator = new TeamSeasonDecorator(hostSeason);
            }

            await EditWinLossDataAsync(guestSeasonDecorator, hostSeasonDecorator, gameDecorator);

            EditScoringData(guestSeasonDecorator, hostSeasonDecorator, gameDecorator.GuestScore,
                            gameDecorator.HostScore);
        }
コード例 #5
0
ファイル: OrderDecorator.cs プロジェクト: kvoloboy/GameStore
 public OrderDecorator(
     IAsyncRepository <Order> orderRepository,
     IAsyncReadonlyRepository <Order> mongoOrderRepository,
     IAsyncReadonlyRepository <Shipper> shippersRepository,
     IGameDecorator gameDecorator)
 {
     _sqlOrderRepository   = orderRepository;
     _mongoOrderRepository = mongoOrderRepository;
     _shippersRepository   = shippersRepository;
     _gameDecorator        = gameDecorator;
 }
コード例 #6
0
        public void SetUp()
        {
            _sqlOrderRepository   = A.Fake <IAsyncRepository <Order> >();
            _mongoOrderRepository = A.Fake <IAsyncReadonlyRepository <Order> >();
            _gameDecorator        = A.Fake <IGameDecorator>();
            _shippersRepository   = A.Fake <IAsyncReadonlyRepository <Shipper> >();

            _orderDecorator = new OrderDecorator(
                _sqlOrderRepository,
                _mongoOrderRepository,
                _shippersRepository,
                _gameDecorator);
        }
コード例 #7
0
 public GameService(
     IUnitOfWork unitOfWork,
     IGameDecorator gameDecorator,
     ISortOptionFactory <GameRoot> sortOptionFactory,
     IMapper mapper,
     IPublisherService publisherService)
 {
     _unitOfWork        = unitOfWork;
     _mapper            = mapper;
     _publisherService  = publisherService;
     _gameDecorator     = gameDecorator;
     _sortOptionFactory = sortOptionFactory;
 }
コード例 #8
0
 /// <summary>
 /// Edits the wrapped <see cref="Game"/> entity with data from another <see cref="Game"/> entity.
 /// </summary>
 /// <param name="srcGame">The <see cref="Game"/> entity from which data will be copied.</param>
 public void Edit(IGameDecorator srcGame)
 {
     _game.Week        = srcGame.Week;
     _game.GuestName   = srcGame.GuestName;
     _game.GuestScore  = srcGame.GuestScore;
     _game.HostName    = srcGame.HostName;
     _game.HostScore   = srcGame.HostScore;
     _game.WinnerName  = srcGame.WinnerName;
     _game.WinnerScore = srcGame.WinnerScore;
     _game.LoserName   = srcGame.LoserName;
     _game.LoserScore  = srcGame.LoserScore;
     _game.IsPlayoff   = srcGame.IsPlayoff;
     _game.Notes       = srcGame.Notes;
 }
コード例 #9
0
        private void EditTeams(Direction direction, IGameDecorator gameDecorator)
        {
            var processGameStrategy = _processGameStrategyFactory.CreateStrategy(direction);

            // TODO - 2020-09-25: Implement ObjectNotFoundException class so it can be caught and used here.
            //try
            //{
            processGameStrategy.ProcessGame(gameDecorator);
            //}
            //catch (ObjectNotFoundException ex)
            //{
            //    Log.Error("ObjectNotFoundException in GamesService.EditTeams: " + ex.Message);
            //    _sharedService.ShowExceptionMessage(ex, "ObjectNotFoundException");
            //}
        }
コード例 #10
0
ファイル: OrderService.cs プロジェクト: kvoloboy/GameStore
 public OrderService(
     IUnitOfWork unitOfWork,
     IGameService gameService,
     INotificationService <Order> notificationService,
     ILogger <OrderService> logger,
     IGameDecorator gameDecorator,
     IMapper mapper)
 {
     _unitOfWork          = unitOfWork;
     _gameService         = gameService;
     _notificationService = notificationService;
     _logger         = logger;
     _gameDecorator  = gameDecorator;
     _mapper         = mapper;
     _orderDecorator = _unitOfWork.GetRepository <IAsyncRepository <Order> >();
 }
コード例 #11
0
        public void Setup()
        {
            _unitOfWork        = A.Fake <IUnitOfWork>();
            _gameDecorator     = A.Fake <IGameDecorator>();
            _mapper            = A.Fake <IMapper>();
            _visitRepository   = A.Fake <IAsyncRepository <Visit> >();
            _sortOptionFactory = A.Fake <ISortOptionFactory <GameRoot> >();
            _sortOption        = A.Fake <ISortOption <GameRoot> >();
            _publisherService  = A.Fake <IPublisherService>();

            A.CallTo(() => _sortOption.SortDirection).Returns(SortDirection.Descending);
            A.CallTo(() => _sortOption.SortPropertyAccessor).Returns(root => root.Details.Price);
            A.CallTo(() => _sortOptionFactory.Create(A <string> ._)).Returns(_sortOption);
            A.CallTo(() => _unitOfWork.GetRepository <IAsyncRepository <Visit> >()).Returns(_visitRepository);

            _gameServices =
                new GameService(_unitOfWork, _gameDecorator, _sortOptionFactory, _mapper, _publisherService);
        }
コード例 #12
0
        public void Setup()
        {
            _unitOfWork          = A.Fake <IUnitOfWork>();
            _gameService         = A.Fake <IGameService>();
            _notificationService = A.Fake <INotificationService <Order> >();
            _orderRepository     = A.Fake <IAsyncRepository <Order> >();
            _mapper                = A.Fake <IMapper>();
            _gameDecorator         = A.Fake <IGameDecorator>();
            _logger                = A.Fake <ILogger <OrderService> >();
            _orderDetailsDecorator = A.Fake <IAsyncRepository <OrderDetails> >();
            A.CallTo(() => _unitOfWork.GetRepository <IAsyncRepository <Order> >()).Returns(_orderRepository);
            A.CallTo(() => _unitOfWork.GetRepository <IAsyncRepository <OrderDetails> >()).Returns(_orderDetailsDecorator);

            _orderService = new OrderService(
                _unitOfWork,
                _gameService,
                _notificationService,
                _logger,
                _gameDecorator,
                _mapper);
        }
コード例 #13
0
        // Do nothing methods, for this is an implementation of the Null Object Pattern.
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
        public override async Task ProcessGameAsync(IGameDecorator gameDecorator)
        {
        }
コード例 #14
0
 protected virtual void UpdateWinsLossesAndTiesForTeamSeasons(TeamSeasonDecorator?guestSeasonDecorator,
                                                              TeamSeasonDecorator?hostSeasonDecorator, IGameDecorator gameDecorator)
 {
     throw new NotImplementedException(
               nameof(UpdateWinsLossesAndTiesForTeamSeasons) + " must be implemented in a subclass.");
 }
コード例 #15
0
        protected async Task EditWinLossDataAsync(TeamSeasonDecorator?guestSeasonDecorator,
                                                  TeamSeasonDecorator?hostSeasonDecorator, IGameDecorator gameDecorator)
        {
            UpdateGamesForTeamSeasons(guestSeasonDecorator, hostSeasonDecorator);
            await UpdateWinsLossesAndTiesForTeamSeasonsAsync(guestSeasonDecorator, hostSeasonDecorator, gameDecorator);

            UpdateWinningPercentageForTeamSeasons(guestSeasonDecorator, hostSeasonDecorator);
        }