00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using Foodolini.Database;
00005
00006
00007 namespace Foodolini.BusinessLogic
00008 {
00012 public class Diet
00013 {
00014 private DietRow dietRow;
00015 private bool modified = true;
00016
00021 internal Diet(long dietId)
00022 {
00023 this.modified = false;
00024 throw new NotImplementedException();
00025 }
00026
00027 public Diet(string name, double proteinPercentage,
00028 double carbPercentage, double fatPercentage, double calorieFactor)
00029 {
00030 this.dietRow = new DietRow();
00031
00032 this.Name = name;
00033 this.ProteinPercentage = proteinPercentage;
00034 this.CarbPercentage = carbPercentage;
00035 this.FatPercentage = fatPercentage;
00036 this.CalorieFactor = calorieFactor;
00037 }
00038
00039
00040 private static Diet defaultDiet = null;
00041 public static Diet DefaultDiet()
00042 {
00043
00044 if (defaultDiet == null)
00045 defaultDiet = new Diet("Default Diet", 0.33, 0.33, 0.33, 0);
00046 return defaultDiet;
00047 }
00048
00052 internal long DietId
00053 {
00054 get
00055 {
00056 return this.dietRow.DietId;
00057 }
00058 }
00059
00063 public string Name
00064 {
00065 get
00066 {
00067 return this.dietRow.Title;
00068 }
00069 set
00070 {
00071 this.dietRow.Title = value;
00072 modified = true;
00073 }
00074 }
00075
00079 public double ProteinPercentage
00080 {
00081 get
00082 {
00083 return this.dietRow.ProteinPercentage;
00084 }
00085 set
00086 {
00087 this.dietRow.ProteinPercentage = value;
00088 modified = true;
00089 }
00090 }
00091
00095 public double CarbPercentage
00096 {
00097 get
00098 {
00099 return this.dietRow.CarbPercentage;
00100 }
00101 set
00102 {
00103 this.dietRow.CarbPercentage = value;
00104 modified = true;
00105 }
00106 }
00107
00111 public double FatPercentage
00112 {
00113 get
00114 {
00115 return this.dietRow.FatPercentage;
00116 }
00117 set
00118 {
00119 this.dietRow.FatPercentage = value;
00120 modified = true;
00121 }
00122 }
00123
00127 public double CalorieFactor
00128 {
00129 get { return this.dietRow.CalorieFactor; }
00130 set
00131 {
00132 this.dietRow.CalorieFactor = value;
00133 modified = true;
00134 }
00135 }
00136
00140 public void Save()
00141 {
00142 if (DietId == 0)
00143 Settings.Repo.Add(this.dietRow);
00144 else if (modified)
00145 Settings.Repo.Update(this.dietRow);
00146 }
00147
00151 public void Delete()
00152 {
00153 if (this.dietRow.DietId != 0)
00154 Settings.Repo.Delete(this.dietRow);
00155 this.modified = true;
00156 }
00157
00164 public int GetRequiredCalories(Person person)
00165 {
00166 return Convert.ToInt32(person.BMR * person.ActivityFactor + (person.BMR * this.CalorieFactor));
00167 }
00168 }
00169 }
00170