public void AddLogMessage(LogMessage logMessage) { var person = _dbContext.People.Include(l => l.LogProfiles).FirstOrDefault(p => p.Email == logMessage.Email); if (person == null) throw new ArgumentException("person not found"); var logProfile = person.LogProfiles.FirstOrDefault(p => p.GlobalId == logMessage.ProfileId); if (logProfile == null) throw new ArgumentException("logProfile not found"); AddGlocoseLevel(logMessage, logProfile); AddTerapy(logMessage, logProfile); AddFood(logMessage, logProfile); }
// POST api/log public HttpResponseMessage Post([FromBody]LogDto data) { try { var foodTypes = new StringBuilder(string.Empty); string foodTypesAsString = null; if (data.FoodTypes != null && data.FoodTypes.Any()) { foreach (var foodType in data.FoodTypes) { foodTypes.AppendFormat("{0},",foodType); } foodTypesAsString = foodTypes.ToString().Remove(foodTypes.ToString().LastIndexOf(',')); } var logMessage = new LogMessage { Email = User.Identity.Name, Value = data.Value, Message = data.Message, LogDate = data.LogDate, ProfileId = data.ProfileId, IsSlow = data.IsSlow, TerapyValue = data.TerapyValue, Calories = data.Calories, FoodTypes = foodTypesAsString }; _logManager.LogCommands.AddLogMessage(logMessage); _logManager.Save(); data.GlobalId = logMessage.GlobalId; data.TerapyGlobalId = logMessage.TerapyGlobalId; return Request.CreateResponse(HttpStatusCode.Created, data); } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.GetBaseException()); } }
private void AddFood(LogMessage logMessage, LogProfile logProfile) { if (logMessage.Calories <= 0) return; var newFoodId = Guid.NewGuid(); var item = new Food { GlobalId = newFoodId, LogDate = logMessage.LogDate, LogProfile = logProfile, Message = logMessage.Message, Calories = logMessage.Calories, FoodTypes = logMessage.FoodTypes }; _dbContext.Foods.Add(item); }
private void AddTerapy(LogMessage logMessage, LogProfile logProfile) { if (logMessage.TerapyValue <= 0) return; var newTerapyId = Guid.NewGuid(); var terapy = new Terapy { GlobalId = newTerapyId, IsSlow = logMessage.IsSlow, LogDate = logMessage.LogDate, LogProfile = logProfile, Message = logMessage.Message, Value = logMessage.TerapyValue }; _dbContext.Terapies.Add(terapy); logMessage.TerapyGlobalId = newTerapyId; }
private void AddGlocoseLevel(LogMessage logMessage, LogProfile logProfile) { if (logMessage.Value <= 0) return; var newLogId = Guid.NewGuid(); var glucoseLevel = new GlucoseLevel { LogDate = logMessage.LogDate, Message = logMessage.Message, Value = logMessage.Value, GlobalId = newLogId, LogProfile = logProfile }; _dbContext.GlucoseLevels.Add(glucoseLevel); logMessage.GlobalId = newLogId; }