Difference between revisions of "VN3056REP - Same business logic as View Report for View Cross function from Questionnaire list"
(→Design detail) |
(→Design detail) |
||
Line 40: | Line 40: | ||
: Re-setup data cache: | : Re-setup data cache: | ||
<source lang=csharp> | <source lang=csharp> | ||
− | // | + | // _dcsId is a questionnaire cache specification ID |
− | var | + | // _pqId is a project questionnaire ID |
− | + | var pq = ProjectQuestionnaire.GetByPrimaryKey(_pqId); | |
− | + | var qcs = QuestionnaireCacheSpecification.GetBy(_dcsId); | |
+ | var pqs = new List<ProjectQuestionnaire> { pq }; | ||
+ | qcs.QuickSetup(pqs, true); | ||
qcs.AxisSet = qcs.CreateDefaultAxisSet(); | qcs.AxisSet = qcs.CreateDefaultAxisSet(); | ||
qcs.Save(); | qcs.Save(); |
Revision as of 09:37, 1 April 2010
Introduction
The current process of "View cross" function in Questionnaire list:
- Create / Rebuild the default data cache of selected questionnaire.
- Check if the data cache has any axises, if yes redirect to a "nearly" cross viewer page, if no, just render an error message.
Disadvantage:
- The data cache is always rebuilt if there is a change in data of questionnaire.
- If the questionnaire template of questionnaire is changed, it is too difficult to re-setup the data cache.
Design decisions
When "View Cross" function of Questionnaire list is clicked:
- If this is the first time that this function is used for selected questionnaire, create a data cache and redirect to cross viewer page.
- If not, use the same business logic as "View Report" function, show the below dialog
- If option 1 is selected, data cache will be re-setup, rebuild, and then show the cross viewer page.
- If option 2 is selected, just show the cross viewer page with the old data cache.
Design detail
- Re-make a new "Regenerate instant cross" dialog as above.
- There are two main processes for this dialog:
- The Page_Load event:
- Create default data cache
// QuestionnaireObject is a selected Questionnaire
QuestionnaireCacheSpecification qcsObject = DiagramUtilities.CreateNewDCSByQuestionnaire(QuestionnaireObject);
- The Button Ok clicked event:
- Re-setup data cache:
// _dcsId is a questionnaire cache specification ID
// _pqId is a project questionnaire ID
var pq = ProjectQuestionnaire.GetByPrimaryKey(_pqId);
var qcs = QuestionnaireCacheSpecification.GetBy(_dcsId);
var pqs = new List<ProjectQuestionnaire> { pq };
qcs.QuickSetup(pqs, true);
qcs.AxisSet = qcs.CreateDefaultAxisSet();
qcs.Save();
- Rebuild data cache:
// qcsObject is a questionnaire cache specification object
DataCacheManager.Instance.BuildDCSIfNeeded(qcsObject, true, false);
Document revisions
Version No. | Date | Changed By | Description | Svn revision |
0.1 | 23.03.2010 | Trần Nguyễn Thanh Tùng | Technical design | NA |