DataCacheSpecification class

From Catglobe Wiki
Revision as of 05:53, 14 September 2011 by Tungocman (talk | contribs) (Created page with "<p style="color:#000099; font-size:14px;"><strong>DataCacheSpecification : Represents a Data Cache specification.</strong></p> <p>  </p> <p> <span style="color:#a52a2a;"><...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

DataCacheSpecification : Represents a Data Cache specification.

 

Constructors

  • () - Instanciate a new instance using the current datacache context.
  • (number ResourceId) - Instanciate a new instance using the resource id of a datacache
  • (string ResourceName, array QuestionnaireIds) - Create a new datacache using quick setup. QuestionnaireIds is an array of Questionnaire Ids to use in the creation. Must all belong to same questionnaire template.

Methods

  • Empty AddFilter(string filterQuestionLabel, string filterValue) - Add a filter to the DataCache. filterQuestionLabel is Question to apply filter to. If empty, then clear current filters. filterValue is Value of the filter.
  • AnyType EvalWhere(string whereExpression) - Evaluate a single where expression up against the current DataCache. whereExpression is an expression to execute. It must contain 'where' and NOT start with a equal sign, and have 1 and only one semicolon in it.
  • Dictionary EvalWhere(Dictionary whereExpressions) - Evaluate a number of where expressions up against the current DataCache. If there are 2 or more expressions, the result is cached. Context weight and filters are ignored. whereExpressions are expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it.
  • Dictionary EvalWhere(Dictionary whereExpressions, string weight) - Evaluate a number of where expressions up against the current DataCache using a weight. If there are 2 or more expressions, the result is cached. Context weight and filters are ignored. whereExpressions are expressions to execute. They must contain 'where' and MAY start with a equal sign, and have 1 and only one semicolon in it. weight is column name of the weight to use in filter.
  • Empty MakeContext() - Make the current Data Cache as the DCS Context
  • Empty Save() - Save the Data Cache but not REBUILD the Data Cache.
  • string ToString() - The string representation of the object.

Properties

  • bool AutoUpdate HasGetter HasSetter - Get/Set Auto Update
  • bool BuildWithWeight HasGetter HasSetter - Get/Set if the DataCache should be built using weights
  • number CachedRecords HasGetter  - How many records does the DataCache currently hold
  • array ColumnNames HasGetter  - List of Column names
  • bool Completed HasGetter HasSetter - Get/Set include completed
  • bool Deleted HasGetter HasSetter - Get/Set include deleted
  • string Description HasGetter HasSetter - Get/Set description of the DataCache
  • bool Disabled HasGetter HasSetter - Get/Set include disabled
  • bool InterviewFailed HasGetter HasSetter - Get/Set include marked as interview failed
  • bool InterviewSucceeded HasGetter HasSetter - Get/Set include marked as interview succeeded
  • bool IsOutOfDate HasGetter  - Does the DataCache need to be rebuilt to have the correct content
  • string Language HasGetter HasSetter - Get/Set the iso code used in building the items that depend on a specific language
  • DateTime LastUpdated HasGetter  - Time of the last rebuild
  • string Name HasGetter HasSetter - Name of the DataCache resource
  • bool Normal HasGetter HasSetter - Get/Set include normal
  • bool NotStarted HasGetter HasSetter - Get/Set include those not yet started
  • bool OutsideTarget HasGetter HasSetter - Get/Set include those marked outside target
  • bool Partly HasGetter HasSetter - Get/Set include partly completed
  • array QuestionnaireIds HasGetter  - List of the questionnaires used in the DataCache
  • number QuestionnaireTemplateId HasGetter  - The resource id of the questionnaire template used in the DataCache
  • bool QuotaFull HasGetter HasSetter - Get/Set include those with full quota
  • number ResourceId HasGetter  - The Id of the DataCache
  • bool Test HasGetter HasSetter - Get/Set include those marked as test
  • number UpdateFrequence HasGetter HasSetter - Get/Set Update Frequence in minutes
  • string ObjectTypeName HasGetter  - The name of the type of object
  • TypeInformation TypeInformation HasGetter  - Get information about this class

 

Examples

Ex1:

DCS_use(37244952);                                                                                  //  set DCS context

string e1 = "count() where S_Age == [1] && M_Travel == [1,2];";

Dictionary d =

{

   "exp1": "count() where S_Age == [1] && M_Travel == [1,2];",

   "exp2": "count() where S_Age == [2] && M_Travel == [1];"

};

print(DCS_evaluateWhereExpression(e1));                                                   //  68

DataCacheSpecification dcs = new DataCacheSpecification();                        //  Represent a DCS which is used as current DCS context

print(dcs.EvalWhere(e1));                                                                           //  68

print(dcs.EvalWhere(d));                                                                            //  {"exp1": 68, "exp2": 46}

 

Ex2:

string e1 = "count() where S_Age == [1] && M_Travel == [1,2];";

Dictionary d =

{

   "exp1": "count() where S_Age == [1] && M_Travel == [1,2];",

   "exp2": "count() where S_Age == [2] && M_Travel == [1];"

};

DataCacheSpecification dcs = new DataCacheSpecification(37244952);              //  Represents a DCS which has Resource Id: 37244952

print(dcs.EvalWhere(e1));                                                       //  68

print(dcs.EvalWhere(d));                                                        //  {"exp1": 68, "exp2": 46}

dcs.MakeContext();                                                               //  or you can use DCS_use(RID) instead

print(DCS_evaluateWhereExpression(e1));                             //  without the previous statement (dcs.MakeContext();), you will get error at this line because there is no DCS context is set, so you can not use DCS_evaluateWhereExpression(e1)

dcs.Partly = false;                                             //  Not include the partly completed QASs

dcs.NotStarted = false;                                     //  Not include the not started QASs

dcs.Save();                                                     //  Must save to make the above statements applied on DCS, but this statement does not REBUILD the DCS