private int[] GetDataSetByMyFitnessStatType(MyFitnessStatType myFitnessStatType, List<MyFitness> Records) { int[] tempDataSet = new int[Records.Count]; for (int i = 0; i < Records.Count; i++) { MyFitness myFitness = Records[i]; tempDataSet[i] = (int)myFitness.GetFitnessValue(myFitnessStatType); } return tempDataSet; }
/// <summary> /// Enter from outside class /// </summary> /// <param name="MyFitnessStat"></param> /// <param name="MyFitnessList"></param> /// <param name="NumberOfDays"></param> public void GetValue(MyFitnessStatType MyFitnessStat, List<MyFitness> MyFitnessList, int NumberOfDays) { if ((NumberOfDays > (DateTime.IsLeapYear(DateTime.Now.Year) ? 366 : 365)) || (NumberOfDays < 1)) { throw new ArgumentOutOfRangeException("Number of Days cannot exceed number of days this year or be less than 1"); } //GetXML based on the stat type //get one more day due to the zero first record bug var XML = GetXML(MyFitnessStat, NumberOfDays+1); //Get values from xml var ListXML = GetValues(XML); //assign to collection ConvertXMLListToValue(MyFitnessList, ListXML, MyFitnessStat); }
public void ConvertXMLListToValue(List<MyFitness> MyFitnessList, List<MyFitnessXML> XMLList, MyFitnessStatType MyFitnessStat) { foreach (var item in XMLList) { var ExistingMyFitness = MyFitnessList.FirstOrDefault(x => x.Date == MyFitness.ConvertRawDateToDate(item.StringValue)); if (ExistingMyFitness != null) { ExistingMyFitness.Update(MyFitnessStat, item.NumberValue); } else { MyFitnessList.Add(MyFitness.Create(MyFitnessStat, item)); } } }
private XDocument GetXML(MyFitnessStatType MyFitnessStat, int NumberOfDays) { string URL = MyFitnessURL.FormatURL(MyFitnessStat,NumberOfDays); return GetXML(URL); }
public void Update(MyFitnessStatType MyFitnessStat, double NumberValue) { SetFitnessValue(MyFitnessStat, NumberValue); }
public void SetFitnessValue(MyFitnessStatType MyFitnessStat, double Value) { this.GetType().GetProperty(Enum.GetName(typeof(MyFitnessStatType), MyFitnessStat)).SetValue(this, Value, null); }
public double GetFitnessValue(MyFitnessStatType MyFitnessStat) { return (double)this.GetType().GetProperty(Enum.GetName(typeof(MyFitnessStatType),MyFitnessStat)).GetValue(this,null); }
public static MyFitness Create(MyFitnessStatType MyFitnessStat, MyFitnessXML item) { MyFitness _MyFitness = new MyFitness { RawDate = item.StringValue }; _MyFitness.Update(MyFitnessStat, item.NumberValue); return _MyFitness; }
public static string FormatURL(MyFitnessStatType MyFitnessStat, int NumberOfDays) { return string.Format("{0}/{1}/{2}", MyFitnessBaseURL, URLs[MyFitnessStat], NumberOfDays); }
public static string AddSpaces(MyFitnessStatType MyFitnessStat) { return Enum.GetName(typeof(MyFitnessStatType), MyFitnessStat).Replace("_"," "); }