Collaboration diagram for HouseOver.THARM.Profile:

Public Member Functions | |
| Profile (Customer owner, int maxPrice, Type item) | |
| Constructs a new profile. | |
| bool | SaleWithinParameters (Sale sale) |
| Determines if a sale matches the criteria of the profile. | |
| Profile (Customer owner, int maxPrice, Type item) | |
| Constructs a new profile. | |
| bool | SaleWithinParameters (Sale sale) |
| Determines if a sale matches the criteria of the profile. | |
Static Public Member Functions | |
| static bool | MyInterfaceFilter (Type typeObj, Object criteriaObj) |
| A static method for filtering interfaces in a Find() method. | |
| static bool | MyInterfaceFilter (Type typeObj, Object criteriaObj) |
| A static method for filtering interfaces in a Find() method. | |
Properties | |
| Type | Item [get, set] |
| Gets or sets the item. | |
| int | MaxPrice [get, set] |
| Gets or sets the max price. | |
| Customer | Owner [get] |
| Gets or sets the owner. | |
| Dictionary< string, Check > | Checks [get] |
| Return the checks dictionary. | |
| Dictionary< string, Check > | Checks [get] |
| Return the checks dictionary. | |
Private Member Functions | |
| void | CreateChecks (Type type) |
| A private method for creating a new Check object which defines the criteria for matching this profile. | |
| void | CreateChecks (Type type) |
| A private method for creating a new Check object which defines the criteria for matching this profile. | |
Private Attributes | |
| int | maxPrice |
| Type | item |
| Customer | owner |
| Dictionary< string, Check > | checks = new Dictionary<string, Check>() |
| Dictionary< string, Check > | checks = new Dictionary<string, Check>() |
Definition at line 15 of file Profile.cs.
| HouseOver.THARM.Profile.Profile | ( | Customer | owner, | |
| int | maxPrice, | |||
| Type | item | |||
| ) |
Constructs a new profile.
| owner | The owner of the profile. A customer. | |
| maxPrice | The maximum price the customer is willing to pay. | |
| item | Thet type of item a customer want. Eg. house or apartment. |
Definition at line 28 of file Profile.cs.
00029 { 00030 this.owner = owner; 00031 this.maxPrice = maxPrice; 00032 this.item = item; 00033 CreateChecks(item); 00034 }
| HouseOver.THARM.Profile.Profile | ( | Customer | owner, | |
| int | maxPrice, | |||
| Type | item | |||
| ) |
Constructs a new profile.
| owner | The owner of the profile. A customer. | |
| maxPrice | The maximum price the customer is willing to pay. | |
| item | Thet type of item a customer want. Eg. house or apartment. |
Definition at line 28 of file Profile.cs.
00029 { 00030 this.owner = owner; 00031 this.maxPrice = maxPrice; 00032 this.item = item; 00033 CreateChecks(item); 00034 }
| void HouseOver.THARM.Profile.CreateChecks | ( | Type | type | ) | [private] |
A private method for creating a new Check object which defines the criteria for matching this profile.
| type |
Definition at line 40 of file Profile.cs.
References HouseOver.THARM.Attributes.SaleCriteria.HumanReadableName.
00041 { 00042 checks.Clear(); // Clear the dictionary 00043 PropertyInfo[] pis = type.GetProperties(); // Get all properties for the given type. 00044 00045 foreach (PropertyInfo pi in pis) // Loop through the found attributes (defined by the SaleCriteria 00046 // attribute) and get their type and add them to the dictionary. 00047 { 00048 SaleCriteria sc = (SaleCriteria)Attribute.GetCustomAttribute(pi, typeof(SaleCriteria)); 00049 if (sc == null) 00050 continue; 00051 00052 if (pi.PropertyType.IsEnum) 00053 { 00054 checks.Add(pi.Name, new EnumCheck(pi.Name, sc.HumanReadableName == null 00055 ? pi.Name : sc.HumanReadableName, false, pi.PropertyType)); 00056 } 00057 else if (pi.PropertyType.FindInterfaces(MyInterfaceFilter, "System.IComparable").Length > 0) 00058 { 00059 checks.Add(pi.Name,new ComparableCheck(pi.Name, sc.HumanReadableName == null 00060 ? pi.Name : sc.HumanReadableName, false, pi.PropertyType, null, null)); 00061 } 00062 } 00063 }
| bool HouseOver.THARM.Profile.SaleWithinParameters | ( | Sale | sale | ) |
Determines if a sale matches the criteria of the profile.
| sale | The sale to match. |
Definition at line 70 of file Profile.cs.
References HouseOver.THARM.Sale.Item, and HouseOver.THARM.Sale.Price.
Referenced by HouseOver.THARM.RealtyManager.FindPotentialItems().
00071 { 00072 if (sale.Price > this.maxPrice) 00073 return false; 00074 00075 if(!item.IsAssignableFrom(sale.Item.GetType())) 00076 { 00077 return false; 00078 } 00079 00080 foreach (Check c in Checks.Values) 00081 { 00082 object retval = sale.Item.GetType().GetProperty(c.Name).GetValue(sale.Item, null); 00083 if (!c.Verify(retval)) 00084 { 00085 return false; 00086 } 00087 } 00088 00089 return true; 00090 }
Here is the caller graph for this function:

| static bool HouseOver.THARM.Profile.MyInterfaceFilter | ( | Type | typeObj, | |
| Object | criteriaObj | |||
| ) | [static] |
A static method for filtering interfaces in a Find() method.
| typeObj | Input type. | |
| criteriaObj | User data for verifying interfaces. |
Definition at line 98 of file Profile.cs.
00099 { 00100 if (typeObj.ToString() == criteriaObj.ToString()) 00101 return true; 00102 else 00103 return false; 00104 }
| void HouseOver.THARM.Profile.CreateChecks | ( | Type | type | ) | [private] |
A private method for creating a new Check object which defines the criteria for matching this profile.
| type |
Definition at line 40 of file Profile.cs.
References HouseOver.THARM.Attributes.SaleCriteria.HumanReadableName.
00041 { 00042 checks.Clear(); // Clear the dictionary 00043 PropertyInfo[] pis = type.GetProperties(); // Get all properties for the given type. 00044 00045 foreach (PropertyInfo pi in pis) // Loop through the found attributes (defined by the SaleCriteria 00046 // attribute) and get their type and add them to the dictionary. 00047 { 00048 SaleCriteria sc = (SaleCriteria)Attribute.GetCustomAttribute(pi, typeof(SaleCriteria)); 00049 if (sc == null) 00050 continue; 00051 00052 if (pi.PropertyType.IsEnum) 00053 { 00054 checks.Add(pi.Name, new EnumCheck(pi.Name, sc.HumanReadableName == null 00055 ? pi.Name : sc.HumanReadableName, false, pi.PropertyType)); 00056 } 00057 else if (pi.PropertyType.FindInterfaces(MyInterfaceFilter, "System.IComparable").Length > 0) 00058 { 00059 checks.Add(pi.Name,new ComparableCheck(pi.Name, sc.HumanReadableName == null 00060 ? pi.Name : sc.HumanReadableName, false, pi.PropertyType, null, null)); 00061 } 00062 } 00063 }
| bool HouseOver.THARM.Profile.SaleWithinParameters | ( | Sale | sale | ) |
Determines if a sale matches the criteria of the profile.
| sale | The sale to match. |
Definition at line 70 of file Profile.cs.
References HouseOver.THARM.Sale.Item, and HouseOver.THARM.Sale.Price.
00071 { 00072 if (sale.Price > this.maxPrice) 00073 return false; 00074 00075 if(!item.IsAssignableFrom(sale.Item.GetType())) 00076 { 00077 return false; 00078 } 00079 00080 foreach (Check c in Checks.Values) 00081 { 00082 object retval = sale.Item.GetType().GetProperty(c.Name).GetValue(sale.Item, null); 00083 if (!c.Verify(retval)) 00084 { 00085 return false; 00086 } 00087 } 00088 00089 return true; 00090 }
| static bool HouseOver.THARM.Profile.MyInterfaceFilter | ( | Type | typeObj, | |
| Object | criteriaObj | |||
| ) | [static] |
A static method for filtering interfaces in a Find() method.
| typeObj | Input type. | |
| criteriaObj | User data for verifying interfaces. |
Definition at line 98 of file Profile.cs.
00099 { 00100 if (typeObj.ToString() == criteriaObj.ToString()) 00101 return true; 00102 else 00103 return false; 00104 }
int HouseOver::THARM.Profile::maxPrice [private] |
Definition at line 17 of file Profile.cs.
Type HouseOver::THARM.Profile::item [private] |
Definition at line 18 of file Profile.cs.
Customer HouseOver::THARM.Profile::owner [private] |
Definition at line 19 of file Profile.cs.
Dictionary<string, Check> HouseOver.THARM.Profile.checks = new Dictionary<string, Check>() [private] |
Definition at line 20 of file Profile.cs.
Dictionary<string, Check> HouseOver.THARM.Profile.checks = new Dictionary<string, Check>() [private] |
Definition at line 20 of file Profile.cs.
Type HouseOver::THARM.Profile::Item [get, set] |
Gets or sets the item.
Definition at line 109 of file Profile.cs.
Referenced by HouseOver.THARM.RealtyManager.SetComparableCheck(), HouseOver.THARM.RealtyManager.SetEnumCheck(), HouseOver.THARM.RealtyManager.ShowProfile(), and HouseOver.THARM.RealtyManager.ShowProfileDetails().
int HouseOver::THARM.Profile::MaxPrice [get, set] |
Gets or sets the max price.
Definition at line 113 of file Profile.cs.
Referenced by HouseOver.THARM.RealtyManager.ShowProfileDetails(), and HouseOver.THARM.RealtyManager.SortProfileByPrice().
Customer HouseOver::THARM.Profile::Owner [get] |
Gets or sets the owner.
Definition at line 117 of file Profile.cs.
Referenced by HouseOver.THARM.RealtyManager.SetComparableCheck(), HouseOver.THARM.RealtyManager.SetEnumCheck(), HouseOver.THARM.RealtyManager.ShowProfile(), and HouseOver.THARM.RealtyManager.ShowProfileDetails().
Dictionary<string, Check> HouseOver.THARM.Profile.Checks [get] |
Return the checks dictionary.
Definition at line 121 of file Profile.cs.
Referenced by HouseOver.THARM.RealtyManager.ShowProfileDetails().
Dictionary<string, Check> HouseOver.THARM.Profile.Checks [get] |
1.5.1-p1