public DiaryEntry Parse(DiaryEntryModel diaryEntry) { try { if (diaryEntry == null) { throw new ArgumentNullException(nameof(diaryEntry)); } var entry = new DiaryEntry(); if (diaryEntry.Quantity != default(double)) { entry.Quantity = diaryEntry.Quantity; } var uri = new Uri(diaryEntry.MeasureUrl); var measureId = int.Parse(uri.Segments.Last()); var measure = _countingKsRepository.GetMeasure(measureId); entry.FoodItem = measure.Food; entry.Measure = measure; return(entry); } catch { return(null); } }
public DiaryEntry Parse(DiaryEntryModel model) { try { var entry = new DiaryEntry(); if (model.Quantity != default(double)) { entry.Quantity = model.Quantity; } if (!string.IsNullOrWhiteSpace(model.MeasureUrl)) { var uri = new Uri(model.MeasureUrl); var measureId = int.Parse(uri.Segments.Last()); var measure = _repo.GetMeasure(measureId); entry.Measure = measure; entry.FoodItem = measure.Food; } return(entry); } catch { return(null); } }
public DiaryEntry Parse(DiaryEntryModel model) { try { var measureUrl = new Uri(model.Measure.Url); var measureId = int.Parse(measureUrl.Segments.Last()); var entry = new DiaryEntry { Quantity = model.Quantity, Measure = _repo.GetMeasure(measureId), }; entry.FoodItem = entry.Measure.Food; //todo: what about diary? return(entry); } catch (Exception exc) { Debug.WriteLine($"{exc.Message} {exc.InnerException?.Message}"); return(null); } }
/// <summary> /// Parses DiaryEntryModel into DiaryEntry /// </summary> /// <param name="entryModel">Requires the presence of the either the MeasureUrl, FoodUrl or Quantity values</param> /// <returns>Returns null if parse failed</returns> public DiaryEntry Parse(DiaryEntryModel entryModel) { try { DiaryEntry entry = new DiaryEntry(); bool hasValue = false; if (!string.IsNullOrWhiteSpace(entryModel.MeasureUrl)) { Uri uri = new Uri(entryModel.MeasureUrl); int measuredId = int.Parse(uri.Segments.Last()); Measure measure = _repo.GetMeasure(measuredId); if (measure == null) { return(null); } entry.Measure = measure; entry.FoodItem = measure.Food; hasValue = true; } if (!string.IsNullOrWhiteSpace(entryModel.FoodUrl) && string.IsNullOrWhiteSpace(entryModel.MeasureUrl)) { Uri uri = new Uri(entryModel.FoodUrl); int foodId = int.Parse(uri.Segments.Last()); Food food = _repo.GetFood(foodId); if (food == null) { return(null); } entry.FoodItem = food; hasValue = true; } if (entryModel.Quantity != default(double)) { entry.Quantity = entryModel.Quantity; hasValue = true; } // When a DiaryEntryModel was passed without any meaningful values if (!hasValue) { return(null); } return(entry); } catch { return(null); } }