/// <summary> /// Gets an override object from a given id. Returns null if none found. /// </summary> /// <param name="id">The id the override object.</param> /// <returns></returns> public T?GetOverride(string id) { if (id is null) { throw new ArgumentNullException(nameof(id)); } if (DataOverridesById == null) { throw new NullReferenceException("The Load() method needs to be called before this method can be used."); } if (id.Contains(".stormmod", StringComparison.OrdinalIgnoreCase)) { id = id.Replace(".stormmod", string.Empty, StringComparison.OrdinalIgnoreCase); } if (DataOverridesById.TryGetValue(id, out T? overrideData)) { return(overrideData); } else { return(null); } }
protected override void SetOverride(XElement element) { if (element is null) { throw new System.ArgumentNullException(nameof(element)); } MatchAwardDataOverride matchAwardDataOverride = new MatchAwardDataOverride(); string?cAwardId = element.Attribute("id")?.Value; foreach (XElement dataElement in element.Elements()) { string elementName = dataElement.Name.LocalName; string?valueAttribute = dataElement.Attribute("value")?.Value; if (string.IsNullOrEmpty(valueAttribute)) { continue; } switch (elementName) { case "Id": matchAwardDataOverride.IdOverride = (true, valueAttribute); break; case "MVPScreenImageFileNameOriginal": matchAwardDataOverride.MVPScreenImageFileNameOriginalOverride = (true, valueAttribute); break; case "MVPScreenImageFileName": matchAwardDataOverride.MVPScreenImageFileNameOverride = (true, valueAttribute); break; case "ScoreScreenImageFileNameOriginal": matchAwardDataOverride.ScoreScreenImageFileNameOriginalOverride = (true, valueAttribute); break; case "ScoreScreenImageFileName": matchAwardDataOverride.ScoreScreenImageFileNameOverride = (true, valueAttribute); break; case "Description": matchAwardDataOverride.DescriptionOverride = (true, valueAttribute); break; } } if (!string.IsNullOrEmpty(cAwardId) && !DataOverridesById.ContainsKey(cAwardId)) { DataOverridesById.Add(cAwardId, matchAwardDataOverride); } }
/// <summary> /// Loads the override file. /// </summary> /// <exception cref="FileNotFoundException"></exception> public void Load() { DataOverridesById.Clear(); LoadBuildNumberOverrideFiles(); XDocument dataOverrideDocument = LoadOverrideFile(); if (dataOverrideDocument.Root == null) { throw new InvalidOperationException(); } IEnumerable <XElement> dataElements = dataOverrideDocument.Root.Elements(OverrideElementName).Where(x => x.Attribute("id") != null); foreach (XElement dataElement in dataElements) { SetOverride(dataElement); } }
/// <summary> /// Gets an override object from a given id. Returns null if none found. /// </summary> /// <param name="id">The id the override object.</param> /// <returns></returns> public T GetOverride(string id) { if (DataOverridesById == null) { throw new NullReferenceException("The Load() method needs to be called before this method can be used."); } if (id.Contains(".stormmod")) { id = id.Replace(".stormmod", string.Empty); } if (DataOverridesById.TryGetValue(id, out T overrideData)) { return(overrideData); } else { return(null); } }
protected override void SetOverride(XElement element) { MatchAwardDataOverride matchAwardDataOverride = new MatchAwardDataOverride(); string cAwardId = element.Attribute("id").Value; foreach (XElement dataElement in element.Elements()) { string elementName = dataElement.Name.LocalName; string valueAttribute = dataElement.Attribute("value")?.Value; switch (elementName) { case "Id": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.IdOverride = (true, valueAttribute); } break; case "MVPScreenImageFileNameOriginal": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.MVPScreenImageFileNameOriginalOverride = (true, valueAttribute); } break; case "MVPScreenImageFileName": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.MVPScreenImageFileNameOverride = (true, valueAttribute); } break; case "ScoreScreenImageFileNameOriginal": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.ScoreScreenImageFileNameOriginalOverride = (true, valueAttribute); } break; case "ScoreScreenImageFileName": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.ScoreScreenImageFileNameOverride = (true, valueAttribute); } break; case "Description": if (!string.IsNullOrEmpty(valueAttribute)) { matchAwardDataOverride.DescriptionOverride = (true, valueAttribute); } break; } } if (!DataOverridesById.ContainsKey(cAwardId)) { DataOverridesById.Add(cAwardId, matchAwardDataOverride); } }