/// <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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }