private RoutineLog CreateFakeRoutineLog(DateTime day)
        {
            var log = new RoutineLog();

            log.TimestampUTC = day;
            return(log);
        }
Example #2
0
        public async Task LogRoutine(RoutineLog log)
        {
            var jsonData   = JsonConvert.SerializeObject(log);
            var jsonResult = await PostDataAsync("api/routine/log", jsonData);

            return;
        }
        public HttpResponseMessage LogRoutine(RoutineLog routineLog)
        {
            MySqlConnection conn = new MySqlConnection(CONNECTION_STRING);

            try
            {
                conn.Open();

                string       rtn = "log_routine_procedure";
                MySqlCommand cmd = new MySqlCommand(rtn, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@id", routineLog.ID.ToString());
                cmd.Parameters.AddWithValue("@routineId", routineLog.RoutineID.ToString());
                cmd.Parameters.AddWithValue("@routineTimeStamp", routineLog.Timestamp);


                cmd.ExecuteNonQuery();
                return(base.BuildSuccessResult(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(base.BuildErrorResult(HttpStatusCode.BadRequest, "Error creating routine!"));
            }
            finally
            {
                conn.Close();
            }
        }
        public async Task MarkDone(RoutineLog log)
        {
            RoutineDB routineManager = new RoutineDB();
            await routineManager.LogRoutine(log);

            return;
        }
        public HttpResponseMessage GetAllRoutineLogs(string username, string dateString)
        {
            var             routineLogList = new List <RoutineLog>();
            MySqlConnection conn           = new MySqlConnection(CONNECTION_STRING);

            try
            {
                conn.Open();

                string       rtn = "get_all_routine_logs_procedure";
                MySqlCommand cmd = new MySqlCommand(rtn, conn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@username", username);
                cmd.Parameters.AddWithValue("@dateRequested", dateString);

                var reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    var routineLog = new RoutineLog();
                    routineLog.ID        = Guid.Parse(reader.GetString("log_id"));
                    routineLog.Timestamp = reader.GetDateTime("time_stamp");
                    routineLog.RoutineID = Guid.Parse(reader.GetString("routine_id"));
                    routineLogList.Add(routineLog);
                }
                reader.Close();

                return(base.BuildSuccessResultList(HttpStatusCode.OK, routineLogList));
            }
            catch (Exception ex)
            {
                return(base.BuildErrorResult(HttpStatusCode.BadRequest, "Error getting all routines!"));
            }
            finally
            {
                conn.Close();
            }
        }
Example #6
0
        public async override void Run()
        {
            try
            {
                var log = new RoutineLog();
                log.ID        = Guid.NewGuid();
                log.RoutineID = routine.ID;
                log.Timestamp = DateTime.Today;
                await routineRepository.MarkDone(log);

                var pointsAdded = 0;
                if (routine.Difficulty == Difficulty.Easy)
                {
                    pointsAdded = 10;
                }
                if (routine.Difficulty == Difficulty.Medium)
                {
                    pointsAdded = 20;
                }
                if (routine.Difficulty == Difficulty.Hard)
                {
                    pointsAdded = 30;
                }
                if (routine.Difficulty == Difficulty.VeryHard)
                {
                    pointsAdded = 40;
                }
                await userRepository.IncrementPoints(routine.Username, pointsAdded);

                mainThread.Post(() => callback.OnRoutineMarkedDoneForToday(routine, pointsAdded));
            }
            catch (Exception)
            {
                mainThread.Post(() => callback.OnError("Error logging routine. Try again."));
            }
        }