public async Task <HttpResponseMessage> AllDataByDay(SearchModel varSearchModel) { Thread.CurrentThread.CurrentCulture = culture; List <ValidicStepsModel> steps = new List <ValidicStepsModel>(); int year = Convert.ToInt32(varSearchModel.parameters[0].Trim()); int month = Convert.ToInt32(varSearchModel.parameters[1].Trim()); int day = Convert.ToInt32(varSearchModel.parameters[2].Trim()); DateTime dateStart = new DateTime(year, month, day, 0, 0, 0, 0, 0); DateTime dateIni = dateStart; DateTime dateEnd = dateStart; dateEnd = dateEnd.AddHours(23); dateEnd = dateEnd.AddMinutes(59); dateEnd = dateEnd.AddSeconds(59); dateEnd = dateEnd.AddMilliseconds(998); ValidicAllDataModel model = new ValidicAllDataModel(); try { using (SqlConnection connection1 = new SqlConnection(connetionString)) { await connection1.OpenAsync(); await GetValidicFitness(connection1, model, dateIni, dateEnd); await GetValidicRoutine(connection1, model, dateIni, dateEnd); await GetValidicSleep(connection1, model, dateIni, dateEnd); await GetValidicWeight(connection1, model, dateIni, dateEnd); } } catch (ApplicationException ex) { ErrorModel _errors = new ErrorModel(); _errors.message = ex.Message; return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, _errors)); } catch (Exception ex) { ErrorModel _errors = new ErrorModel(); _errors.message = ex.Message; return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, _errors)); } return(Request.CreateResponse(System.Net.HttpStatusCode.OK, model)); }
private async Task GetValidicFitness(SqlConnection connection1, ValidicAllDataModel model, DateTime dateIni, DateTime dateEnd) { string cmd = "SELECT " + "u.email,SWITCHOFFSET(TODATETIMEOFFSET(f.[timestamp],'+00:00'),f.utcoffset) as timestamp" + ",s.source as device,c.name as activity,f.[calories],f.[distance] " + ",f.[duration],f.[intensity],f.[starttime] " + "FROM [ValidicFitness] f " + "left join validicactivitycategory c on f.[activitycategory] = c.id " + "left join users u on f.userid = u.validicid " + "left join validicsources s on f.source = s.id " + "where DATEADD(dd, 0, DATEDIFF(dd, 0, DATEDIFF(dd, 0, SWITCHOFFSET(TODATETIMEOFFSET(f.[timestamp],'+00:00'), f.utcoffset)))) between @timestampini and @timestampend " + "order by u.email, SWITCHOFFSET(TODATETIMEOFFSET(f.[timestamp],'+00:00'), f.utcoffset)"; SqlCommand command1 = new SqlCommand(cmd, connection1); SqlParameter parameter = new SqlParameter("@timestampini", SqlDbType.DateTime); parameter.Value = dateIni; command1.Parameters.Add(parameter); parameter = new SqlParameter("@timestampend", SqlDbType.DateTime); parameter.Value = dateEnd; command1.Parameters.Add(parameter); SqlDataReader reader = await command1.ExecuteReaderAsync(); while (await reader.ReadAsync()) { ValidicFitnessModel data = new ValidicFitnessModel(); data.email = reader.GetString(0); data.timestamp = new DateTime(reader.GetDateTimeOffset(1).Year, reader.GetDateTimeOffset(1).Month, reader.GetDateTimeOffset(1).Day, reader.GetDateTimeOffset(1).Hour, reader.GetDateTimeOffset(1).Minute, reader.GetDateTimeOffset(1).Second, reader.GetDateTimeOffset(1).Millisecond); data.device = reader.GetString(2); data.activity = reader.GetString(3); data.calories = (double)reader.GetDecimal(4); data.distance = (double)reader.GetDecimal(5); data.duration = (double)reader.GetDecimal(6); data.intensity = reader.GetString(7); data.starttime = reader.GetDateTime(8); model.fitness.Add(data); } reader.Close(); }
private async Task GetValidicWeight(SqlConnection connection1, ValidicAllDataModel model, DateTime dateIni, DateTime dateEnd) { string cmd = "SELECT " + "u.email,SWITCHOFFSET(TODATETIMEOFFSET(w.[timestamp],'+00:00'),w.utcoffset) as timestamp" + ",s.source as device,w.[bmi],w.[fatpercent],w.[free_mass],w.[height],w.[massweight],w.[weight] " + "FROM [ValidicWeight] w " + "left join users u on w.userid = u.validicid " + "left join validicsources s on w.source = s.id " + "where DATEADD(dd, 0, DATEDIFF(dd, 0, DATEDIFF(dd, 0, SWITCHOFFSET(TODATETIMEOFFSET(w.[timestamp],'+00:00'), w.utcoffset)))) between @timestampini and @timestampend " + "order by u.email, SWITCHOFFSET(TODATETIMEOFFSET(w.[timestamp],'+00:00'), w.utcoffset)"; SqlCommand command1 = new SqlCommand(cmd, connection1); SqlParameter parameter = new SqlParameter("@timestampini", SqlDbType.DateTime); parameter.Value = dateIni; command1.Parameters.Add(parameter); parameter = new SqlParameter("@timestampend", SqlDbType.DateTime); parameter.Value = dateEnd; command1.Parameters.Add(parameter); SqlDataReader reader = await command1.ExecuteReaderAsync(); while (await reader.ReadAsync()) { ValidicWeightModel data = new ValidicWeightModel(); data.email = reader.GetString(0); data.timestamp = new DateTime(reader.GetDateTimeOffset(1).Year, reader.GetDateTimeOffset(1).Month, reader.GetDateTimeOffset(1).Day, reader.GetDateTimeOffset(1).Hour, reader.GetDateTimeOffset(1).Minute, reader.GetDateTimeOffset(1).Second, reader.GetDateTimeOffset(1).Millisecond); data.device = reader.GetString(2); data.bmi = (double)reader.GetDecimal(3); data.fatpercent = (double)reader.GetDecimal(4); data.free_mass = (double)reader.GetDecimal(5); data.height = (double)reader.GetDecimal(6); data.massweight = (double)reader.GetDecimal(7); data.weight = (double)reader.GetDecimal(8); model.weight.Add(data); } reader.Close(); }
private async Task GetValidicSleep(SqlConnection connection1, ValidicAllDataModel model, DateTime dateIni, DateTime dateEnd) { string cmd = "SELECT " + "u.email,SWITCHOFFSET(TODATETIMEOFFSET(sl.[timestamp],'+00:00'),sl.utcoffset) as timestamp" + ",s.source as device,sl.[awake],sl.[deep],sl.[light],sl.[rem],sl.[timeswoken],sl.[totalsleep] " + "FROM [ValidicSleep] sl " + "left join users u on sl.userid = u.validicid " + "left join validicsources s on sl.source = s.id " + "where DATEADD(dd, 0, DATEDIFF(dd, 0, DATEDIFF(dd, 0, SWITCHOFFSET(TODATETIMEOFFSET(sl.[timestamp],'+00:00'), sl.utcoffset)))) between @timestampini and @timestampend " + "order by u.email, SWITCHOFFSET(TODATETIMEOFFSET(sl.[timestamp],'+00:00'), sl.utcoffset)"; SqlCommand command1 = new SqlCommand(cmd, connection1); SqlParameter parameter = new SqlParameter("@timestampini", SqlDbType.DateTime); parameter.Value = dateIni; command1.Parameters.Add(parameter); parameter = new SqlParameter("@timestampend", SqlDbType.DateTime); parameter.Value = dateEnd; command1.Parameters.Add(parameter); SqlDataReader reader = await command1.ExecuteReaderAsync(); while (await reader.ReadAsync()) { ValidicSleepModel data = new ValidicSleepModel(); data.email = reader.GetString(0); data.timestamp = new DateTime(reader.GetDateTimeOffset(1).Year, reader.GetDateTimeOffset(1).Month, reader.GetDateTimeOffset(1).Day, reader.GetDateTimeOffset(1).Hour, reader.GetDateTimeOffset(1).Minute, reader.GetDateTimeOffset(1).Second, reader.GetDateTimeOffset(1).Millisecond); data.device = reader.GetString(2); data.awake = (double)reader.GetDecimal(3); data.deep = (double)reader.GetDecimal(4); data.light = (double)reader.GetDecimal(5); data.rem = (double)reader.GetDecimal(6); data.timeswoken = (double)reader.GetDecimal(7); data.totalsleep = (double)reader.GetDecimal(8); model.sleep.Add(data); } reader.Close(); }
private async Task GetValidicRoutine(SqlConnection connection1, ValidicAllDataModel model, DateTime dateIni, DateTime dateEnd) { string cmd = "SELECT " + "u.email,SWITCHOFFSET(TODATETIMEOFFSET(r.[timestamp],'+00:00'),r.utcoffset) as timestamp" + ",s.source as device,r.[caloriesburned],r.[distance],r.[elevation],r.[floors],r.[steps],r.[water] " + "FROM [ValidicRoutine] r " + "left join users u on r.userid = u.validicid " + "left join validicsources s on r.source = s.id " + "where DATEADD(dd, 0, DATEDIFF(dd, 0, DATEDIFF(dd, 0, SWITCHOFFSET(TODATETIMEOFFSET(r.[timestamp],'+00:00'), r.utcoffset)))) between @timestampini and @timestampend " + "order by u.email, SWITCHOFFSET(TODATETIMEOFFSET(r.[timestamp],'+00:00'), r.utcoffset)"; SqlCommand command1 = new SqlCommand(cmd, connection1); SqlParameter parameter = new SqlParameter("@timestampini", SqlDbType.DateTime); parameter.Value = dateIni; command1.Parameters.Add(parameter); parameter = new SqlParameter("@timestampend", SqlDbType.DateTime); parameter.Value = dateEnd; command1.Parameters.Add(parameter); SqlDataReader reader = await command1.ExecuteReaderAsync(); while (await reader.ReadAsync()) { ValidicRoutineModel data = new ValidicRoutineModel(); data.email = reader.GetString(0); data.timestamp = new DateTime(reader.GetDateTimeOffset(1).Year, reader.GetDateTimeOffset(1).Month, reader.GetDateTimeOffset(1).Day, reader.GetDateTimeOffset(1).Hour, reader.GetDateTimeOffset(1).Minute, reader.GetDateTimeOffset(1).Second, reader.GetDateTimeOffset(1).Millisecond); data.device = reader.GetString(2); data.caloriesburned = (double)reader.GetDecimal(3); data.distance = (double)reader.GetDecimal(4); data.elevation = (double)reader.GetDecimal(5); data.floors = (double)reader.GetDecimal(6); data.steps = (double)reader.GetDecimal(7); data.water = (double)reader.GetDecimal(8); model.routine.Add(data); } reader.Close(); }