/// <summary>Assigns a <see cref="User"/> from a DataRow.</summary> /// <param name="dr">DataRow containing <see cref="User"/></param> /// <returns>Assigned <see cref="User"/></returns> private User AssignUserFromDataRow(DataRow dr) { User newUser = new User { Name = dr["Username"].ToString(), Password = dr["Password"].ToString(), Level = Int32Helper.Parse(dr["Level"].ToString()), Experience = Int32Helper.Parse(dr["Experience"].ToString()), SkillPoints = Int32Helper.Parse(dr["SkillPoints"].ToString()), Alive = BoolHelper.Parse(dr["Alive"]), CurrentEndurance = Int32Helper.Parse(dr["CurrentEndurance"].ToString()), CurrentLocation = EnumHelper.Parse <SleepLocation>(dr["Location"].ToString()), MaximumEndurance = Int32Helper.Parse(dr["MaximumEndurance"].ToString()), Hunger = Int32Helper.Parse(dr["Hunger"].ToString()), Thirst = Int32Helper.Parse(dr["Thirst"].ToString()), CurrentWeaponType = EnumHelper.Parse <WeaponType>(dr["CurrentWeapon"].ToString()), LightWeapon = GameState.AllWeapons.Find(newWeapon => newWeapon.Name == dr["LightWeapon"].ToString() && newWeapon.Type == WeaponType.Light), HeavyWeapon = GameState.AllWeapons.Find(newWeapon => newWeapon.Name == dr["HeavyWeapon"].ToString() && newWeapon.Type == WeaponType.Heavy), TwoHandedWeapon = GameState.AllWeapons.Find(newWeapon => newWeapon.Name == dr["TwoHandedWeapon"].ToString() && newWeapon.Type == WeaponType.TwoHanded), Armor = GameState.AllArmor.Find(newArmor => newArmor.Name == dr["Armor"].ToString()), Potion = GameState.AllPotions.Find(newPotion => newPotion.Name == dr["Potion"].ToString()), Lockpicks = Int32Helper.Parse(dr["Lockpicks"].ToString()), GoldOnHand = Int32Helper.Parse(dr["GoldOnHand"].ToString()), GoldInBank = Int32Helper.Parse(dr["GoldInBank"].ToString()), GoldOnLoan = Int32Helper.Parse(dr["GoldOnLoan"].ToString()), Shovel = BoolHelper.Parse(dr["Shovel"]), Lantern = BoolHelper.Parse(dr["Lantern"]), Amulet = BoolHelper.Parse(dr["Amulet"]), LightWeaponSkill = Int32Helper.Parse(dr["LightWeaponSkill"].ToString()), HeavyWeaponSkill = Int32Helper.Parse(dr["HeavyWeaponSkill"].ToString()), TwoHandedWeaponSkill = Int32Helper.Parse(dr["TwoHandedWeaponSkill"].ToString()), Blocking = Int32Helper.Parse(dr["Blocking"].ToString()), Slipping = Int32Helper.Parse(dr["Slipping"].ToString()), Stealth = Int32Helper.Parse(dr["Stealth"].ToString()), Henchmen = new Henchmen(Int32Helper.Parse(dr["HenchmenLevel1"].ToString()), Int32Helper.Parse(dr["HenchmenLevel2"].ToString()), Int32Helper.Parse(dr["HenchmenLevel3"].ToString()), Int32Helper.Parse(dr["HenchmenLevel4"].ToString()), Int32Helper.Parse(dr["HenchmenLevel5"].ToString())) }; return(newUser); }
/// <summary>Loads all <see cref="CreditScore"/>s from the database.</summary> /// <returns>List of all <see cref="CreditScore"/>s</returns> public async Task <List <CreditScore> > LoadCreditScores() { List <CreditScore> scores = new List <CreditScore>(); DataSet ds = await SQLiteHelper.FillDataSet(_con, "SELECT * FROM CreditScores"); if (ds.Tables[0].Rows.Count > 0) { scores.AddRange(from DataRow dr in ds.Tables[0].Rows select new CreditScore(DateTimeHelper.Parse(dr["Date"]), dr["Source"].ToString(), Int32Helper.Parse(dr["Score"]), EnumHelper.Parse <Providers>(dr["Provider"].ToString()), BoolHelper.Parse(dr["FICO"]))); } return(scores.OrderByDescending(score => score.Date).ToList()); }
/// <summary>Assigns a <see cref="User"/> based on a DataRow.</summary> /// <param name="dr">DataRow to assign <see cref="User"/> from</param> /// <returns><see cref="User"/></returns> private async Task <User> LoadUserFromDataRow(DataRow dr) => new User(Int32Helper.Parse(dr["ID"]), dr["Username"].ToString(), dr["FirstName"].ToString(), dr["LastName"].ToString(), dr["Password"].ToString(), BoolHelper.Parse(dr["LoggedIn"]), dr["Roles"].ToString().Split(',').Select(str => str.Trim()).Where(str => !string.IsNullOrEmpty(str)).ToList(), await LoadShifts(Int32Helper.Parse(dr["ID"])).ConfigureAwait(false));
/// <summary>Loads all the selected User's Shifts from the database.</summary> /// <param name="userID"></param> /// <returns>Returns the list of Shifts</returns> public async Task <List <Shift> > LoadShifts(int userID) { List <Shift> userShifts = new List <Shift>(); SQLiteCommand cmd = new SQLiteCommand { CommandText = "SELECT * FROM Times WHERE [ID] = @id" }; cmd.Parameters.AddWithValue("@id", userID); DataSet ds = await SQLiteHelper.FillDataSet(_con, cmd).ConfigureAwait(false); if (ds.Tables[0].Rows.Count > 0) { userShifts.AddRange(from DataRow dr in ds.Tables[0].Rows select new Shift(userID, dr["Role"].ToString(), DateTimeHelper.Parse(dr["TimeIn"]), TimeSpanHelper.Parse(dr["TimeInOffset"].ToString()), DateTimeHelper.Parse(dr["TimeOut"]), TimeSpanHelper.Parse(dr["TimeOutOffset"].ToString()), BoolHelper.Parse(dr["Edited"]))); } return(userShifts.OrderByDescending(shift => shift.StartTimeUtc).ToList()); }
/// <summary>Loads all <see cref="Weapon"/>s from the database.</summary> /// <returns>All <see cref="Weapon"/>s</returns> public async Task <List <Weapon> > LoadWeapons() { DataSet ds = await SQLiteHelper.FillDataSet(_con, "SELECT * FROM Weapons"); List <Weapon> allWeapons = new List <Weapon>(); if (ds.Tables[0].Rows.Count > 0) { allWeapons.AddRange(from DataRow dr in ds.Tables[0].Rows select new Weapon(dr["WeaponName"].ToString(), EnumHelper.Parse <WeaponType>(dr["WeaponType"].ToString()), Int32Helper.Parse(dr["WeaponDamage"]), Int32Helper.Parse(dr["WeaponValue"]), BoolHelper.Parse(dr["Hidden"]))); } return(allWeapons.OrderBy(weapon => weapon.Value).ToList()); }
/// <summary>Loads all <see cref="Message"/>s for specified <see cref="User"/>.</summary> /// <param name="loadUser"><see cref="User"/> whose <see cref="Message"/>s are to be loaded</param> /// <returns>List of all <see cref="Message"/>s for the specified <see cref="User"/></returns> public async Task <List <Message> > LoadMessages(User loadUser) { List <Message> messages = new List <Message>(); SQLiteCommand cmd = new SQLiteCommand { CommandText = "SELECT * FROM Messages WHERE [UserTo] = @name" }; cmd.Parameters.AddWithValue("@name", loadUser.Name); DataSet ds = await SQLiteHelper.FillDataSet(_con, cmd); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { messages.Add(new Message(Int32Helper.Parse(dr["ID"].ToString()), dr["UserFrom"].ToString(), loadUser.Name, dr["Message"].ToString(), DateTimeHelper.Parse(dr["DateSent"].ToString()), BoolHelper.Parse(dr["GuildMessage"]))); } } return(messages.OrderByDescending(message => message.DateSent).ToList()); }
/// <summary>Loads all <see cref="Armor"/> from the database.</summary> /// <returns>All <see cref="Armor"/></returns> public async Task <List <Armor> > LoadArmor() { DataSet ds = await SQLiteHelper.FillDataSet(_con, "SELECT * FROM Armor"); List <Armor> allArmor = new List <Armor>(); if (ds.Tables[0].Rows.Count > 0) { allArmor.AddRange(from DataRow dr in ds.Tables[0].Rows select new Armor(dr["ArmorName"].ToString(), Int32Helper.Parse(dr["ArmorDefense"]), Int32Helper.Parse(dr["ArmorValue"]), BoolHelper.Parse(dr["Hidden"]))); } return(allArmor.OrderBy(armor => armor.Value).ToList()); }