void Start() { WallOfDeath = WOD.GetComponent <Rigidbody2D>(); inputField = GameObject.FindGameObjectWithTag("Respawn"); pl = GameObject.FindGameObjectWithTag("Player"); plContr = pl.GetComponent <Movement>(); StartCoroutine(api.Get()); inputeado = false; nuevoJuego = false; }
public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Scoring,Description")] WOD wod) { if (ModelState.IsValid) { db.Entry(wod).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(wod)); }
public async Task <ActionResult> AddToDates(AddWODToDatesViewModel model) { List <Class> classes = db.Classes.ToList().Where(c => c.Time.Value.Date >= model.StartDate.Date && c.Time.Value.Date <= model.EndDate.Date).ToList(); WOD wod = await db.WODs.SingleAsync(w => w.Name.Equals(model.WODName)); foreach (var cls in classes) { cls.WOD = wod; } await db.SaveChangesAsync(); ViewBag.Success = true; return(RedirectToAction("Index", new { controller = "Classes" })); }
// GET: WOD/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } WOD wOD = await db.WODs.FindAsync(id); if (wOD == null) { return(HttpNotFound()); } return(View(wOD)); }
public async Task DwnOWD() { IsBusy = true; WODS.Clear(); Exs.Clear(); SSP = false; try { var t = (await WODStore.GetItemsAsync(true)).GetEnumerator(); if (t != null) { while (t.MoveNext()) { if (t.Current.Date < DateTime.Now) { WODS.Add(t.Current); } else { upWOD = t.Current; SSP = true; } } } if (upWOD != null) { if (upWOD.Exercises != null) { foreach (var ite in upWOD.Exercises) { Exs.Add(ite); } } Ca = upWOD.Calories; Dt = upWOD.Date; } } catch (Exception e) { } finally { IsBusy = false; } }
public async Task <ActionResult> DeleteConfirmed(int id) { WOD wod = await db.WODs.FindAsync(id); List <Class> classes = db.Classes.Where(c => c.WOD.Id.Equals(wod.Id)).ToList(); foreach (var cls in classes) { cls.WOD = null; } db.WODs.Remove(wod); await db.SaveChangesAsync(); return(RedirectToAction("Index", new { controller = "WOD" })); }
public IActionResult Edit([FromBody] WOD item) { try { if (item == null || !ModelState.IsValid) { return(BadRequest("Invalid State")); } ItemRepository.Update(item); } catch (Exception) { return(BadRequest("Error while creating")); } return(NoContent()); }
public async Task <ActionResult> AddToClass(AddWODToClassViewModel model) { Class cls = db.Classes.Find(model.ClassId); try { WOD wod = db.WODs.Single(w => w.Name == model.WODName); cls.WOD = wod; await db.SaveChangesAsync(); return(RedirectToAction("Details", new { controller = "Classes", id = model.ClassId })); } catch { model.ClassType = cls.Type; ViewBag.Error = "No WOD was found by that name."; return(View(model)); } }
private void constructWorkoutInfo(WOD wod) { lWorkoutInfo.Text = ""; int i = 1; string timecap = string.Empty; if (wod.TimeSpan.HasValue) { timecap = " (" + Utils.UnitsUtil.durationToTimeString(wod.TimeSpan.Value) + ") hh:mm:ss"; } lWorkoutInfo.Text = "Workout Style: <b>" + wod.WODType.Name + "</b>" + timecap + "<br /><br />"; foreach (WODSet set in wod.WODSets) { lWorkoutInfo.Text += "<span class=\"wodSet\">Set: " + (i++) + "</span>"; foreach (WODExercise we in set.WODExercises) { lWorkoutInfo.Text += "<span class=\"wodEx\">"; string additional = string.Empty; if (we.MenDist.HasValue && we.MenDist.Value > 0) { additional += "Men: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenDist.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M); } if (we.WomenDist.HasValue && we.WomenDist.Value > 0) { additional += ", Women: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenDist.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M); } if (we.MenRx.HasValue && we.MenRx.Value > 0) { additional += "Men: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenRx.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); } if (we.WomenRx.HasValue && we.WomenRx.Value > 0) { additional += ", Women: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.WomenRx.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); } lWorkoutInfo.Text += we.Reps + " X " + we.Exercise.Name + (!string.IsNullOrWhiteSpace(additional) ? " (" + additional + ")" : "") + (!string.IsNullOrWhiteSpace(we.Notes) ? " Notes: " + we.Notes : "") + "<br />"; lWorkoutInfo.Text += "</span>"; } } }
private void LoadChartData() { System.Web.Script.Serialization.JavaScriptSerializer jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); // need a list of people in the group aqufitEntities entities = new aqufitEntities(); long[] memberIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == GroupSettings.Id || f.DestUserSettingKey == GroupSettings.Id) && f.Relationship >= (int)Affine.Utils.ConstsUtil.Relationships.GROUP_OWNER ).Select(f => f.SrcUserSettingKey == GroupSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey).ToArray(); // How many members are there in the group.. this will determin how far back in time we will look for workouts int numMembers = memberIds.Length; // For now we will always look over the last 7 days.. DateTime today = DateTime.Today; DateTime past = today.AddDays(-7); IQueryable<UserStream> streamSet = entities.UserStreamSet .Include("UserSetting").Include("WOD") .Where(w => w.Date.CompareTo(past) > 0) .Where(LinqUtils.BuildContainsExpression<UserStream, long>(w => w.UserSetting.Id, memberIds)); // TODO: we need to get a better idea of who is going to need hydrating before we do it. streamSet.Select(w => w.UserSetting).ToArray(); // THIS IS BAD.. Hydrating a lot of users profiles.. IQueryable<IGrouping<long?, Workout>> groupWorkouts = streamSet.OfType<Workout>().GroupBy(w => w.WorkoutTypeKey); // Lets find out what this group is all about ... IE what type of workouts dominate long ukey = -1; long key = -1; int usize = 0; int size = 0; foreach (IGrouping<long?, Workout> g in groupWorkouts) { UserSettings us = g.Select(w => w.UserSetting).First(); // first see if we can find anything that the current user is in if (UserSettings != null && g.FirstOrDefault(w => (long)w.UserSettingReference.EntityKey.EntityKeyValues[0].Value == UserSettings.Id) != null) { int c = g.Count(); if ( c > size) { ukey = g.Key.Value; usize = c; } }else{ int c = g.Count(); if ( c > size) { key = g.Key.Value; size = c; } } } if( ukey > 0 ){ // we found something that this user is in key = ukey; size = usize; } IGrouping<long?, Workout> workouts = groupWorkouts.Where(g => g.Key == key).FirstOrDefault(); Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance; Affine.Data.json.LeaderBoardWOD[] leaderBoard = dataMan.CalculatCrossFitLeaderBoard(base.GroupSettings.Id); atiLeaderBoard.Visible = true; WODSchedule scheduled = entities.WODSchedules.Include("WOD").Where(w => w.UserSetting.Id == GroupSettings.Id).OrderByDescending(w => w.Id).FirstOrDefault(); litTodaysWOD.Text = "<h3>Last Scheduled Workout:"; if (scheduled != null) { WOD wod = scheduled.WOD; litTodaysWOD.Text += " <a style=\"font-size: 16px; color: #0095cd; font-weight: bold;\" href=\"/workouts/" + wod.Id + "\">" + wod.Name + "</a></h3>"; Affine.WebService.StreamService ss = new WebService.StreamService(); string jsonEveryone = ss.getStreamDataForWOD(wod.Id, -1, 0, 25, true, true, -1, -1, -1); string jsonYou = string.Empty; string js = string.Empty; js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".fromStreamData('" + jsonEveryone + "'); "; if (base.UserSettings != null) { jsonYou = ss.getStreamDataForWOD(wod.Id, base.UserSettings.Id, 0, 10, true, true, -1, -1, -1); js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".fromYourStreamData('" + jsonYou + "'); "; } js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".drawChart(); "; RadAjaxManager1.ResponseScripts.Add(" $(function(){ Aqufit.Page." + atiLeaderBoard.ID + ".loadLeaderBoardFromJson('" + jsSerializer.Serialize(leaderBoard) + "'); " + js + " });"); } else { litTodaysWOD.Text += " <em>Unavailble</em></h3>"; atiWorkoutHighChart.Visible = false; } // so now KEY is the most (type) of workout // There are now a couple special cases... (crossfit workouts) /* if (key == (int)Utils.WorkoutUtil.WorkoutType.CROSSFIT) { Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance; Affine.Data.json.LeaderBoardWOD[] females = dataMan.CalculatCrossFitLeaderBoard(base.GroupSettings.Id, "F"); Affine.Data.json.LeaderBoardWOD[] males = dataMan.CalculatCrossFitLeaderBoard(base.GroupSettings.Id, "M"); atiLeaderBoardMale.Visible = true; atiLeaderBoardMale.LeaderWODList = males; atiLeaderBoardFemale.Visible = true; atiLeaderBoardFemale.LeaderWODList = females; } else { if (workouts != null) { // TODO: now for some reason we can not hydrate the "UserSettings" so we need to get them now long[] ids = workouts.Select(w => (long)w.UserSettingReference.EntityKey.EntityKeyValues[0].Value).ToArray(); // for now the other types of workout are just a quick grab... } } */ // ScriptManager.RegisterStartupScript(this, Page.GetType(), "wt", "alert('" + jsSerializer.Serialize( title ) + "');", true); }
private void SaveCompWorkoutPR() { Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance; aqufitEntities entities = new aqufitEntities(); int exCount = 0; try { if (atiTimeSpanFran.Time > 0) { // houston we have a fran time... bool addFran = true; if (!string.IsNullOrWhiteSpace(hiddenFranId.Value)) { long wId = Convert.ToInt64(hiddenFranId.Value); Workout fran = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (fran.Duration.Value == atiTimeSpanFran.Time) { addFran = false; } } if (addFran) { WOD fran = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.FRAN_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, atiTimeSpanFran.Time, "Entered PR for Competition data", true, fran.Id, null, null); } } } catch (Exception) { exCount++; } try { if (atiTimeSpanHelen.Time > 0) { // houston we have a Helen time... bool addHelen = true; if (!string.IsNullOrWhiteSpace(hiddenHelenKey.Value)) { long wId = Convert.ToInt64(hiddenHelenKey.Value); Workout Helen = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (Helen.Duration.Value == atiTimeSpanHelen.Time) { addHelen = false; } } if (addHelen) { WOD Helen = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.HELEN_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, atiTimeSpanHelen.Time, "Entered PR for Competition data", true, Helen.Id, null, null); } } } catch (Exception) { exCount++; } try { if (atiTimeSpanFilthyFifty.Time > 0) { // houston we have a Helen time... bool addFF = true; if (!string.IsNullOrWhiteSpace(hiddenFilthyFiftyKey.Value)) { long wId = Convert.ToInt64(hiddenFilthyFiftyKey.Value); Workout FF = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (FF.Duration.Value == atiTimeSpanFilthyFifty.Time) { addFF = false; } } if (addFF) { WOD FF = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.FILTHY50_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, atiTimeSpanFilthyFifty.Time, "Entered PR for Competition data", true, FF.Id, null, null); } } } catch (Exception) { exCount++; } try { if (atiTimeSpanGrace.Time > 0) { // houston we have a Helen time... bool addGrace = true; if (!string.IsNullOrWhiteSpace(hiddenGraceKey.Value)) { long wId = Convert.ToInt64(hiddenGraceKey.Value); Workout grace = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (grace.Duration.Value == atiTimeSpanGrace.Time) { addGrace = false; } } if (addGrace) { WOD grace = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.GRACE_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, atiTimeSpanGrace.Time, "Entered PR for Competition data", true, grace.Id, null, null); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtFGB.Text)) { bool addFGB = true; double score = Convert.ToDouble(txtFGB.Text); if (!string.IsNullOrWhiteSpace(hiddenFGBKey.Value)) { long wId = Convert.ToInt64(hiddenFGBKey.Value); Workout fgb = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (fgb.Score.Value == score) { addFGB = false; } } if (addFGB) { WOD fgb = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.FGB_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, fgb.Id, score, null); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtMaxPullups.Text)) { // houston we have a Helen time... bool addMaxPullups = true; double score = Convert.ToDouble(txtMaxPullups.Text); if (!string.IsNullOrWhiteSpace(hiddenMaxPullupKey.Value)) { long wId = Convert.ToInt64(hiddenMaxPullupKey.Value); Workout maxPullups = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (maxPullups.Score.Value == score) { addMaxPullups = false; } } if (addMaxPullups) { WOD maxPullups = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.MAX_PULLUPS_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, maxPullups.Id, score, null); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtMaxBS.Text)) { // houston we have a Helen time... bool addMaxBS = true; double w1 = Convert.ToDouble(txtMaxBS.Text); double weight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(w1, atiMaxBSUnits.Value); if (!string.IsNullOrWhiteSpace(hiddenMaxBackSquatKey.Value)) { long wId = Convert.ToInt64(hiddenMaxBackSquatKey.Value); Workout maxBS = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (maxBS.Max.Value == weight) { addMaxBS = false; } } if (addMaxBS) { WOD maxBS = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.MAX_BACK_SQUAT_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, maxBS.Id, w1, (int)atiMaxBSUnits.Value); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtMaxClean.Text)) { // houston we have a Helen time... bool addMaxClean = true; double w1 = Convert.ToDouble(txtMaxClean.Text); double weight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(w1, atiMaxCleanUnits.Value); if (!string.IsNullOrWhiteSpace(hiddenMaxCleanKey.Value)) { long wId = Convert.ToInt64(hiddenMaxCleanKey.Value); Workout maxClean = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (maxClean.Max.Value == weight) { addMaxClean = false; } } if (addMaxClean) { WOD maxClean = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.MAX_CLEAN_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, maxClean.Id, w1, (int)atiMaxCleanUnits.Value); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtMaxDeadlift.Text)) { // houston we have a Helen time... bool addMaxDeadlift = true; double w1 = Convert.ToDouble(txtMaxDeadlift.Text); double weight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(w1, atiMaxDeadliftUnits.Value); if (!string.IsNullOrWhiteSpace(hiddenMaxDeadliftKey.Value)) { long wId = Convert.ToInt64(hiddenMaxDeadliftKey.Value); Workout maxDeadlift = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (maxDeadlift.Max.Value == weight) { addMaxDeadlift = false; } } if (addMaxDeadlift) { WOD maxDeadlift = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.MAX_DEADLIFT_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, maxDeadlift.Id, w1, (int)atiMaxDeadliftUnits.Value); } } } catch (Exception) { exCount++; } try { if (!string.IsNullOrWhiteSpace(txtMaxSnatch.Text)) { // houston we have a Helen time... bool addMaxSnatch = true; double w1 = Convert.ToDouble(txtMaxSnatch.Text); double weight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(w1, atiMaxSnatchUnits.Value); if (!string.IsNullOrWhiteSpace(hiddenMaxSnatchKey.Value)) { long wId = Convert.ToInt64(hiddenMaxSnatchKey.Value); Workout maxSnatch = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.Id == wId); if (maxSnatch.Max.Value == weight) { addMaxSnatch = false; } } if (addMaxSnatch) { WOD maxSnatch = entities.WODs.FirstOrDefault(w => w.Id == Affine.Utils.ConstsUtil.MAX_SNATCH_ID); dataMan.SaveWorkout(UserSettings, (long)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT, (int)Affine.Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP, DateTime.Now, null, "Entered PR for Competition data", true, maxSnatch.Id, w1, (int)atiMaxSnatchUnits.Value); } } } catch (Exception) { exCount++; } // RadAjaxManager1.ResponseScripts.Add("alert('ex Count: "+exCount+"');"); }
protected void bAjaxPostback_Click(object sender, EventArgs e) { try { Affine.Data.Managers.IDataManager dataMan = Affine.Data.Managers.LINQ.DataManager.Instance; aqufitEntities entities = new aqufitEntities(); switch (hiddenAjaxAction.Value) { case "AddWOD": long wodKey = Convert.ToInt64(hiddenAjaxValue.Value); int compType = Convert.ToInt32(hiddenAjaxValue2.Value); long poolKey = 0; if (compType == (int)Affine.Utils.WorkoutUtil.CompetitionCategory.TEAM) { poolKey = Convert.ToInt32(hiddenAjaxValue3.Value); } WOD wod = entities.WODs.Include("WODType").FirstOrDefault(w => w.Id == wodKey); Competition comp = entities.Competitions.Include("CompetitionWODs").FirstOrDefault(c => c.Id == CompetitionKey); if (wod != null && comp != null) { CompetitionWOD compWod = new CompetitionWOD() { WOD = wod, Order = comp.CompetitionWODs.Count, Competition = comp, CompetitionCategory = entities.CompetitionCategories.FirstOrDefault(c => c.Id == compType), CompetitionTeamPool = entities.CompetitionTeamPools.FirstOrDefault(tp => tp.Id == poolKey) }; entities.AddToCompetitionWODs(compWod); entities.SaveChanges(); RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.WorkoutFinder.close(); Aqufit.Page.Actions.refreshGrid(" + compType + "); "); } break; case "DeleteWOD": long compWodKey = Convert.ToInt64(hiddenAjaxValue.Value); CompetitionWOD compW = entities.CompetitionWODs.Include("CompetitionCategory").FirstOrDefault(c => c.Id == compWodKey && c.Competition.Id == CompetitionKey); if (compW != null) { RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.Actions.refreshGrid(" + compW.CompetitionCategory.Id + "); "); entities.DeleteObject(compW); entities.SaveChanges(); // rebuild the order of the workouts now.. CompetitionWOD[] orderList = entities.CompetitionWODs.Where(c => c.Competition.Id == CompetitionKey).OrderBy(c => c.Order).ToArray(); int order = 0; foreach (CompetitionWOD cw in orderList) { cw.Order = (order++); } entities.SaveChanges(); } break; case "AddTeamPool": string name = Convert.ToString(hiddenAjaxValue.Value); CompetitionTeamPool pool = new CompetitionTeamPool() { Name = name, Competition = entities.Competitions.FirstOrDefault(c => c.Id == CompetitionKey) }; entities.AddToCompetitionTeamPools(pool); entities.SaveChanges(); RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.TeamPoolWin.close(); Aqufit.Page.Actions.refreshTeamPoolGrid(); "); break; case "LoadTeamPool": long tpKey = Convert.ToInt64(hiddenAjaxValue.Value); string[] teamKeyArray = entities.CompetitionRegistrations.Where(r => r.CompetitionRegistration2TeamPool .FirstOrDefault(c => c.CompetitionTeamPool.Id == tpKey) != null) .Select(r => r.Id).Cast <string>().ToArray(); string jsTeamArray = "[]"; if (teamKeyArray.Length > 0) { jsTeamArray = "[" + teamKeyArray.Aggregate((i, j) => "" + i + "," + j) + "]"; } RadAjaxManager1.ResponseScripts.Add("Aqufit.Windows.TeamPoolManagerWin.loadData(" + jsTeamArray + "); "); break; case "SaveTeamPool": long tPoolKey = Convert.ToInt64(hiddenAjaxValue.Value); CompetitionRegistration2TeamPool[] clearArray = entities.CompetitionRegistration2TeamPool.Where(c => c.CompetitionTeamPool.Id == tPoolKey).ToArray(); foreach (CompetitionRegistration2TeamPool clear in clearArray) { entities.DeleteObject(clear); } entities.SaveChanges(); CompetitionTeamPool tpool = entities.CompetitionTeamPools.FirstOrDefault(tp => tp.Id == tPoolKey); foreach (RadListBoxItem item in RadListBoxPoolDest.Items) { long rId = Convert.ToInt64(item.Value); CompetitionRegistration2TeamPool c2t = new CompetitionRegistration2TeamPool() { CompetitionTeamPool = tpool, CompetitionRegistration = entities.CompetitionRegistrations.FirstOrDefault(r => r.Id == rId) }; entities.AddToCompetitionRegistration2TeamPool(c2t); } entities.SaveChanges(); RadListBoxTeamSource.DataSource = entities.CompetitionRegistrations.Where(r => r.Competition.Id == CompetitionKey && r.CompetitionCategory.Id == (int)Affine.Utils.WorkoutUtil.CompetitionCategory.TEAM).Select(r => new { Name = r.TeamName, Value = r.Id }).ToArray(); RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.TeamPoolManagerWin.close(); Aqufit.Page.Actions.refreshTeamPoolGrid(); "); break; } } catch (Exception ex) { RadAjaxManager1.ResponseScripts.Add("Aqufit.Page.Actions.ShowFail('ERROR: There was a problem with the action (" + ex.StackTrace.Replace("'", "").Replace("\r", "").Replace("\n", "") + ")');"); } }
public WOD GetItem(string id) { WOD item = ItemRepository.Get(id); return(item); }
private void constructWorkoutInfo(WOD wod) { lWorkoutInfo.Text = ""; int i = 1; string timecap = string.Empty; if (wod.TimeSpan.HasValue) { timecap = " ("+ Utils.UnitsUtil.durationToTimeString(wod.TimeSpan.Value) + ") hh:mm:ss"; } lWorkoutInfo.Text = "Workout Style: <b>" + wod.WODType.Name + "</b>" + timecap + "<br /><br />"; foreach (WODSet set in wod.WODSets) { lWorkoutInfo.Text += "<span class=\"wodSet\">Set: " + (i++) + "</span>"; foreach (WODExercise we in set.WODExercises) { lWorkoutInfo.Text += "<span class=\"wodEx\">"; string additional = string.Empty; if (we.MenDist.HasValue && we.MenDist.Value > 0) { additional += "Men: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenDist.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M); } if (we.WomenDist.HasValue && we.WomenDist.Value > 0) { additional += ", Women: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenDist.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M); } if (we.MenRx.HasValue && we.MenRx.Value > 0) { additional += "Men: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.MenRx.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); } if (we.WomenRx.HasValue && we.WomenRx.Value > 0) { additional += ", Women: " + Affine.Utils.UnitsUtil.systemDefaultToUnits(we.WomenRx.Value, Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS) + Affine.Utils.UnitsUtil.unitToStringName(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); } lWorkoutInfo.Text += we.Reps + " X " + we.Exercise.Name + (!string.IsNullOrWhiteSpace(additional) ? " (" + additional + ")" : "") + (!string.IsNullOrWhiteSpace(we.Notes) ? " Notes: " + we.Notes : "") + "<br />"; lWorkoutInfo.Text += "</span>"; } } }
/// ----------------------------------------------------------------------------- /// <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 { this.BackgroundImageUrl = ResolveUrl("~/DesktopModules/ATI_Base/services/images/profile.aspx")+"?u=-1&p=0&bg=1"; if (!Page.IsPostBack && !Page.IsCallback) { baseUrl = ResolveUrl("~/"); aqufitEntities entities = new aqufitEntities(); ServiceReference service = new ServiceReference("~/DesktopModules/ATI_Base/resources/services/StreamService.asmx"); service.InlineScript = true; ScriptManager.GetCurrent(Page).Services.Add(service); imgSearch.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iSearch.png"); if (GroupSettings == null) { // Let people search for a group in this case.. atiGroupListPanel.Visible = true; atiGroupProfile.Visible = false; if (this.UserSettings == null) { pageMyGroups.Visible = false; tabMyGroups.Visible = false; } if (this.UserSettings != null && (this.UserSettings.LatHome != null && this.UserSettings.LatHome.Value > 0.0)) { atiGMap.Lat = this.UserSettings.LatHome.Value; atiGMap.Lng = this.UserSettings.LngHome.Value; atiGMap.Zoom = 13; } imgAd.Src = ResolveUrl("~/portals/0/images/adTastyPaleo.jpg"); WebService.StreamService streamService = new WebService.StreamService(); if (this.UserSettings != null) { // TODO: need to hide the "My Group" section string json = streamService.getGroupListData(this.UserSettings.Id, 0, 25); ScriptManager.RegisterStartupScript(this, Page.GetType(), "MyGroups", "$(function(){ Aqufit.Page.atiMyGroupList.generateStreamDom('" + json + "'); });", true); } // string search = streamService.searchGroupListData(PortalId, null, 0, 15); atiMyGroupList.IsOwner = true; SetupFeaturedGroups(); // we need to setup for a location based group search // ScriptManager.RegisterStartupScript(this, Page.GetType(), "GroupSearch", "$(function(){ Aqufit.Page.atiGroupSearch.generateStreamDom('" + search + "'); });", true); } else { atiWebLinksList.ProfileSettings = GroupSettings; aHistory.HRef = baseUrl + GroupSettings.UserName + "/workout-history"; aLeaders.HRef = baseUrl + GroupSettings.UserName + "/achievements"; aMembers.HRef = baseUrl + GroupSettings.UserName + "/friends"; atiProfile.ProfileSettings = GroupSettings; this.ProfileCSS = GroupSettings.CssStyle; atiWorkoutScheduler.ProfileSettings = GroupSettings; litGroupName.Text = "<h2>" + GroupSettings.UserFirstName + "</h2>"; imgAdRight.Src = ResolveUrl("/portals/0/images/adTastyPaleo.jpg"); LoadChartData(); if (Request["w"] != null) { RadAjaxManager1.ResponseScripts.Add("$(function(){ Aqufit.Page.Tabs.SwitchTab(1); });"); long wId = Convert.ToInt64(Request["w"]); WOD wod = entities.WODs.Include("WODType").FirstOrDefault(w => w.Id == wId); if (wod != null) { atiWorkoutScheduler.SetControlToWOD = wod; } } long[] friendIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == this.GroupSettings.Id || f.DestUserSettingKey == this.GroupSettings.Id) && f.Relationship >= (int)Affine.Utils.ConstsUtil.Relationships.GROUP_OWNER).Select(f => (f.SrcUserSettingKey == this.GroupSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey)).ToArray(); IQueryable<Affine.Data.User> friends = entities.UserSettings.OfType<User>().Where(LinqUtils.BuildContainsExpression<User, long>(s => s.Id, friendIds)).OrderBy(s => s.Id); int fcount = friends.Count(); UserSettings[] firendSettings = null; if (fcount > 6) { Random rand = new Random((int)DateTime.Now.Millisecond); int skip = rand.Next(fcount - 6); firendSettings = friends.Skip(skip).Take(6).ToArray(); } else { firendSettings = friends.Take(6).ToArray(); } // PERMISSIONS: The action panel is only visible to OWNERS if (GroupPermissions == ConstsUtil.Relationships.GROUP_OWNER || GroupPermissions == ConstsUtil.Relationships.GROUP_ADMIN) // Need to find if user is an admin { atiProfile.IsOwner = true; tabWorkout.Visible = true; pageScheduleWOD.Visible = true; bJoinGroup.Visible = false; // for now owners can never leave the group ... mu ha ha ha RadAjaxManager1.AjaxSettings.AddAjaxSetting(atiCommentPanel, atiCommentPanel, RadAjaxLoadingPanel1); } else if (GroupPermissions == ConstsUtil.Relationships.GROUP_MEMBER) { bJoinGroup.Text = "Leave Group"; RadAjaxManager1.AjaxSettings.AddAjaxSetting(atiCommentPanel, atiCommentPanel, RadAjaxLoadingPanel1); RadAjaxManager1.AjaxSettings.AddAjaxSetting(bJoinGroup, bJoinGroup, RadAjaxLoadingPanel1); } else { tabComment.Visible = false; pageViewComment.Visible = false; RadAjaxManager1.AjaxSettings.AddAjaxSetting(bJoinGroup, bJoinGroup, RadAjaxLoadingPanel1); } // settup the users web links this.BackgroundImageUrl = ResolveUrl("~/DesktopModules/ATI_Base/services/images/profile.aspx") + "?us=" + GroupSettings.Id + "&bg=1"; this.ProfileCSS = GroupSettings.CssStyle; } } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
protected void bAjaxPostback_Click(object sender, EventArgs e) { try { aqufitEntities entities = new aqufitEntities(); switch (hiddenAjaxAction.Value) { case "addWorkout": // few things to do here... // 1) check to see if this route is already in the fav. long wid = Convert.ToInt64(hiddenAjaxValue.Value); User2WODFav check = entities.User2WODFav.FirstOrDefault(w => w.UserSetting.Id == this.UserSettings.Id && w.WOD.Id == wid); if (check != null) { // TODO: postback a message saying that the route is already there. // status = "Route already in list. TODO: dialog with a way to 'view my routes' | 'record workout for route'"; } else { // add the WOD. WOD wod = entities.WODs.First(w => w.Id == wid); UserSettings us = entities.UserSettings.First(u => u.Id == UserSettings.Id); User2WODFav fav = new User2WODFav() { UserSetting = us, WOD = wod }; entities.AddToUser2WODFav(fav); entities.SaveChanges(); //TODO: dialog with a way to 'view my workouts' | 'record this workout'"; } // TODO: should not see this for when the check is null above.. RadAjaxManager1.ResponseScripts.Add(" Aqufit.Windows.WorkoutAddedDialog.open(); "); break; case "remWorkout": long remid = Convert.ToInt64(hiddenAjaxValue.Value); User2WODFav toRem = entities.User2WODFav.FirstOrDefault(w => w.UserSetting.Id == this.UserSettings.Id && w.WOD.Id == remid); if (toRem != null) { // remove the route from fav... any workouts will still be logged though. entities.DeleteObject(toRem); entities.SaveChanges(); } break; case "delStream": long sid = Convert.ToInt64(hiddenAjaxValue.Value); Affine.Data.Managers.LINQ.DataManager.Instance.deleteStream(UserSettings, sid); break; case "delComment": long cid = Convert.ToInt64(hiddenAjaxValue.Value); Affine.Data.Managers.LINQ.DataManager.Instance.deleteComment(UserSettings, cid); break; case "AddSuggestFriend": try { long usid = Convert.ToInt64(hiddenAjaxValue.Value); string status = Affine.Data.Managers.LINQ.DataManager.Instance.sendFriendRequest(UserSettings.Id, usid); RadAjaxManager1.ResponseScripts.Add(" Aqufit.Page.atiProfile.ShowOk('A Friend request has been sent');"); } catch (Exception ex) { RadAjaxManager1.ResponseScripts.Add("Aqufit.Page.Actions.ShowFail('Error: " + ex.Message + "');"); } break; } } catch (Exception ex) { // TODO: better error handling RadAjaxManager1.ResponseScripts.Add(" alert('" + ex.Message + "');"); } }
/// ----------------------------------------------------------------------------- /// <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("/portals/0/images/adTastyPaleo.jpg"); imgCheck.ImageUrl = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iCheck.png"); if (!Page.IsPostBack && !Page.IsCallback) { baseUrl = ResolveUrl("~/"); long wId = 0; if (HttpContext.Current.Items["w"] != null) { wId = Convert.ToInt64(HttpContext.Current.Items["w"]); } else if (Request["w"] != null) { wId = Convert.ToInt64(Request["w"]); } // Are we viewing a specific workout ? if (wId > 0) { divMainLinks.Visible = true; atiProfile.Visible = false; hiddenWorkoutKey.Value = "" + wId; aqufitEntities entities = new aqufitEntities(); WOD wod = entities.WODs.Include("WODType").Include("WODSets").Include("WODSets.WODExercises").Include("WODSets.WODExercises.Exercise").FirstOrDefault(w => w.Id == wId); if (base.UserSettings != null && wod.Standard == 0) { User2WODFav fav = entities.User2WODFav.FirstOrDefault(mr => mr.WOD.Id == wod.Id && mr.UserSetting.Id == UserSettings.Id); bAddWorkout.Visible = fav == null; bRemoveWorkout.Visible = fav != null; } lWorkoutTitle.Text = wod.Name; // lWorkoutDescription.Text = wod.Description; // constructWorkoutInfo(wod); lWorkoutInfo.Text = wod.Description; if (wod.Standard > 0) { imgCrossFit.Visible = true; imgCrossFit.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/xfit.png"); atiProfileImg.Visible = false; } else { atiProfileImg.Settings = entities.UserSettings.FirstOrDefault(us => us.Id == wod.UserSettingsKey); } atiWorkoutPanel.Visible = false; atiWorkoutViewer.Visible = true; // Get the leader board IQueryable <Workout> stream = entities.UserStreamSet.OfType <Workout>().Where(w => w.WOD.Id == wId); long typeId = entities.WODs.Where(w => w.Id == wId).Select(w => w.WODType.Id).FirstOrDefault(); switch (typeId) { case (long)Affine.Utils.WorkoutUtil.WodType.AMRAP: case (long)Affine.Utils.WorkoutUtil.WodType.SCORE: atiScoreRangePanel.Visible = true; stream = stream.OrderByDescending(w => w.Score); break; case (long)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT: atiMaxRangePanel.Visible = true; atiMaxWeightUnitsFirst.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); atiMaxWeightUnitsFirst.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG); atiMaxWeightUnitsFirst.Selected = WeightUnits; atiMaxWeightUnitsLast.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS); atiMaxWeightUnitsLast.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG); atiMaxWeightUnitsLast.Selected = WeightUnits; stream = stream.OrderByDescending(w => w.Max); break; case (long)Affine.Utils.WorkoutUtil.WodType.TIMED: atiTimeSpanePanel.Visible = true; stream = stream.OrderBy(w => w.Duration); break; default: stream = stream.OrderByDescending(w => w.TimeStamp); break; } string js = string.Empty; atiShareLink.ShareLink = "http://" + Request.Url.Host + "/workout/" + wod.Id; atiShareLink.ShareTitle = "FlexFWD.com crossfit WOD " + wod.Name; workoutTabTitle.Text = " " + (string.IsNullOrWhiteSpace(wod.Name) ? "Untitled" : wod.Name) + " "; Affine.WebService.StreamService ss = new WebService.StreamService(); string jsonEveryone = ss.getStreamDataForWOD(wod.Id, -1, 0, 15, true, true, -1, -1, -1); string jsonYou = string.Empty; js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".fromStreamData('" + jsonEveryone + "'); "; if (base.UserSettings != null) { hlLogWorkout.HRef = baseUrl + UserSettings.UserName + "?w=" + wId; hlWorkouts.HRef = baseUrl + UserSettings.UserName + "/workout-history"; jsonYou = ss.getStreamDataForWOD(wod.Id, base.UserSettings.Id, 0, 10, true, true, -1, -1, -1); js += "Aqufit.Page.atiYouStreamScript.generateStreamDom('" + jsonYou + "');"; js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".fromYourStreamData('" + jsonYou + "'); "; // TODO: this could be improved on... Workout thisWod = entities.UserStreamSet.OfType <Workout>().FirstOrDefault(w => w.UserSetting.Id == UserSettings.Id && w.WOD.Id == wId); if (thisWod != null) { // graphs of this wod hlGraph.HRef = ResolveUrl("~/") + UserSettings.UserName + "/workout/" + thisWod.Id; } else { // just grab any workout then.. Workout any = entities.UserStreamSet.OfType <Workout>().OrderByDescending(w => w.Id).FirstOrDefault(w => w.UserSetting.Id == UserSettings.Id); if (any != null) { hlGraph.HRef = ResolveUrl("~/") + UserSettings.UserName + "/workout/" + any.Id; } else { // no workouts ??? say what.. slack man :) hide graph hlGraph.Visible = false; } } } else { hlGraph.HRef = ResolveUrl("~/Login"); hlLogWorkout.HRef = hlGraph.HRef; hlWorkouts.HRef = hlGraph.HRef; atiPanelYourProgress.Visible = false; } hlCreateWOD.HRef = baseUrl + "Profile/WorkoutBuilder"; hlMyWorkouts.HRef = baseUrl + "Profile/MyWorkouts"; js += " Aqufit.Page." + atiWorkoutHighChart.ID + ".drawChart(); "; ScriptManager.RegisterStartupScript(this, Page.GetType(), "SimilarRouteList", "$(function(){ " + js + " Aqufit.Page.atiEveryoneStreamScript.generateStreamDom('" + jsonEveryone + "'); });", true); YouTubeQuery query = new YouTubeQuery(YouTubeQuery.DefaultVideoUri); //order results by the number of views (most viewed first) query.OrderBy = "viewCount"; query.NumberToRetrieve = 3; query.SafeSearch = YouTubeQuery.SafeSearchValues.Moderate; YouTubeRequestSettings settings = new YouTubeRequestSettings(ConfigurationManager.AppSettings["youtubeApp"], ConfigurationManager.AppSettings["youtubeKey"]); YouTubeRequest request = new YouTubeRequest(settings); const int NUM_ENTRIES = 50; IList <Video> videos = new List <Video>(); IList <Video> groupVideo = new List <Video>(); // first try to find videos with regard to users group Feed <Video> videoFeed = null; if (this.UserSettings != null) { long[] groupIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == UserSettings.Id || f.DestUserSettingKey == UserSettings.Id) && f.Relationship >= (int)Affine.Utils.ConstsUtil.Relationships.GROUP_OWNER).Select(f => f.SrcUserSettingKey == UserSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey).ToArray(); Group business = entities.UserSettings.OfType <Group>().Where(Utils.Linq.LinqUtils.BuildContainsExpression <Group, long>(us => us.Id, groupIds)).FirstOrDefault(g => g.GroupType.Id == 1); if (business != null) { // TODO: need the business name... query.Query = business.UserName; } else { UserSettings creator = entities.UserSettings.FirstOrDefault(u => u.Id == wod.UserSettingsKey); if (creator is Group) { // TODO: need the business name... query.Query = creator.UserFirstName + " " + creator.UserLastName; } else { query.Query = UserSettings.UserFirstName + " " + UserSettings.UserLastName; } } videoFeed = request.Get <Video>(query); foreach (Video v in videoFeed.Entries) { groupVideo.Add(v); } } if (videos.Count < NUM_ENTRIES) { // now try the crossfit WOD name query.NumberToRetrieve = NUM_ENTRIES - videos.Count; query.Query = "crossfit wod " + wod.Name; videoFeed = request.Get <Video>(query); foreach (Video v in videoFeed.Entries) { videos.Add(v); } if (videos.Count < NUM_ENTRIES) { // this is last resort .. just get videos about crossfit... query.NumberToRetrieve = NUM_ENTRIES - videos.Count; query.Query = "crossfit wod"; videoFeed = request.Get <Video>(query); foreach (Video v in videoFeed.Entries) { videos.Add(v); } } } const int TAKE = 3; if (videos.Count > TAKE) { Random random = new Random((int)DateTime.Now.Ticks); int rand = random.Next(videos.Count - TAKE); videos = videos.Skip(rand).Take(TAKE).ToList(); if (groupVideo.Count > 0) { // always replace one of the main videos with a gorup one.. (if possible) rand = random.Next(groupVideo.Count - 1); videos[0] = groupVideo[rand]; } atiYoutubeThumbList.VideoFeed = videos; } else { atiVideoPanel.Visible = false; } } else { atiVideoPanel.Visible = false; atiPanelQuickView.Visible = false; hlGraph.Visible = false; aqufitEntities entities = new aqufitEntities(); var exerciseArray = entities.Exercises.OrderBy(x => x.Name).Select(x => new{ Text = x.Name, Value = x.Id }).ToArray(); RadListBoxExcerciseSource.DataSource = exerciseArray; RadListBoxExcerciseSource.DataBind(); string order = orderDate.Checked ? "date" : "popular"; if (Settings["Configure"] != null && Convert.ToString(Settings["Configure"]).Equals("ConfigureMyWorkouts")) { this.IsMyWorkouts = true; atiProfile.ProfileSettings = base.UserSettings; atiProfile.IsOwner = true; atiProfile.IsSmall = true; atiWorkoutPanel.Visible = true; workoutTabTitle.Text = "My Workouts"; liMyWorkouts.Visible = false; liFindWorkout.Visible = true; WebService.StreamService streamService = new WebService.StreamService(); string json = streamService.GetWorkouts(base.UserSettings.Id, 0, 30, order, null); ScriptManager.RegisterStartupScript(this, Page.GetType(), "WorkoutList", "$(function(){ Aqufit.Page.atiWorkoutListScript.isMyRoutes = true; Aqufit.Page.atiWorkoutListScript.generateStreamDom('" + json + "'); });", true); } else { this.IsMyWorkouts = false; atiProfile.Visible = false; workoutTabTitle.Text = "Workouts"; atiWorkoutPanel.Visible = true; atiWorkoutViewer.Visible = false; WebService.StreamService streamService = new WebService.StreamService(); string json = streamService.GetWorkouts(-1, 0, 30, order, null); ScriptManager.RegisterStartupScript(this, Page.GetType(), "WorkoutList2", "$(function(){ Aqufit.Page.atiWorkoutListScript.generateStreamDom('" + json + "'); });", true); } } } } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } }
protected void bSaveWOD_Click(object sender, EventArgs e) { string status = string.Empty; try { JavaScriptSerializer serializer = new JavaScriptSerializer(); Affine.Data.json.WOD wodJson = serializer.Deserialize <Affine.Data.json.WOD>(atiWodJson.Value); aqufitEntities entities = new aqufitEntities(); // TODO: check if there is already a WOD of the same name long wodTypeId = Convert.ToInt64(ddlWODType.SelectedValue); int standard = UserInfo.IsSuperUser ? 1 : 0; long userKey = GroupSettings != null ? this.GroupSettings.Id : this.UserSettings.Id; WOD wod = new WOD() { Difficulty = wodJson.Difficulty, Standard = (short)standard, Name = Affine.Utils.Web.WebUtils.MakeWebSafeString(txtWorkoutName.Text), WODType = entities.WODTypes.First(t => t.Id == wodTypeId), UserSettingsKey = userKey, Description = Affine.Utils.Web.WebUtils.MakeWebSafeString(txtDescription.Text), UserName = GroupSettings != null ? this.GroupSettings.UserName : this.UserSettings.UserName, CreationDate = DateTime.Now.ToUniversalTime() }; if (wodTypeId == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP) { wod.TimeSpan = atiTimeSpan.Time; } entities.AddToWODs(wod); foreach (Affine.Data.json.WODSet setJson in wodJson.WODSets) { WODSet wodSet = new WODSet() { WOD = wod }; //Affine.Data.Exercise[] exerciseArray = entities.Exercises.Where(Affine.Utils.Linq.LinqUtils.BuildContainsExpression<Affine.Data.Exercise, long>(ex => ex.Id, setJson.WODExercises.Select(ee => ee.ExcercisKey ).ToArray() )).ToArray(); foreach (Affine.Data.json.WODExercise exJson in setJson.WODExercises) { double mdist = exJson.MenDist > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.MenDist, Utils.UnitsUtil.ToUnit(exJson.MenDistUnits)) : -1; double wdist = exJson.WomenDist > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.WomenDist, Utils.UnitsUtil.ToUnit(exJson.WomenDistUnits)) : -1; double mweight = exJson.MenRx > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.MenRx, Utils.UnitsUtil.ToUnit(exJson.MenRxUnits)) : -1; double wweight = exJson.WomenRx > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.WomenRx, Utils.UnitsUtil.ToUnit(exJson.WomenRxUnits)) : -1; WODExercise wodEx = new WODExercise() { MenDist = mdist, WomenDist = wdist, WODSet = wodSet, MenRx = mweight, WomenRx = wweight, Reps = exJson.Reps, Order = exJson.Order, Notes = Affine.Utils.Web.WebUtils.MakeWebSafeString(exJson.Notes), Exercise = entities.Exercises.First(ee => ee.Id == exJson.ExcercisKey) }; } } entities.SaveChanges(); // Now we add to peoples favs // ** This no longer happens here.. it happens when the workout is "scheduled" for the group that it gets added to the list.. WOD newWOD = entities.WODs.Where(w => w.UserSettingsKey == userKey).OrderByDescending(w => w.Id).First(); if (GroupSettings == null) { // simply add for this user.. User2WODFav fav = new User2WODFav() { UserSetting = entities.UserSettings.First(us => us.Id == UserSettings.Id), WOD = newWOD }; entities.AddToUser2WODFav(fav); entities.SaveChanges(); } else { User2WODFav fav = new User2WODFav() { UserSetting = entities.UserSettings.First(us => us.Id == GroupSettings.Id), WOD = newWOD }; entities.AddToUser2WODFav(fav); entities.SaveChanges(); } if (GroupSettings != null) { // if this was a group wod.. we want to bounce back to the scheduling page now... Response.Redirect(ResolveUrl("~") + "group/" + GroupSettings.UserName + "?w=" + newWOD.Id, true); return; } string baseUrl = ResolveUrl("~"); RadAjaxManager1.ResponseScripts.Add("Aqufit.Windows.WorkoutSavedDialog.open(" + newWOD.Id + ");"); //status = "Your Workout has been saved. It will now show up in your Workout List"; } catch (Exception ex) { status = "There was a problem saving your workout: " + ex.Message + " " + ex.InnerException; } RadAjaxManager1.ResponseScripts.Add(" UpdateStatus('" + status + "');"); }
protected void bSaveWOD_Click(object sender, EventArgs e) { string status = string.Empty; try { JavaScriptSerializer serializer = new JavaScriptSerializer(); Affine.Data.json.WOD wodJson = serializer.Deserialize<Affine.Data.json.WOD>(atiWodJson.Value); aqufitEntities entities = new aqufitEntities(); // TODO: check if there is already a WOD of the same name long wodTypeId = Convert.ToInt64(ddlWODType.SelectedValue); int standard = UserInfo.IsSuperUser ? 1 : 0; long userKey = GroupSettings != null ? this.GroupSettings.Id : this.UserSettings.Id; WOD wod = new WOD() { Difficulty = wodJson.Difficulty, Standard = (short)standard, Name = Affine.Utils.Web.WebUtils.MakeWebSafeString( txtWorkoutName.Text ), WODType = entities.WODTypes.First(t => t.Id == wodTypeId), UserSettingsKey = userKey, Description = Affine.Utils.Web.WebUtils.MakeWebSafeString(txtDescription.Text), UserName = GroupSettings != null ? this.GroupSettings.UserName : this.UserSettings.UserName, CreationDate = DateTime.Now.ToUniversalTime() }; if (wodTypeId == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP) { wod.TimeSpan = atiTimeSpan.Time; } entities.AddToWODs(wod); foreach (Affine.Data.json.WODSet setJson in wodJson.WODSets) { WODSet wodSet = new WODSet() { WOD = wod }; //Affine.Data.Exercise[] exerciseArray = entities.Exercises.Where(Affine.Utils.Linq.LinqUtils.BuildContainsExpression<Affine.Data.Exercise, long>(ex => ex.Id, setJson.WODExercises.Select(ee => ee.ExcercisKey ).ToArray() )).ToArray(); foreach (Affine.Data.json.WODExercise exJson in setJson.WODExercises) { double mdist = exJson.MenDist > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.MenDist, Utils.UnitsUtil.ToUnit(exJson.MenDistUnits)) : -1; double wdist = exJson.WomenDist > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.WomenDist, Utils.UnitsUtil.ToUnit(exJson.WomenDistUnits)) : -1; double mweight = exJson.MenRx > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.MenRx, Utils.UnitsUtil.ToUnit(exJson.MenRxUnits)) : -1; double wweight = exJson.WomenRx > 0 ? Utils.UnitsUtil.unitsToSystemDefualt(exJson.WomenRx, Utils.UnitsUtil.ToUnit(exJson.WomenRxUnits)) : -1; WODExercise wodEx = new WODExercise() { MenDist = mdist, WomenDist = wdist, WODSet = wodSet, MenRx = mweight, WomenRx = wweight, Reps = exJson.Reps, Order = exJson.Order, Notes = Affine.Utils.Web.WebUtils.MakeWebSafeString(exJson.Notes), Exercise = entities.Exercises.First(ee => ee.Id == exJson.ExcercisKey) }; } } entities.SaveChanges(); // Now we add to peoples favs // ** This no longer happens here.. it happens when the workout is "scheduled" for the group that it gets added to the list.. WOD newWOD = entities.WODs.Where(w => w.UserSettingsKey == userKey).OrderByDescending(w => w.Id).First(); if (GroupSettings == null) { // simply add for this user.. User2WODFav fav = new User2WODFav() { UserSetting = entities.UserSettings.First(us => us.Id == UserSettings.Id), WOD = newWOD }; entities.AddToUser2WODFav(fav); entities.SaveChanges(); } else { User2WODFav fav = new User2WODFav() { UserSetting = entities.UserSettings.First(us => us.Id == GroupSettings.Id), WOD = newWOD }; entities.AddToUser2WODFav(fav); entities.SaveChanges(); } if (GroupSettings != null) { // if this was a group wod.. we want to bounce back to the scheduling page now... Response.Redirect(ResolveUrl("~") + "group/" + GroupSettings.UserName + "?w=" + newWOD.Id, true); return; } string baseUrl = ResolveUrl("~"); RadAjaxManager1.ResponseScripts.Add("Aqufit.Windows.WorkoutSavedDialog.open(" + newWOD.Id + ");"); //status = "Your Workout has been saved. It will now show up in your Workout List"; } catch (Exception ex) { status = "There was a problem saving your workout: " + ex.Message + " " + ex.InnerException; } RadAjaxManager1.ResponseScripts.Add(" UpdateStatus('"+status+"');"); }