public static MissionBonus FromRecrod(IDataRecord record)
        {
            var character = Character.Get(record.GetValue <int>("characterid"));
            var category  = (MissionCategory)record.GetValue <int>("missioncategory");
            var level     = record.GetValue <int>("missionlevel");
            var agentId   = record.GetValue <int>("agentid");
            var bonus     = record.GetValue <int>("bonus");

            var agent = _missionDataCache.GetAgent(agentId);

            var mb = new MissionBonus(character, category, level, agent, bonus);

            return(mb);
        }
        public bool GetBonusWithConditions(MissionCategory missionCategory, int missionLevel, MissionAgent agent, out MissionBonus missionBonus)
        {
            var key = MissionBonus.GetKey(missionCategory, missionLevel, agent.id);

            return(_bonuses.TryGetValue(key, out missionBonus));
        }
 public void RemoveBonus(MissionBonus missionBonus)
 {
     _bonuses.Remove(missionBonus.Key);
 }
 public void AddBonus(MissionBonus missionBonus)
 {
     _bonuses.AddOrUpdate(missionBonus.Key, v => missionBonus, (k, v) => missionBonus);
 }