Exemple #1
0
 public mpObject toJSON(UserDataAccess user)
 {
     return(new mpObject(
                new mpProperty("name", new mpValue(exerciseName)),
                new mpProperty("video", new mpValue(youtube)),
                new mpProperty("user1RM", new mpValue(user.GetMostRecentCalibratedOneRepMax(exerciseName).Value)),
                new mpProperty("recommendedCalibrationWeight", new mpValue(25)),
                new mpProperty("calibrationWeight", new mpValue(25)),
                new mpProperty("calibrationReps", new mpValue(-1)),
                new mpProperty("hasBeenCalibrated", new mpValue(user.GetMostRecentCalibratedOneRepMax(exerciseName).Exists))));
 }
Exemple #2
0
        // TODO: add statistics in this struct

        public mpObject toJSON(UserDataAccess user)
        {
            mpObject result = new mpObject();

            result.addProperty("uuid", new mpValue(uuid));
            result.addProperty("exercise", ex.toJSON(user));
            result.addProperty("sets", new mpArray(sets.Select(set => set.toJSON()).ToArray()));
            result.addProperty("difficulty", new mpValue(difficulty));
            result.addProperty("onerepmax", new mpValue(oneRepMax));

            return(result);
        }
Exemple #3
0
        public mpObject toJSON(UserDataAccess user)
        {
            mpObject result = new mpObject();

            result.addProperty("uuid", new mpValue(uuid));
            result.addProperty("primaryGroup", new mpValue(primaryGroup));
            result.addProperty("secondaryGroup", new mpValue(secondaryGroup));
            result.addProperty("date", new mpValue(date.ToString("yyyy-MM-dd")));
            result.addProperty("items", new mpArray(workoutItems.Select(item => item.toJSON(user)).ToArray()));

            return(result);
        }
Exemple #4
0
        /// <summary>
        /// manages creating exercises and responding to the user with information about that request
        /// including all the exercises that were created during the request
        /// </summary>
        /// <param name="root"></param>
        /// <param name="db"></param>
        /// <param name="manager"></param>
        static void SetupExerciseInfoManager(mpBase root, Database db, UserManager manager)
        {
            root.addProperty("exercise-info",
                             new mpRestfulTarget(
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                return(mpResponse.empty400());
            }
                                     ),
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                Console.Write("Exercise Data Requested...");

                string requestData  = req.data();
                string requestEmail = "", requestPasswordEmailHash = "";
                int requestNumItems = -1;

                try {
                    mpObject requestJSON = (mpObject)mpJson.parse(requestData);

                    requestEmail             = ((mpValue)requestJSON.getChild("email")).data.asString();
                    requestPasswordEmailHash = ((mpValue)requestJSON.getChild("passwordEmailHash")).data.asString();
                    requestNumItems          = ((mpValue)requestJSON.getChild("numItems")).data.asInt();
                } catch (Exception ex) {
                    Console.WriteLine("Exercise Request Error: " + ex.Message);
                    return(new mpResponse(new binaryData("{\"good\":false, \"message\":\"" + ex.Message + "\"}"), 400));
                }

                try {
                    User user           = manager.getUser(requestEmail, requestPasswordEmailHash);
                    UserDataAccess info = new UserDataAccess(db, user);
                    WorkoutGenerator p  = new WorkoutGenerator(info);

                    mpResponse res      = mpResponse.success();
                    WorkoutSession sesh = p.GenSesh(requestNumItems);
                    res.response        = new binaryData(sesh.toJSON(info).ToString());
                    info.AddDay(sesh);
                    info.Store();
                    info.Dispose();

                    Console.WriteLine(res.response.asString());

                    Console.WriteLine("Responded! (user = "******")");
                    return(res);
                } catch (Exception ex) {
                    Console.WriteLine("Exercise Request Error: " + ex.Message);
                    return(new mpResponse(new binaryData("{\"good\":false, \"message\":\"" + ex.Message + "\"}"), 400));
                }
            }
                                     )
                                 )
                             );
        }
Exemple #5
0
        /// <summary>
        /// takes in calibration information for a certain exercise and returns the calculated 1rm
        /// for that exercise
        /// </summary>
        /// <param name="root"></param>
        /// <param name="db"></param>
        /// <param name="manager"></param>
        static void SetupExerciseCalibrationManager(mpBase root, Database db, UserManager manager)
        {
            root.addProperty("exercise-calibration",
                             new mpRestfulTarget(
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                return(mpResponse.empty400());
            }
                                     ),
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                Console.Write("Received Exercise Calibration Info...");

                string requestData  = req.data();
                string requestEmail = "", requestPasswordEmailHash = "";
                double oneRepMax    = -1;

                try {
                    mpObject requestJSON = (mpObject)mpJson.parse(requestData);

                    requestEmail             = ((mpValue)requestJSON.getChild("email")).data.asString();
                    requestPasswordEmailHash = ((mpValue)requestJSON.getChild("passwordEmailHash")).data.asString();
                    string exName            = ((mpValue)requestJSON.getChild("exercise")).data.asString();

                    UserDataAccess info = new UserDataAccess(db, manager.getUser(requestEmail, requestPasswordEmailHash));
                    info.IngestCalibrationInfo(
                        exName,
                        ((mpValue)requestJSON.getChild("reps")).data.asInt(),
                        ((mpValue)requestJSON.getChild("weight")).data.asInt()
                        );
                    info.Store();
                    oneRepMax = info.GetMostRecentCalibratedOneRepMax(exName).Value;
                } catch (Exception ex) {
                    Console.WriteLine("Calibration Info Error: " + ex.Message);
                    return(new mpResponse(new binaryData("{\"good\":false, \"message\":\"" + ex.Message + "\"}"), 400));
                }

                return(new mpResponse(new binaryData("{\"good\":true, \"oneRepMax\":" + oneRepMax + "}"), 200));
            }
                                     )
                                 )
                             );
        }
Exemple #6
0
        /// <summary>
        /// takes in feedback for a workout item and passes it to the user's plan for processing
        /// </summary>
        /// <param name="root"></param>
        /// <param name="db"></param>
        /// <param name="manager"></param>
        static void SetupExerciseFeedbackManager(mpBase root, Database db, UserManager manager)
        {
            root.addProperty("exercise-feedback",
                             new mpRestfulTarget(
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                return(mpResponse.empty400());
            }
                                     ),
                                 new Func <System.Net.HttpListenerRequest, mpResponse>(
                                     req => {
                Console.Write("Exercise Feedback Data Requested...");

                string requestData  = req.data();
                string requestEmail = "", requestPasswordEmailHash = "";

                try {
                    mpObject requestJSON = (mpObject)mpJson.parse(requestData);

                    requestEmail             = ((mpValue)requestJSON.getChild("email")).data.asString();
                    requestPasswordEmailHash = ((mpValue)requestJSON.getChild("passwordEmailHash")).data.asString();

                    mpObject feedback = (mpObject)requestJSON.getChild("feedback");

                    WorkoutItem item = new WorkoutItem(feedback);

                    UserDataAccess access = new UserDataAccess(db, manager.getUser(requestEmail, requestPasswordEmailHash));

                    access.UpdateItem(item);
                    access.Store();
                    access.Dispose();
                } catch (Exception ex) {
                    Console.WriteLine("Exercise Request Error: " + ex.Message);
                    return(new mpResponse(new binaryData("{\"good\":false, \"message\":\"" + ex.Message + "\"}"), 400));
                }
                return(new mpResponse(new binaryData("{\"good\":true}"), 200));
            }
                                     )
                                 )
                             );
        }
Exemple #7
0
 public WorkoutGenerator(UserDataAccess user)
 {
     this.user = user;
     BuildWorkoutHistory();
 }