public string getWorkout(long wid) { aqufitEntities entities = new aqufitEntities(); Workout workout = entities.UserStreamSet.Include("WorkoutExtendeds").Include("WorkoutExtendeds.MapRoute").Include("UserSetting").OfType<Workout>().FirstOrDefault(w => w.Id == wid); if (workout != null) { Affine.Data.json.Workout json = new Affine.Data.json.Workout() { Calories = workout.Calories, Date = workout.Date.ToLocalTime().ToShortDateString(), Description = workout.Description, Distance = workout.Distance, Duration = workout.Duration, Emotion = workout.Emotion, Id = workout.Id, Title = workout.Title, PortalKey = workout.PortalKey, UserKey = workout.UserSetting.UserKey, Weather = workout.Weather, DataSrc = workout.DataSrc, WorkoutTypeKey = Convert.ToInt64( workout.WorkoutTypeKey ) }; if (workout.WorkoutExtendeds.FirstOrDefault() != null) { WorkoutExtended ext = workout.WorkoutExtendeds.First(); Affine.Data.json.WorkoutExtended jsonWorkoutExtended = new Affine.Data.json.WorkoutExtended() { Id = ext.Id, LatMax = ext.LatMax, LatMin = ext.LatMin, LngMax = ext.LngMax, LngMin = ext.LngMin }; Affine.Data.json.WorkoutSample[] samples = entities.WorkoutSamples.Where(s => s.WorkoutExtended.Id == ext.Id).OrderBy(s => s.SampleNumber) .Select(s => new Affine.Data.json.WorkoutSample() { Date = s.Date, Time = 0, Distance = s.Distance, Elevation = s.Elevation, HeartRate = s.HeartRate, Id = s.Id, Lat = s.Lat, Lng = s.Lng, SampleNumber = s.SampleNumber }).ToArray(); foreach (Affine.Data.json.WorkoutSample s in samples) { s.Time = s.Date.Ticks; } jsonWorkoutExtended.WorkoutSamples = samples; json.WorkoutExtended = jsonWorkoutExtended; if (ext.MapRoute != null) { MapRoute mr = ext.MapRoute; Affine.Data.json.MapRoute jsonMapRoute = new Affine.Data.json.MapRoute() { Id = mr.Id, LatMax = mr.LatMax, LatMin = mr.LatMin, LngMax = mr.LngMax, LngMin = mr.LngMin, City = mr.City, Name = mr.Name, PortalKey = mr.PortalKey, Rating = mr.Rating, RouteDistance = mr.RouteDistance, UserKey = workout.UserSetting.Id, Region = mr.Region }; Affine.Data.json.MapRoutePoint[] points = entities.MapRoutePoints.Where( mp => mp.MapRoute.Id == mr.Id ).OrderBy( mp => mp.Order ).Select(p => new Affine.Data.json.MapRoutePoint() { Id = p.Id, Lat = p.Lat, Lng = p.Lng, Order = p.Order }).ToArray(); jsonMapRoute.MapRoutePoints = points; json.WorkoutExtended.MapRoute = jsonMapRoute; } } JavaScriptSerializer jserializer = new JavaScriptSerializer(); return jserializer.Serialize(json); } return ""; }
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request["w"])) { aqufitEntities entities = new aqufitEntities(); long wid = Convert.ToInt64(Request["w"]); // TODO: need security Workout workout = entities.UserStreamSet.Include("WorkoutExtendeds").Include("UserSetting").OfType<Workout>().FirstOrDefault(w => w.Id == wid); if (workout != null) { Affine.Data.json.Workout json = new Affine.Data.json.Workout() { Calories = workout.Calories, Date = workout.Date.ToShortDateString(), Description = workout.Description, Distance = workout.Distance, Duration = workout.Duration, Emotion = workout.Emotion, Id = workout.Id, Title = workout.Title, PortalKey = workout.PortalKey, UserKey = workout.UserSetting.UserKey, Weather = workout.Weather, }; if (workout.WorkoutExtendeds.FirstOrDefault() != null) { WorkoutExtended ext = workout.WorkoutExtendeds.First(); Affine.Data.json.WorkoutExtended jsonWorkoutExtended = new Affine.Data.json.WorkoutExtended() { Id = ext.Id, LatMax = ext.LatMax, LatMin = ext.LatMin, LngMax = ext.LngMax, LngMin = ext.LngMin }; Affine.Data.json.WorkoutSample[] samples = entities.WorkoutSamples.Where(s => s.WorkoutExtended.Id == ext.Id).OrderBy(s => s.SampleNumber) .Select(s => new Affine.Data.json.WorkoutSample() { Date = s.Date, Time = 0, Distance = s.Distance, Elevation = s.Elevation, HeartRate = s.HeartRate, Id = s.Id, Lat = s.Lat, Lng = s.Lng, SampleNumber = s.SampleNumber }).ToArray(); foreach (Affine.Data.json.WorkoutSample s in samples) { s.Time = s.Date.Ticks; } jsonWorkoutExtended.WorkoutSamples = samples; json.WorkoutExtended = jsonWorkoutExtended; } JavaScriptSerializer jserializer = new JavaScriptSerializer(); Response.Write( jserializer.Serialize(json) ); } } else if (Request["ed"] != null && Request["u"] != null && Request["sd"] != null) { long uid = Convert.ToInt64(Request["u"]); DateTime endDate = DateTime.Parse(Request["ed"]); DateTime startDate = DateTime.Parse(Request["sd"]).ToUniversalTime(); endDate = endDate.AddDays(1).ToUniversalTime(); aqufitEntities entities = new aqufitEntities(); IList<Affine.Data.json.Workout> ret = new List<Affine.Data.json.Workout>(); IList<Workout> workoutList = entities.UserStreamSet.Include("UserSetting").OfType<Workout>(). Where(w => w.UserSetting.UserKey == uid && w.Date.CompareTo(endDate) <= 0 && w.Date.CompareTo(startDate) >= 0 ).OrderByDescending(w => w.Date).ToList(); workoutList = workoutList.Reverse().ToList(); foreach (Workout workout in workoutList) { Affine.Data.json.Workout json = new Affine.Data.json.Workout() { Calories = workout.Calories, TimeStamp = workout.TimeStamp, Date = workout.Date.ToShortDateString(), Description = workout.Description, Distance = workout.Distance, Duration = workout.Duration, Emotion = workout.Emotion, Id = workout.Id, Title = workout.Title, PortalKey = workout.PortalKey, UserKey = workout.UserSetting.UserKey, Weather = workout.Weather, DataSrc = workout.DataSrc }; ret.Add(json); } // TODO: need a case for empty data JavaScriptSerializer jserializer = new JavaScriptSerializer(); Response.Write(jserializer.Serialize(ret.ToArray())); } else { Response.Write("{ERROR:'invalid request'}"); } }
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request["w"])) { aqufitEntities entities = new aqufitEntities(); long wid = Convert.ToInt64(Request["w"]); // TODO: need security Workout workout = entities.UserStreamSet.Include("WorkoutExtendeds").Include("UserSetting").OfType <Workout>().FirstOrDefault(w => w.Id == wid); if (workout != null) { Affine.Data.json.Workout json = new Affine.Data.json.Workout() { Calories = workout.Calories, Date = workout.Date.ToShortDateString(), Description = workout.Description, Distance = workout.Distance, Duration = workout.Duration, Emotion = workout.Emotion, Id = workout.Id, Title = workout.Title, PortalKey = workout.PortalKey, UserKey = workout.UserSetting.UserKey, Weather = workout.Weather, }; if (workout.WorkoutExtendeds.FirstOrDefault() != null) { WorkoutExtended ext = workout.WorkoutExtendeds.First(); Affine.Data.json.WorkoutExtended jsonWorkoutExtended = new Affine.Data.json.WorkoutExtended() { Id = ext.Id, LatMax = ext.LatMax, LatMin = ext.LatMin, LngMax = ext.LngMax, LngMin = ext.LngMin }; Affine.Data.json.WorkoutSample[] samples = entities.WorkoutSamples.Where(s => s.WorkoutExtended.Id == ext.Id).OrderBy(s => s.SampleNumber) .Select(s => new Affine.Data.json.WorkoutSample() { Date = s.Date, Time = 0, Distance = s.Distance, Elevation = s.Elevation, HeartRate = s.HeartRate, Id = s.Id, Lat = s.Lat, Lng = s.Lng, SampleNumber = s.SampleNumber }).ToArray(); foreach (Affine.Data.json.WorkoutSample s in samples) { s.Time = s.Date.Ticks; } jsonWorkoutExtended.WorkoutSamples = samples; json.WorkoutExtended = jsonWorkoutExtended; } JavaScriptSerializer jserializer = new JavaScriptSerializer(); Response.Write(jserializer.Serialize(json)); } } else if (Request["ed"] != null && Request["u"] != null && Request["sd"] != null) { long uid = Convert.ToInt64(Request["u"]); DateTime endDate = DateTime.Parse(Request["ed"]); DateTime startDate = DateTime.Parse(Request["sd"]).ToUniversalTime(); endDate = endDate.AddDays(1).ToUniversalTime(); aqufitEntities entities = new aqufitEntities(); IList <Affine.Data.json.Workout> ret = new List <Affine.Data.json.Workout>(); IList <Workout> workoutList = entities.UserStreamSet.Include("UserSetting").OfType <Workout>(). Where(w => w.UserSetting.UserKey == uid && w.Date.CompareTo(endDate) <= 0 && w.Date.CompareTo(startDate) >= 0).OrderByDescending(w => w.Date).ToList(); workoutList = workoutList.Reverse().ToList(); foreach (Workout workout in workoutList) { Affine.Data.json.Workout json = new Affine.Data.json.Workout() { Calories = workout.Calories, TimeStamp = workout.TimeStamp, Date = workout.Date.ToShortDateString(), Description = workout.Description, Distance = workout.Distance, Duration = workout.Duration, Emotion = workout.Emotion, Id = workout.Id, Title = workout.Title, PortalKey = workout.PortalKey, UserKey = workout.UserSetting.UserKey, Weather = workout.Weather, DataSrc = workout.DataSrc }; ret.Add(json); } // TODO: need a case for empty data JavaScriptSerializer jserializer = new JavaScriptSerializer(); Response.Write(jserializer.Serialize(ret.ToArray())); } else { Response.Write("{ERROR:'invalid request'}"); } }