示例#1
0
        public static Activity Parse(XElement element)
        {
            if (element.Name.LocalName != "Activity")
            {
                return(null);
            }

            var activity = new Activity();

            var sportValue = element.Attributes().Where(d => d.Name.LocalName == "Sport").Select(a => a.Value).FirstOrDefault();

            activity.Sport = sportValue;

            var creatorElement = element.Descendants().Where(d => d.Name.LocalName == "Creator").FirstOrDefault();

            if (creatorElement != null)
            {
                var nameValue = creatorElement.Descendants().Where(d => d.Name.LocalName == "Name").Select(a => a.Value).FirstOrDefault();
                var idValue   = creatorElement.Descendants().Where(d => d.Name.LocalName == "UnitId").Select(a => a.Value).FirstOrDefault();
                activity.Creator = $"{nameValue} {idValue}";
            }

            var lapElements = element.Descendants().Where(d => d.Name.LocalName == "Lap").ToList();
            var laps        = lapElements.Select(e => Lap.Parse(e)).Where(t => t != null).ToList();

            activity.Laps = laps.ToArray();
            return(activity);
        }