Пример #1
0
        public void AddGame(Game game)
        {
            // System-assigned properties
            game.CreatedDate = _dateTime.UtcNow;
            game.Status = _session
                .QueryOver<Status>()
                .Where(x => x.Name == "Not Started")
                .SingleOrDefault();
            game.User = _session.QueryOver<User>()
                .Where(x => x.UserName == _userSession.Username)
                .SingleOrDefault();

            if (game.Faction != null)
            {
                var persistedFaction = _session.Get<Faction>(game.Faction.FactionId);
                if (persistedFaction == null)
                {
                    throw new ChildObjectNotFoundException("Faction not found");
                }
                game.Faction = persistedFaction;
            }

            // Persist game and its relationships
            _session.SaveOrUpdate(game);
        }
        public void UpdateGameStatus(Game gameToUpdate, string statusName)
        {
            var status = _session.QueryOver<Status>().Where(x => x.Name == statusName).SingleOrDefault();

            gameToUpdate.Status = status;

            _session.SaveOrUpdate(gameToUpdate);
        }
        /// <summary>
        /// Updates the Technologies Collection
        /// </summary>
        public virtual void UpdateGameTechnologies(Game game, IEnumerable<long> technologyIds, bool appendToExisting)
        {
            if (!appendToExisting)
            {
                game.Technologies.Clear();
            }

            if (technologyIds != null)
            {
                foreach (var technology in technologyIds.Select(GetValidTechnology))
                {
                    if (!game.Technologies.Contains(technology))    // protects the idempotence of the operation
                    {
                        game.Technologies.Add(technology);
                    }
                }
            }
        }