public string SaveUnitChangeSetting(long uid, int pId, string type, int units) { UserSettings aqufitSettings = aqufitEntities.UserSettings.FirstOrDefault <UserSettings>(us => us.UserKey == uid && us.PortalKey == pId); if (aqufitSettings != null) { Affine.Utils.UnitsUtil.MeasureUnit u = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), units); switch (type.ToLower()) { case "weight": if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG) // check units { aqufitSettings.WeightUnits = (short)u; } break; case "height": if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM) // check units { aqufitSettings.HeightUnits = (short)u; } break; case "distance": if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM) // check units { aqufitSettings.DistanceUnits = (short)u; } break; case "bodymeasure": if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM) // check units { aqufitSettings.BodyMeasureUnits = (short)u; } break; } aqufitEntities.SaveChanges(); return("SUCESS"); } // TODO: log an alerts (iphone alert) //DotNetNuke.Services.Log.EventLog.EventLogController objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController(); //objEventLog.AddLog(objNewUser, PortalSettings, objNewUser.UserID, atiSlimControl.Email, DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT); string body = "UtilService.SaveUnitChangeSetting: No UserSettings for user Id: " + uid + " Portal: " + pId; DotNetNuke.Services.Mail.Mail.SendMail("*****@*****.**", "*****@*****.**", "", "App ERROR", body, "", "HTML", "", "", "", ""); return("FAIL"); }
private void SetupUnit(Affine.Utils.UnitsUtil.MeasureUnit unit) { switch (unit) { case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM: ddlUnitsType.Items.Add(new ListItem("cm", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES: ddlUnitsType.Items.Add(new ListItem("in", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG: ddlUnitsType.Items.Add(new ListItem("Kg", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM: ddlUnitsType.Items.Add(new ListItem("KM", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS: ddlUnitsType.Items.Add(new ListItem("lbs", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M: ddlUnitsType.Items.Add(new ListItem("M", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES: ddlUnitsType.Items.Add(new ListItem("Mi", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES)); break; case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN: ddlUnitsType.Items.Add(new ListItem("ft/in", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN)); break; default: throw new Affine.Utils.InvalidUnitsException("Unknown Units: ATI_UnitControl.SetupUnit"); } }
protected void bBodyComposition_Click(object sender, EventArgs e) { // TODO: check inputs for error UserSettings userSettings = new UserSettings(); if (atiBodyComposition.BirthDate == null) { lErrorText.Text = "You must enter your Birthdate."; return; } if (string.IsNullOrEmpty(atiBodyComposition.Weight)) { lErrorText.Text = "You must enter your weight."; return; } userSettings.BirthDate = Convert.ToDateTime(atiBodyComposition.BirthDate); //userSettings.DistanceUnits = (short)atiBodyComposition.DistanceUnits; userSettings.HeightUnits = (short)atiBodyComposition.HeightUnits; userSettings.WeightUnits = (short)atiBodyComposition.WeightUnits; userSettings.UserKey = UserId; userSettings.PortalKey = PortalId; userSettings.Sex = atiBodyComposition.Gender; aqufitEntities aqufitEntities = new aqufitEntities(); aqufitEntities.AddToUserSettings(userSettings); BodyComposition bc = new BodyComposition() { UserKey = UserId, PortalKey = PortalId, FitnessLevel = atiBodyComposition.FitnessLevel }; // need height and weight conversions bc.Modified = DateTime.Now; bc.BodyFatPercent = 0.0; bc.Weight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyComposition.Weight), atiBodyComposition.WeightUnits); // bc.Height = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyComposition.Height), atiBodyComposition.HeightUnits); aqufitEntities.AddToBodyComposition(bc); BodyMeasurments bm = new BodyMeasurments() { UserKey = UserId, PortalKey = PortalId }; Affine.Utils.UnitsUtil.MeasureUnit bmUnits = atiBodyComposition.HeightUnits == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES ? Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM; if (!string.IsNullOrEmpty(atiBodyMeasurements.Chest)) { bm.Chest = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Chest), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.Neck)) { bm.Neck = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Neck), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.Shoulders)) { bm.Shoulders = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Shoulders), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.Stomach)) { bm.Stomach = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Stomach), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.Waist)) { bm.Waist = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Waist), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.Hips)) { bm.Hips = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Hips), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.BicepLeft)) { bm.BicepLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.BicepLeft), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.BicepRight)) { bm.BicepRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.BicepRight), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.ForearmLeft)) { bm.ForearmLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ForearmLeft), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.ForearmRight)) { bm.ForearmRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ForearmRight), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.ThighLeft)) { bm.ThighLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ThighLeft), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.ThighRight)) { bm.ThighRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ThighRight), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.CalfLeft)) { bm.CalfLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.CalfLeft), bmUnits); } if (!string.IsNullOrEmpty(atiBodyMeasurements.CalfLeft)) { bm.CalfRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.CalfRight), bmUnits); } bm.Modified = DateTime.Now; aqufitEntities.AddToBodyMeasurments(bm); aqufitEntities.SaveChanges(); bBodyComposition.Visible = false; bProfile.Visible = true; RadAjaxManager1.ResponseScripts.Add("AjaxResponseSuccess();"); }
/// ----------------------------------------------------------------------------- /// <summary> /// Page_Load runs when the control is loaded /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> /// ----------------------------------------------------------------------------- protected void Page_Load(System.Object sender, System.EventArgs e) { base.Page_Load(sender, e); try { ServiceReference service = new ServiceReference("~/DesktopModules/ATI_Base/resources/services/StreamService.asmx"); service.InlineScript = true; ScriptManager.GetCurrent(Page).Services.Add(service); imgAd.Src = ResolveUrl("~/images/iphoneAd.png"); imgCheck.ImageUrl = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iCheck.png"); if (!Page.IsPostBack && !Page.IsCallback) { imgSearch.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iSearch.png"); imgCenter.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iCenter.png"); aqufitEntities entities = new aqufitEntities(); long rId = 0; if (HttpContext.Current.Items["r"] != null) { rId = Convert.ToInt64(HttpContext.Current.Items["r"]); } else if (Request["r"] != null) { rId = Convert.ToInt64(Request["r"]); } else if (HttpContext.Current.Items["w"] != null) { long workoutId = Convert.ToInt64(HttpContext.Current.Items["w"]); rId = entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workoutId).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault(); } else if (Request["w"] != null) { long workoutId = Convert.ToInt64(Request["w"]); rId = entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workoutId).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault(); } // Are we viewing a specific route ? if (rId > 0) { hiddenRouteKey.Value = "" + rId; MapRoute route = entities.MapRoutes.Include("UserSetting").Include("MapRoutePoints").FirstOrDefault(m => m.Id == rId); if (base.UserSettings != null) { bAddRoute.Visible = entities.User2MapRouteFav.FirstOrDefault(mr => mr.MapRoute.Id == route.Id && mr.UserSettingsKey == UserSettings.Id) == null; } Affine.Utils.UnitsUtil.MeasureUnit unit = this.UserSettings != null && this.UserSettings.DistanceUnits != null?Affine.Utils.UnitsUtil.ToUnit(this.UserSettings.DistanceUnits.Value) : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES; string dist = Math.Round(Affine.Utils.UnitsUtil.systemDefaultToUnits(route.RouteDistance, unit), 2) + " " + Affine.Utils.UnitsUtil.unitToStringName(unit); lRouteTitle.Text = route.Name + " (" + dist + ")"; lRouteInfo.Text = "<span>A " + dist + " route posted by <a class=\"username\" href=\"/" + route.UserSetting.UserName + "\">" + route.UserSetting.UserName + "</a> on " + route.CreationDate.ToShortDateString() + "</span>"; double centerLat = (route.LatMax + route.LatMin) / 2; double centerLng = (route.LngMax + route.LngMin) / 2; atiGMapView.Lat = centerLat; atiGMapView.Lng = centerLng; if (route.ThumbZoom.HasValue) { atiGMapView.Zoom = (short)(route.ThumbZoom.Value + 2); } atiGMapView.Route = route; atiProfileImg.Settings = route.UserSetting; atiRoutePanel.Visible = false; atiRouteViewer.Visible = true; string js = string.Empty; //js += "Affine.WebService.StreamService.GetRoutes(" + centerLat + ", " + centerLng + ", 10, 0, 5, 'distance', function (json) { "; js += "Aqufit.Page.atiSimilarRouteListScript.dataBinder = function(skip, take){ \n"; js += " Affine.WebService.StreamService.GetSimilarRoutes(" + rId + ", 10, skip, take, 'distance', function (json) { \n"; js += " Aqufit.Page.atiSimilarRouteListScript.generateStreamDom(json); \n"; js += " }); \n"; js += "};"; js += " Aqufit.Page.atiSimilarRouteListScript.dataBinder(0,5); "; atiShareLink.ShareLink = "http://" + Request.Url.Host + "/route/" + route.Id; atiShareLink.ShareTitle = "FlexFWD.com Mapped Route: \"" + route.Name + "\""; routeTabTitle.Text = " " + (string.IsNullOrWhiteSpace(route.Name) ? "Untitled" : route.Name); Affine.WebService.StreamService ss = new WebService.StreamService(); string json = ss.getStreamDataForRoute(route.Id, 0, 5); //generateStreamDom ScriptManager.RegisterStartupScript(this, Page.GetType(), "SimilarRouteList", "$(function(){ " + js + " Aqufit.Page.atiStreamScript.generateStreamDom('" + json + "'); });", true); } else { if (Settings["Configure"] != null && Convert.ToString(Settings["Configure"]).Equals("ConfigureMyRoutes")) { atiMyRoutePanel.Visible = true; mapContainer.Visible = false; atiRoutePanel.Visible = true; routeTabTitle.Text = "My Routes"; liMyRoutes.Visible = false; liFindRoute.Visible = true; WebService.StreamService streamService = new WebService.StreamService(); string json = streamService.GetMyRoutes(base.UserSettings.Id, 0, 10, "date"); string js = string.Empty; //js += "Affine.WebService.StreamService.GetRoutes(" + centerLat + ", " + centerLng + ", 10, 0, 5, 'distance', function (json) { "; js += "$(function(){ Aqufit.Page.atiRouteListScript.isMyRoutes = true; Aqufit.Page.atiRouteListScript.generateStreamDom('" + json + "'); \n"; js += " Aqufit.Page.atiRouteListScript.dataBinder = function(skip, take){ \n"; js += " Affine.WebService.StreamService.GetMyRoutes(" + base.UserSettings.Id + ", skip, take, 'date', function (json) { \n"; js += " Aqufit.Page.atiRouteListScript.generateStreamDom(json); \n"; js += " }); \n"; js += " } \n"; js += " }); \n"; ScriptManager.RegisterStartupScript(this, Page.GetType(), "RouteList", js, true); } else { routeTabTitle.Text = "Routes"; atiRoutePanel.Visible = true; atiRouteViewer.Visible = false; SetupPage(); // do normal page setup } } } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // CA - this will need to be cleaned up a lot.. but here is the iteration one version // ** People can view workouts in 4 modes (everyone, watchlist, friends, just them) // -In the case of running, cycling, swimming, and STANDARD crossfit Wods... we are going to // be storing peoples best times for (distance rnages) and standard wods... so in these cases // we can shorted the query time when we do an "everyone" query // -Watch list and friends we do the work of getting every time that person did the workout.. not just // there best times. // -Same for the (you only) view // private void LoadFlexDataForWorkout(Workout workout, Affine.Utils.ConstsUtil.GraphContext context) { Affine.Data.Managers.IDataManager dataManager = Affine.Data.Managers.LINQ.DataManager.Instance; JavaScriptSerializer serializer = new JavaScriptSerializer(); // onload we send friend, watch, and group member data that is needed to the app aqufitEntities entities = new aqufitEntities(); IList <long> friendIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == ProfileSettings.Id || f.DestUserSettingKey == ProfileSettings.Id)).Select(f => (f.SrcUserSettingKey == ProfileSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey)).ToList(); friendIds.Add(ProfileSettings.Id); // send the persons profile through var profile = new { UserName = ProfileSettings.UserName, Id = ProfileSettings.Id, FirstName = ProfileSettings.UserFirstName, LastName = ProfileSettings.UserLastName }; hiddenProfileJson.Value = serializer.Serialize(profile); var friends = entities.UserSettings.OfType <User>().Where(LinqUtils.BuildContainsExpression <User, long>(s => s.Id, friendIds)).Select(u => new { Id = u.Id, Un = u.UserName, Fn = u.UserFirstName, Ln = u.UserLastName }).ToArray(); hiddenFriendJson.Value = serializer.Serialize(friends); // get groups long[] groupIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == ProfileSettings.Id || f.DestUserSettingKey == ProfileSettings.Id) && f.Relationship > 0).Select(f => f.SrcUserSettingKey == ProfileSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey).ToArray(); UserSettings[] groupList = entities.UserSettings.OfType <Group>().Where(LinqUtils.BuildContainsExpression <UserSettings, long>(us => us.Id, groupIds)).OrderBy(f => f.UserName).ToArray(); var groups = entities.UserSettings.OfType <Group>().Where(LinqUtils.BuildContainsExpression <Group, long>(s => s.Id, groupIds)).Select(u => new { Id = u.Id, Un = u.UserName }).ToArray(); hiddenGroupJson.Value = serializer.Serialize(groups); // next we load the workout compare to all (friends) Affine.WebService.StreamService ss = new WebService.StreamService(); //hiddenWorkout.Value = ss.getWorkout(workout.Id); Affine.Data.json.Workout jsonWorkout = dataManager.workoutToJsonWorkout(workout); Affine.Data.json.WOD wod = null; Affine.Data.json.WorkoutData[] jsonWorkoutData = null; //var workoutJson = new { Id = workout.Id, WorkoutTypeKey = workout.WorkoutTypeKey, Title = workout.Title, Date = workout.Date.ToLocalTime().ToShortDateString(), DataSrc = workout.DataSrc }; Affine.Utils.UnitsUtil.MeasureUnit weight = base.WeightUnits; if (workout.WorkoutTypeKey == (int)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT) { if (context == Utils.ConstsUtil.GraphContext.DEFAULT) { // default context for crossfit is the watchlist context = Utils.ConstsUtil.GraphContext.WATCHLIST; } // if this is a crossfit workout // we want to get ALL the same WoDs for you and your friends IQueryable <Workout> workoutDataQuery = context == Utils.ConstsUtil.GraphContext.EVERYONE ? entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).AsQueryable() : context == Utils.ConstsUtil.GraphContext.WATCHLIST ? entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).Where(LinqUtils.BuildContainsExpression <Workout, long>(w => w.UserSetting.Id, friendIds)).AsQueryable() : context == Utils.ConstsUtil.GraphContext.FRIENDS ? entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).Where(LinqUtils.BuildContainsExpression <Workout, long>(w => w.UserSetting.Id, friendIds)).AsQueryable() : entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id && w.UserSetting.Id == ProfileSettings.Id).AsQueryable(); var workoutData = workoutDataQuery.Select(w => new { Id = w.Id, UsKey = w.UserSetting.Id, Un = w.UserSetting.UserName, T = w.Duration, S = w.Score, M = w.Max, Rx = w.RxD, D = w.Date }).ToArray(); wod = new Affine.Data.json.WOD() { Id = workout.WOD.Id, Standard = workout.WOD.Standard, Type = workout.WOD.WODType.Id, Name = workout.WOD.Name, Description = workout.WOD.Description }; if (wod.Type == (int)Affine.Utils.WorkoutUtil.WodType.TIMED) { // time in sec jsonWorkoutData = workoutData.OrderByDescending(w => w.T).Select(w => new Affine.Data.json.WorkoutData() { UId = w.Un + "_" + w.Id, Id = w.Id, S = (double)w.T, Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false) }).ToArray(); } else if (wod.Type == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT) { jsonWorkoutData = workoutData.OrderByDescending(w => w.M).Select(w => new Affine.Data.json.WorkoutData() { UId = w.Un + "_" + w.Id, Id = w.Id, S = Math.Round(Affine.Utils.UnitsUtil.systemDefaultToUnits(Convert.ToDouble(w.M), weight), 2), Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false) }).ToArray(); } else { jsonWorkoutData = workoutData.OrderByDescending(w => w.S).Select(w => new Affine.Data.json.WorkoutData() { UId = w.Un + "_" + w.Id, Id = w.Id, S = Math.Round(Convert.ToDouble(w.S), 2), Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false) }).ToArray(); } } else { // for now this will handle "running, swimming, walking, cycling" if (context == Utils.ConstsUtil.GraphContext.DEFAULT) { if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP || workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_WITH_MAP) { context = Utils.ConstsUtil.GraphContext.EVERYONE; } else if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.NIKE_NO_MAP) { context = Utils.ConstsUtil.GraphContext.WATCHLIST; } // TODO: not sure about this one.... /* * else if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_WITH_MAP) * { // TODO: ?? this is a special case that we want to compare all the times of people that have logged a run for the route. * long mapRouteKey = entities.UserStreamSet.OfType<Workout>().Where(w => w.Id == workout.Id).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault(); * IQueryable<Workout> workoutQuery = entities.WorkoutExtendeds.Include("UserStream").Where(we => we.MapRoute != null && we.MapRoute.Id == mapRouteKey).Select(we => we.UserStream).OfType<Workout>().OrderBy(w => w.Duration).Take(5000); * workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here. * Workout[] data = workoutQuery.ToArray(); * var wd = data.OrderByDescending(w => w.Duration).Select(w => new * { * UId = w.UserSetting.UserName + "_" + w.Id, * Id = w.Id, * S = w.Duration, * Un = w.UserSetting.UserName, * D = w.Date.ToLocalTime().ToShortDateString() * }).ToArray(); * var ret = new { WOD = new { }, WorkoutData = wd, Workout = workoutJson, Context = (int)context }; * hiddenWorkoutData.Value = serializer.Serialize(ret); * }*/ else { context = Utils.ConstsUtil.GraphContext.ME; } } if (context == Utils.ConstsUtil.GraphContext.EVERYONE) { // we want to compare achievments... IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a => a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey && workout.Distance >= a.AchievementType.DistanceRangeA && workout.Distance < a.AchievementType.DistanceRangeB).Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable(); workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id)); workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here. Workout[] data = workoutQuery.ToArray(); jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData() { UId = w.UserSetting.UserName + "_" + w.Id, Id = w.Id, S = w.Duration.Value, Un = w.UserSetting.UserName, D = w.Date.ToLocalTime().ToShortDateString() }).ToArray(); } else if (context == Utils.ConstsUtil.GraphContext.WATCHLIST || context == Utils.ConstsUtil.GraphContext.FRIENDS) { IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a => a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey && workout.Distance >= a.AchievementType.DistanceRangeA && workout.Distance < a.AchievementType.DistanceRangeB). Where(LinqUtils.BuildContainsExpression <Achievement, long>(a => a.UserSetting.Id, friendIds)).Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable(); workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id)); workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here. Workout[] data = workoutQuery.ToArray(); jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData() { UId = w.UserSetting.UserName + "_" + w.Id, Id = w.Id, S = w.Duration.Value, Un = w.UserSetting.UserName, D = w.Date.ToLocalTime().ToShortDateString() }).ToArray(); } else if (context == Utils.ConstsUtil.GraphContext.ME) // this is just you for the ranges.. since no map data { IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a => a.UserSetting.Id == ProfileSettings.Id && a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey && workout.Distance >= a.AchievementType.DistanceRangeA && workout.Distance < a.AchievementType.DistanceRangeB). Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable(); workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id)); workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here. Workout[] data = workoutQuery.ToArray(); jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData() { UId = w.UserSetting.UserName + "_" + w.Id, Id = w.Id, S = w.Duration.Value, Un = w.UserSetting.UserName, D = w.Date.ToLocalTime().ToShortDateString() }).ToArray(); } } var retWorkout = new { WOD = wod, WorkoutData = jsonWorkoutData, Workout = jsonWorkout, Context = (int)context }; hiddenWorkoutData.Value = serializer.Serialize(retWorkout); }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "application/json"; if (!string.IsNullOrWhiteSpace(Request.Form["u"])) { aqufitEntities entities = new aqufitEntities(); long uid = Convert.ToInt64(Request.Form["u"]); Guid token = Guid.Parse(Request.Form["t"]); User user = entities.UserSettings.OfType <User>().FirstOrDefault(u => u.Id == uid && u.Guid == token); string search = Request["s"] != null?Convert.ToString(Request["s"]) : ""; if (!string.IsNullOrWhiteSpace(search)) { IQueryable <Workout> wodsToDisplay = entities.UserStreamSet.OfType <Workout>().Include("WOD").Where(w => w.UserSetting.Id == user.Id && w.Title.StartsWith(search)); wodsToDisplay.Take(25); Workout[] timedWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.TIMED).OrderBy(w => w.Duration).ToArray(); IList <NameValue> cfTotals = timedWods.Select(w => new NameValue() { Name = w.Title, Value = Affine.Utils.UnitsUtil.durationToTimeString(Convert.ToInt64(w.Duration)), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList(); // Now all the scored ones... Workout[] scoredWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.SCORE || w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP).ToArray(); cfTotals = cfTotals.Concat(scoredWods.Select(w => new NameValue() { Name = w.Title, Value = Convert.ToString(w.Score), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList()).ToList(); Workout[] maxWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT).ToArray(); Affine.Utils.UnitsUtil.MeasureUnit WeightUnits = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS; cfTotals = cfTotals.Concat(maxWods.Select(w => new NameValue() { Name = w.Title, Value = Affine.Utils.UnitsUtil.systemDefaultToUnits(w.Max.Value, WeightUnits) + " " + Affine.Utils.UnitsUtil.unitToStringName(WeightUnits), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList()).ToList(); Response.Write(serializer.Serialize(cfTotals.OrderBy(t => t.Name).ToArray())); } else { IQueryable <Workout> crossfitWorkouts = entities.UserStreamSet.OfType <Workout>().Include("WOD").Where(w => w.UserSetting.Id == user.Id && w.IsBest == true); int numDistinct = crossfitWorkouts.Select(w => w.WOD).Distinct().Count(); IQueryable <Workout> wodsToDisplay = null; wodsToDisplay = crossfitWorkouts.OrderByDescending(w => w.Id); // We need to split up into WOD types now... Workout[] timedWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.TIMED).OrderBy(w => w.Duration).ToArray(); IList <NameValue> cfTotals = timedWods.Select(w => new NameValue() { Name = w.Title, Value = Affine.Utils.UnitsUtil.durationToTimeString(Convert.ToInt64(w.Duration)), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList(); // Now all the scored ones... Workout[] scoredWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.SCORE || w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP).ToArray(); cfTotals = cfTotals.Concat(scoredWods.Select(w => new NameValue() { Name = w.Title, Value = Convert.ToString(w.Score), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList()).ToList(); Workout[] maxWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT).ToArray(); Affine.Utils.UnitsUtil.MeasureUnit WeightUnits = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS; cfTotals = cfTotals.Concat(maxWods.Select(w => new NameValue() { Name = w.Title, Value = Affine.Utils.UnitsUtil.systemDefaultToUnits(w.Max.Value, WeightUnits) + " " + Affine.Utils.UnitsUtil.unitToStringName(WeightUnits), Date = w.Date.ToShortDateString(), Notes = "" + w.Description }).ToList()).ToList(); Response.Write(serializer.Serialize(cfTotals.OrderBy(t => t.Name).ToArray())); } Response.Flush(); Response.End(); } }
/// ----------------------------------------------------------------------------- /// <summary> /// Page_Load runs when the control is loaded /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> /// ----------------------------------------------------------------------------- protected void Page_Load(System.Object sender, System.EventArgs e) { try { base.Page_Load(sender, e); this.Permissions = AqufitPermission.PUBLIC; this.GroupPermissions = Utils.ConstsUtil.Relationships.NONE; this.Following = false; aqufitEntities entities = new aqufitEntities(); if (this.UserId > 0) { this.UserSettings = entities.UserSettings.OfType<User>().Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(s => s.UserKey == this.UserId && s.PortalKey == this.PortalId); } this.GroupSettings = null; if (HttpContext.Current.Items["g"] != null || Request["g"] != null) { string groupname = HttpContext.Current.Items["g"] != null ? Convert.ToString(HttpContext.Current.Items["g"]) : Convert.ToString(Request["g"]); this.GroupSettings = entities.UserSettings.OfType<Group>().Include("GroupType").Include("UserSettingsExtendeds").FirstOrDefault(g => g.PortalKey == this.PortalId && g.UserName == groupname); } // throw new Exception("UserName: "******"u"] != null || Request["u"] != null) { // there was a user passed in the url. string uname = HttpContext.Current.Items["u"] != null ? Convert.ToString(HttpContext.Current.Items["u"]) : Request["u"]; // TODO: cache the user settings this.ProfileSettings = entities.UserSettings.Include("Metrics").Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(us => us.UserName == uname && us.PortalKey == this.PortalId); // this.ProfileSettings.Guid = Guid.NewGuid(); // entities.SaveChanges(); if (this.ProfileSettings == null) { // TODO: error handeling throw new Exception("No User Profile found for: " + uname); // DNN 5.0.3 //return; } if (this.ProfileSettings is Group) { this.GroupSettings = this.ProfileSettings as Group; } } else { // there was no user name on the url. So if there is a user logged in. Lets defualt the page to them if (this.UserId > 0) { /* CA - this is old.. i am thinking that we just want to set UserSettings... this.ProfileSettings = entities.UserSettings.OfType<User>().Include("Metrics").Include("UserSettingsExtendeds").FirstOrDefault(us => us.UserKey == this.UserId && us.PortalKey == this.PortalId); if (this.ProfileSettings == null) { // TODO: error handeling throw new Exception("No User Profile found for uid: " + this.UserId); } */ this.UserSettings = entities.UserSettings.OfType<User>().Include("Metrics").Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(us => us.UserKey == this.UserId && us.PortalKey == this.PortalId); if (this.UserSettings == null) { // TODO: error handeling throw new Exception("No User Profile found for uid: " + this.UserId); } } else if (this.GroupSettings != null) { this.ProfileSettings = ((Affine.Data.UserSettings)this.GroupSettings); } else { // TODO: This person is not logged in.. send them a 404 //throw new Exception("404 Error needed here"); //Response.Redirect(ResolveUrl("~/"), true); // This is a "public" connection to the page. (that might not have a URL routemapping) return; } } if (this.ProfileSettings != null && this.ProfileSettings is Group) { this.GroupSettings = (Group)this.ProfileSettings; } // PERMISSIONS: So now we have a profileSettings object. It is time to figure out what kind of permissions we have for the page // Permissions work with the following structure: // 1) You are the owner (full permissions) // 2) You are a friend (friend permissions) // 3) Public (public permissions) if (this.ProfileSettings != null && this.ProfileSettings.UserKey == this.UserId && this.ProfileSettings.PortalKey == this.PortalId) { // PERMISSIONS: Set owner permissions this.Permissions = AqufitPermission.OWNER; } else { // TODO: this is expensive to query on EVERY postback UserFriends areFriends = null; UserFriends areFollowing = null; if (this.UserSettings != null && this.ProfileSettings != null) { areFriends = entities.UserFriends.FirstOrDefault(f => ((f.SrcUserSettingKey == this.UserSettings.Id && f.DestUserSettingKey == this.ProfileSettings.Id) || (f.SrcUserSettingKey == this.ProfileSettings.Id && f.DestUserSettingKey == this.UserSettings.Id)) && f.Relationship == (int)Affine.Utils.ConstsUtil.Relationships.FRIEND ); areFollowing = entities.UserFriends.FirstOrDefault(f => ((f.SrcUserSettingKey == this.UserSettings.Id && f.DestUserSettingKey == this.ProfileSettings.Id) ) && f.Relationship == (int)Affine.Utils.ConstsUtil.Relationships.FOLLOW); } if (areFriends != null ) { // PERMISSIONS: set friend permissions this.Permissions = AqufitPermission.FRIEND; } else if (areFollowing != null) { this.Following = true; } else { if (this.UserId > 0) { this.Permissions = AqufitPermission.USER; } else { // PERMISSIONS: Set public permissions this.Permissions = AqufitPermission.PUBLIC; } // PERMISSIONS: We can check if there is a pending friend request for this person // TODO: check pending requests. } } if (this.GroupSettings != null) { // First we need to find out the relationship that the user has with the group if (UserSettings != null) { UserFriends relationship = entities.UserFriends.FirstOrDefault(f => (f.SrcUserSettingKey == this.GroupSettings.Id && f.DestUserSettingKey == UserSettings.Id || f.DestUserSettingKey == this.GroupSettings.Id && f.SrcUserSettingKey == UserSettings.Id)); if (relationship == null) { // This means that the user is NOT a member of the group TODO: check permissions that group is "Open" //base.GroupSettings.GroupType.TypeName == " } else { GroupPermissions = Utils.ConstsUtil.IntToRelationship(relationship.Relationship); } } else { // you are not logged in .. so just show basic details GroupPermissions = Utils.ConstsUtil.Relationships.NONE; } } this.DistanceUnits = UserSettings != null && UserSettings.DistanceUnits != null ? Affine.Utils.UnitsUtil.ToUnit(UserSettings.DistanceUnits.Value) : Utils.UnitsUtil.MeasureUnit.UNIT_MILES; this.WeightUnits = UserSettings != null && UserSettings.WeightUnits != null ? Affine.Utils.UnitsUtil.ToUnit(UserSettings.WeightUnits.Value) : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS; // END - setup for permissions ScriptManager.RegisterStartupScript(this, Page.GetType(), "ProfileVars", GetProfileJs(), true); } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack && !Page.IsCallback) { // imgNikePlus.ImageUrl = ResolveUrl("~/DesktopModules/ATI_Fitness/resources/images/iSyncNikePlus.png"); // set date control to today atiRadDatePicker.SelectedDate = DateTime.Now; // setup the units control atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES); atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM); atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M); atiDistanceUnits.Selected = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES; atiMaxWeightUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); atiMaxWeightUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG); atiMaxWeightUnits.Selected = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS; // Setup the units to the users last used units if (this.PortalSettings.UserInfo.UserID != -1) { aqufitEntities aqufitEntities = new aqufitEntities(); UserSettings aqufitSettings = aqufitEntities.UserSettings.FirstOrDefault <UserSettings>(us => us.UserKey == this.PortalSettings.UserInfo.UserID && us.PortalKey == this.PortalSettings.PortalId); if (aqufitSettings != null) // TODO: this really should never happen { if (aqufitSettings.DistanceUnits != null) { atiDistanceUnits.Selected = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), aqufitSettings.DistanceUnits); } if (aqufitSettings.WeightUnits != null) { atiMaxWeightUnits.Selected = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), aqufitSettings.WeightUnits); } } } if (this.SetControlToWOD != null) { atiWorkoutTypes.SelectedType = Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT; Aqufit.Helpers.WodItem wi = new Aqufit.Helpers.WodItem() { Id = this.SetControlToWOD.Id, Type = (short)this.SetControlToWOD.WODType.Id }; string json = _serializer.Serialize(wi); RadComboBoxItem item = new RadComboBoxItem(this.SetControlToWOD.Name, json); item.Selected = true; atiRadComboBoxCrossfitWorkouts.Items.Add(item); ScriptManager.RegisterStartupScript(this, Page.GetType(), "InitialWOD", "Aqufit.addLoadEvent(function(){ Aqufit.Page." + this.ID + ".configureFormView(" + (int)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT + "); Aqufit.Page.Controls.atiWodSelector.SetupWOD('" + json + "') });", true); } else if (this.SetControlToMapRoute != null) { Affine.Utils.UnitsUtil.MeasureUnit units = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES; double dist = Affine.Utils.UnitsUtil.systemDefaultToUnits(this.SetControlToMapRoute.RouteDistance, units); dist = Math.Round(dist, 2); Aqufit.Helpers.RouteItem ri = new Aqufit.Helpers.RouteItem() { Dist = this.SetControlToMapRoute.RouteDistance, Id = this.SetControlToMapRoute.Id }; string json = _serializer.Serialize(ri); RadComboBoxItem item = new RadComboBoxItem(Affine.Utils.Web.WebUtils.FromWebSafeString(this.SetControlToMapRoute.Name) + " (" + dist + " " + Affine.Utils.UnitsUtil.unitToStringName(units) + ")", json); item.Selected = true; item.ImageUrl = Affine.Utils.ImageUtil.GetGoogleMapsStaticImage(this.SetControlToMapRoute, 200, 150); atiRouteSelector.Items.Add(item); } } }