public GameViewModel()
        {
            gameCopy = new GameCopy();

            gameStats = new ResettableLazy <IEnumerable <GameItemGroupViewModel> >(() =>
                                                                                   GameItemGrouping.GroupItems(GameCopy.Items));
        }
        //!  Metoda repozytorium AddOrderGameCopies.

        /*!
         * Zawiera elementy logiki dostępu do danych w celu dodania do bazy danych listy pozycji wybranego zamówienia.
         */
        public List <GameCopy> AddOrderGameCopies(Order order, List <OrderGameCopyDto> orderGameCopies)
        {
            try
            {
                List <GameCopy> gameCopiesToUpdate = new List <GameCopy>();
                foreach (OrderGameCopyDto orderGameCopy in orderGameCopies)
                {
                    GameCopy o = _dbContext.GameCopies.FirstOrDefault(x => x.GameID == orderGameCopy.GameID && x.LocationID == orderGameCopy.LocationID && x.GameCopyStatusID == 1);
                    if (o != null)
                    {
                        OrderGameCopy ogc = new OrderGameCopy()
                        {
                            GameCopyID = o.ID,
                            OrderID    = order.ID
                        };
                        gameCopiesToUpdate.Add(o);
                        this.Add(ogc);
                    }
                    else
                    {
                        var gameName = _dbContext.Games.FirstOrDefault(x => x.ID == orderGameCopy.GameID).Name;
                        throw new Exception("No game copy is longer available for game " + gameName);
                    }
                }

                return(gameCopiesToUpdate);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private static string BuildGamePath(GameCopy gameCopy)
        {
            var directoryName = $"{gameCopy.GameCopyId:D4}";

            if (!string.IsNullOrWhiteSpace(gameCopy.MobyGamesSlug))
            {
                directoryName += $"-{gameCopy.MobyGamesSlug}";
            }

            return(Path.Combine(Application.Current.HomeDirectory(), directoryName));
        }
Beispiel #4
0
        public EditGameViewModel(Window parentWindow, GameCopy gameCopy)
        {
            this.gameCopy = gameCopy;

            ParentWindow = parentWindow;

            using var database = Application.Current.Database();

            Publishers = new ObservableCollection <Publisher>(database.Publishers);
            Developers = new ObservableCollection <Developer>(database.Developers);

            if (!gameCopy.IsNew)
            {
                InitializeData(gameCopy);
            }

            FilteredDevelopers = new ListCollectionView(Developers)
            {
                CustomSort = new SelectedDevelopersComparer(() => GameDevelopers),
                Filter     = obj =>
                {
                    if (obj is Developer developer)
                    {
                        return(developer.Name.IndexOf(DeveloperSearchTerm ?? string.Empty,
                                                      StringComparison.InvariantCultureIgnoreCase) >= 0);
                    }

                    return(false);
                }
            };

            FilteredLanguages = new ListCollectionView(Languages.ToList())
            {
                CustomSort = new LanguageComparer(() => GameLanguages),
                Filter     = obj =>
                {
                    if (obj is CultureInfo cultureInfo)
                    {
                        return(cultureInfo.EnglishName.IndexOf(LanguageSearchTerm ?? string.Empty,
                                                               StringComparison.InvariantCultureIgnoreCase) >= 0);
                    }

                    return(false);
                }
            };

            PropertyChanged += RefreshFilteredLanguages;
            PropertyChanged += RefreshFilteredDevelopers;
        }
Beispiel #5
0
 private void InitializeData(GameCopy game)
 {
     GameDevelopers = new ObservableCollection <Developer>(game.Developers.Distinct());
     GameLinks      = new ObservableCollection <string>(game.Links.Distinct());
     GamePlatforms  = new ObservableCollection <Platform>(game.Platforms.Distinct());
     GameLanguages  =
         new ObservableCollection <CultureInfo>(
             game.TwoLetterIsoLanguageName.Distinct().Select(lang => CultureInfo.GetCultureInfo(lang)));
     GameItems       = new ObservableCollection <ItemViewModel>(game.Items.Select(ItemViewModel.FromItem));
     GameScreenshots = new ObservableCollection <ScreenshotViewModel>(
         game.Screenshots
         .Select(HomeDirectoryHelpers.ToAbsolutePath)
         .Select(ScreenshotViewModel.FromPath)
         );
     GameCoverImage = game.CoverImage == null
         ? null
         : ScreenshotViewModel.FromPath(HomeDirectoryHelpers.ToAbsolutePath(game.CoverImage));
 }
        public async Task <Unit> Handle(AddGameCopy request, CancellationToken cancellationToken)
        {
            var tagsToUse = await GetTags(request, cancellationToken);

            var gameCopy = new GameCopy
            {
                PricePaid   = request.PricePaid,
                PurchasedOn = request.PurchasedOn,
                GameId      = request.GameId,
                Tags        = new List <GameCopyTag>(tagsToUse.Select(t => new GameCopyTag()
                {
                    Tag = t
                }))
            };

            await _dataStore.GameCopies.AddAsync(gameCopy, cancellationToken);

            await _dataStore.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
        private static void UpdateGame(GameCopy game, EditGameViewModel editGameViewModel)
        {
            game.Title         = editGameViewModel.Title ?? "";
            game.Sealed        = editGameViewModel.GameSealed;
            game.MobyGamesSlug = editGameViewModel.GameMobyGamesSlug ?? "";
            game.Platforms     = editGameViewModel.GamePlatforms.Distinct().ToList();

            if (editGameViewModel.GamePublisher.IsNew ||
                editGameViewModel.GamePublisher.PublisherId != game.PublisherId)
            {
                game.Publisher = editGameViewModel.GamePublisher;
            }

            game.Links = editGameViewModel.GameLinks.Distinct().ToList();
            game.Notes = editGameViewModel.GameNotes;
            game.TwoLetterIsoLanguageName =
                editGameViewModel.GameLanguages.Select(ci => ci.TwoLetterISOLanguageName).Distinct().ToList();
            game.ReleaseDate = editGameViewModel.GameReleaseDate;

            UpdateGameCopyDevelopers(game.GameCopyDevelopers, editGameViewModel.GameDevelopers);

            UpdateGameItems(game.Items, editGameViewModel.GameItems);
        }
 public GameViewModel(GameCopy gameCopy) : this()
 {
     GameCopy = gameCopy;
 }
Beispiel #9
0
 // Start is called before the first frame update
 void Start()
 {
     Waypoints = GameObject.Find("Waypoints");
     GameCopy  = GameObject.Find("GameManager").GetComponent <GameCopy>();
 }