PageRenderTime 55ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/CmsData/Family.cs

https://bitbucket.org/rbhakser/bvcms
C# | 211 lines | 205 code | 6 blank | 0 comment | 63 complexity | 33c3b257f0d0d471536a9c1a2de736cf MD5 | raw file
Possible License(s): CC-BY-SA-3.0, Apache-2.0, BSD-3-Clause, AGPL-3.0, MPL-2.0-no-copyleft-exception
  1. using System;
  2. using System.Linq;
  3. using UtilityExtensions;
  4. using System.Text;
  5. using System.Data.Linq;
  6. using System.Data.Linq.Mapping;
  7. using System.Data;
  8. using System.Collections.Generic;
  9. using System.Reflection;
  10. using System.Linq.Expressions;
  11. using System.ComponentModel;
  12. namespace CmsData
  13. {
  14. public partial class Family
  15. {
  16. public string CityStateZip
  17. {
  18. get { return Util.FormatCSZ4(CityName,StateCode,ZipCode); }
  19. }
  20. public string AddrCityStateZip
  21. {
  22. get { return AddressLineOne + " " + CityStateZip; }
  23. }
  24. public string Addr2CityStateZip
  25. {
  26. get { return AddressLineTwo + " " + CityStateZip; }
  27. }
  28. public string FullAddress
  29. {
  30. get
  31. {
  32. var sb = new StringBuilder(AddressLineOne + "\n");
  33. if (AddressLineTwo.HasValue())
  34. sb.AppendLine(AddressLineTwo);
  35. sb.Append(CityStateZip);
  36. return sb.ToString();
  37. }
  38. }
  39. public string HohName(CMSDataContext Db)
  40. {
  41. if (HeadOfHouseholdId.HasValue)
  42. return Db.People.Where(p => p.PeopleId == HeadOfHouseholdId.Value).Select(p => p.Name).SingleOrDefault();
  43. return "";
  44. }
  45. public string HohSpouseName(CMSDataContext Db)
  46. {
  47. if (HeadOfHouseholdSpouseId.HasValue)
  48. return Db.People.Where(p => p.PeopleId == HeadOfHouseholdSpouseId.Value).Select(p => p.Name).SingleOrDefault();
  49. return "";
  50. }
  51. public string FamilyName(CMSDataContext Db)
  52. {
  53. return "The " + HohName(Db) + " Family";
  54. }
  55. public int MemberCount
  56. {
  57. get { return People.Count; }
  58. }
  59. public void UpdateValue(StringBuilder fsb, string field, object value)
  60. {
  61. if (value is string)
  62. value = ((string)value).TrimEnd();
  63. var o = Util.GetProperty(this, field);
  64. if (o is string)
  65. o = ((string)o).TrimEnd();
  66. if (o == null && value == null)
  67. return;
  68. if (o != null && o.Equals(value))
  69. return;
  70. if (o == null && value is string && !((string)value).HasValue())
  71. return;
  72. if (value == null && o is string && !((string)o).HasValue())
  73. return;
  74. fsb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>\n", field, o, value ?? "(null)");
  75. Util.SetProperty(this, field, value);
  76. }
  77. public void UpdateValueFromText(StringBuilder fsb, string field, string value)
  78. {
  79. value = value.TrimEnd();
  80. var o = Util.GetProperty(this, field);
  81. if (o is string)
  82. o = ((string)o).TrimEnd();
  83. if (o == null && value == null)
  84. return;
  85. if (o != null && o.Equals(value))
  86. return;
  87. if (o == null && value is string && !((string)value).HasValue())
  88. return;
  89. if (value == null && o is string && !((string)o).HasValue())
  90. return;
  91. fsb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>\n", field, o, value ?? "(null)");
  92. Util.SetPropertyFromText(this, field, value);
  93. }
  94. public void LogChanges(CMSDataContext Db, StringBuilder fsb, int PeopleId, int UserPeopleId)
  95. {
  96. if (fsb.Length > 0)
  97. {
  98. var c = new ChangeLog
  99. {
  100. FamilyId = FamilyId,
  101. UserPeopleId = UserPeopleId,
  102. PeopleId = PeopleId,
  103. Field = "Family",
  104. Data = "<table>\n" + fsb.ToString() + "</table>",
  105. Created = Util.Now
  106. };
  107. Db.ChangeLogs.InsertOnSubmit(c);
  108. }
  109. }
  110. public void SetExtra(string field, string value)
  111. {
  112. var e = FamilyExtras.FirstOrDefault(ee => ee.Field == field);
  113. if (e == null)
  114. {
  115. e = new FamilyExtra { Field = field, FamilyId = FamilyId, TransactionTime = DateTime.Now };
  116. this.FamilyExtras.Add(e);
  117. }
  118. e.StrValue = value;
  119. }
  120. public string GetExtra(string field)
  121. {
  122. var e = FamilyExtras.SingleOrDefault(ee => ee.Field == field);
  123. if (e == null)
  124. return "";
  125. if (e.StrValue.HasValue())
  126. return e.StrValue;
  127. if (e.Data.HasValue())
  128. return e.Data;
  129. if (e.DateValue.HasValue)
  130. return e.DateValue.FormatDate();
  131. if (e.IntValue.HasValue)
  132. return e.IntValue.ToString();
  133. return e.BitValue.ToString();
  134. }
  135. public FamilyExtra GetExtraValue(string field)
  136. {
  137. if (!field.HasValue())
  138. field = "blank";
  139. field = field.Replace(",", "_");
  140. var ev = FamilyExtras.AsEnumerable().FirstOrDefault(ee => string.Compare(ee.Field, field, ignoreCase:true) == 0);
  141. if (ev == null)
  142. {
  143. ev = new FamilyExtra
  144. {
  145. FamilyId = FamilyId,
  146. Field = field,
  147. TransactionTime = DateTime.Now
  148. };
  149. FamilyExtras.Add(ev);
  150. }
  151. return ev;
  152. }
  153. public void RemoveExtraValue(CMSDataContext Db, string field)
  154. {
  155. var ev = FamilyExtras.AsEnumerable().FirstOrDefault(ee => string.Compare(ee.Field, field, ignoreCase:true) == 0);
  156. if (ev != null)
  157. Db.FamilyExtras.DeleteOnSubmit(ev);
  158. }
  159. public void AddEditExtraValue(string field, string value)
  160. {
  161. if (!field.HasValue())
  162. return;
  163. if (!value.HasValue())
  164. return;
  165. var ev = GetExtraValue(field);
  166. ev.StrValue = value;
  167. }
  168. public void AddEditExtraDate(string field, DateTime? value)
  169. {
  170. if (!value.HasValue)
  171. return;
  172. var ev = GetExtraValue(field);
  173. ev.DateValue = value;
  174. }
  175. public void AddEditExtraData(string field, string value)
  176. {
  177. if (!value.HasValue())
  178. return;
  179. var ev = GetExtraValue(field);
  180. ev.Data = value;
  181. }
  182. public void AddToExtraData(string field, string value)
  183. {
  184. if (!value.HasValue())
  185. return;
  186. var ev = GetExtraValue(field);
  187. if (ev.Data.HasValue())
  188. ev.Data = value + "\n" + ev.Data;
  189. else
  190. ev.Data = value;
  191. }
  192. public void AddEditExtraInt(string field, int value)
  193. {
  194. var ev = GetExtraValue(field);
  195. ev.IntValue = value;
  196. }
  197. public void AddEditExtraBool(string field, bool tf)
  198. {
  199. if (!field.HasValue())
  200. return;
  201. var ev = GetExtraValue(field);
  202. ev.BitValue = tf;
  203. }
  204. }
  205. }