private void Sync(Account account) { this.Username = account.Username; int totalBattles = account.Battles.Count(); int wonABattles = account.BattlesA.Where(battle => battle.Result == 1).Count(); int wonBBattles = account.BattlesB.Where(battle => battle.Result == 2).Count(); int tiedBattles = account.Battles.Where(battle => battle.Result == 0).Count(); this.BattlesWon = wonBBattles + wonABattles; this.BattlesTied = tiedBattles; this.BattlesLost = totalBattles - BattlesWon - tiedBattles; this.Ranking = (int)Game.Core.RequestContext.Model<Entities>() .UserRanks.FirstOrDefault(u => u.Username == this.Username) .Rank; }
/// <summary> /// Create a new Account object. /// </summary> /// <param name="id">Initial value of the Id property.</param> /// <param name="username">Initial value of the Username property.</param> public static Account CreateAccount(global::System.Int32 id, global::System.String username) { Account account = new Account(); account.Id = id; account.Username = username; return account; }
/// <summary> /// Deprecated Method for adding a new object to the Accounts EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> internal void AddToAccounts(Account account) { base.AddObject("Accounts", account); }
public UserStats(Account acc) { this.Sync(acc); }
/// <summary> /// Crea una cuenta nueva, regresando el resultado de la operación /// </summary> /// <param name="username">The user.</param> /// <param name="password">The password.</param> /// <returns>The operation result</returns> public IOperationResult CreateAccount(string username, string password) { if (!userRegx.IsMatch(username)) { return new OperationResult(ResultValue.Fail, "El nombre de usuario solamente puede contener letras, números y _\ny ser de 4 a 16 caracteres"); } if (!passRegx.IsMatch(password)) { return new OperationResult(ResultValue.Fail, "El password solamente puede contener letras, números y _\ny ser de 8 a 32 caracteres"); } if (IsAlreadyTaken(username)) { return new OperationResult(ResultValue.Fail, "El nombre de usuario " + username + " ya está registrado"); } /** * Se tiene un conjunto de cartas por default con las que inician los jugadores. **/ var acc = new Account { Username = username, Password = password, }; var model = RequestContext.Model<Entities>(); foreach (var card in model.Cards.Take(8)) { acc.Deck.Add(card); } acc.Deck.Add(new Card { AttackPoints = 10, DefensePoints = 20, Effect = new CardEffect { ProbabilityOfEffect = 0.1, Name = "name", LifePointsChange = 0, EffectTiming = 0, DisableOpponentEffect = false, Description = "as", CardDefenseMultiplier = 0.9, CardDefenseChange = 10, CardAttackMultiplier = 1, Affected = 0 }, ImageUrl = "", Name = "name" }); model.AddToAccounts(acc); model.SaveChanges(); return new OperationResult(ResultValue.Success, "Cuenta creada exitósamente"); }