public ActionResult Create([Bind(Include = "Id,PersonId,ActivityId,Date,Duration,Distance,UnitId,Title,Notes")] WorkoutEventViewModel formData) { if (ModelState.IsValid) { var workoutEvent = new WorkoutEvent() { Id = formData.Id, User = new User(formData.PersonId, ""), Type = new ActivityType(formData.ActivityId, ""), Date = formData.Date, Duration = formData.Duration, Distance = formData.Distance, Unit = new UnitOfMeasurement(formData.UnitId, ""), Title = formData.Title, Notes = formData.Notes }; WorkoutEventManager.Insert(workoutEvent); return(RedirectToAction("Index")); } ViewBag.ActivityId = new SelectList(WorkoutEventManager.GetActivityTypes(), "Id", "Name", formData.ActivityId); ViewBag.PersonId = new SelectList(MembershipProvider.ReadAll(), "Id", "Name", formData.PersonId); ViewBag.UnitId = new SelectList(WorkoutEventManager.GetUnitOfMeasurements(), "Id", "Name", formData.UnitId); return(View(formData)); }
public void UpdateActivity(WorkoutEvent activity) { var runningEvent = MapRunningEvent(activity); using (var db = new Juggle4Food_RunningEntities()) { db.Entry(runningEvent).State = EntityState.Modified; db.SaveChanges(); } }
public int CreateActivity(WorkoutEvent activity) { var runningEvent = MapRunningEvent(activity); using (var db = new Juggle4Food_RunningEntities()) { db.RunningEvents.Add(runningEvent); db.SaveChanges(); } return(runningEvent.Id); }
public WorkoutEvent ReadActivity(int id) { var workoutEvent = new WorkoutEvent(); using (var db = new Juggle4Food_RunningEntities()) { var runningEvent = db.RunningEvents.Find(id); if (runningEvent != null) { workoutEvent = MapWorkoutEvent(runningEvent); } } return(workoutEvent); }
private static RunningEvent MapRunningEvent(WorkoutEvent e) { return(new RunningEvent { Id = e.Id, Date = e.Date, Duration = e.Duration, ActivityId = e.Type.Id, Distance = Convert.ToDouble(e.Distance), Race = e.Title, Notes = e.Notes, PersonId = e.User.Id, UnitId = e.Unit.Id }); }
private IEnumerable <WorkoutEvent> CreateWorkoutEvents(IEnumerable <IEnumerable <string> > rawData) { var results = new List <WorkoutEvent>(); //Get the first row column names into a list so we can find the correct data in any order var headerRow = rawData.First().ToArray(); var columnIndexes = new Dictionary <string, int>(); for (int i = 0; i < headerRow.Count(); i++) { columnIndexes[headerRow[i].ToLower()] = i; } //validate that the required columns are present somewhere in the file string[] requiredColumns = { "activity type", "date", "title", "distance", "time" }; foreach (string columnName in requiredColumns) { if (!columnIndexes.ContainsKey(columnName)) { throw new ArgumentException("File does not contain the required fields: " + requiredColumns); } } for (int i = 1; i < rawData.Count(); i++) { //Processing row //Activity Type,Date,Favorite,Title,Distance,Calories,Time var fields = rawData.ElementAt(i).ToArray(); if (fields != null && fields[columnIndexes["activity type"]].ToLower() == "running") { var workoutEvent = new WorkoutEvent { Date = Convert.ToDateTime(fields[columnIndexes["date"]]), Title = fields[columnIndexes["title"]], Distance = Convert.ToDecimal(fields[columnIndexes["distance"]]), Duration = fields[columnIndexes["time"]] }; results.Add(workoutEvent); } } return(results); }
private List <WorkoutEvent> FilterEvents(IEnumerable <WorkoutEvent> importedEvents, int personId) { var cleansedEvents = new List <WorkoutEvent>(); foreach (var currentEvent in importedEvents) { var newEvent = new WorkoutEvent { Type = new ActivityType(1, "Running"), Unit = new UnitOfMeasurement(1, "mi"), User = MembershipProvider.ReadAll().FirstOrDefault(u => u.Id == personId), Date = currentEvent.Date.Date, Distance = currentEvent.Distance, Duration = currentEvent.Duration }; if (currentEvent.Title.ToLower() != "richardson running" && currentEvent.Title.ToLower() != "dallas running") { newEvent.Title = currentEvent.Title; } //Only add if there's not a similar activity on the same day var matchingEventExists = WorkoutEventManager.ReadAll().Any( e => e.User.Id == newEvent.User.Id && e.Date.Date == newEvent.Date.Date && e.Distance <newEvent.Distance + 1 && e.Distance> newEvent.Distance - 1); if (!matchingEventExists) { cleansedEvents.Add(newEvent); } } return(cleansedEvents); }
public static void Handle(WorkoutEvent @event) { switch (@event) { case WorkoutStarted e: WorkoutState.Save(e); Scorecard.Save(e); break; case ExerciseScored e: WorkoutState.Save(e); Scorecard.Save(e); TopScores.Save(e); break; case WorkoutCompleted e: WorkoutState.Save(e); Scorecard.Save(e); break; default: throw new ArgumentOutOfRangeException(); } }
public static void Update(WorkoutEvent workoutEvent) { Repository.UpdateActivity(workoutEvent); }
public static void Insert(WorkoutEvent workoutEvent) { Repository.CreateActivity(workoutEvent); }