private void LoadSummary() { LoadVersion(); using (DataSet ds = Data.Template.GetTemplateSummary(_id, TemplateDef)) { DataRow row = ds.Tables[0].Rows[0]; _name = (string)row[Data.DataNames._C_TemplateName]; _description = (string)row[Data.DataNames._C_Description]; _canGenerateDocument = bool.Parse((string)row[Data.DataNames._C_GenerateDocument]); bool canGenerateUserDocuments; if (bool.TryParse((string)row[Data.DataNames._C_GenerateUserDocuments], out canGenerateUserDocuments)) _canGenerateUserDocuments = canGenerateUserDocuments; else _canGenerateUserDocuments = false; _status = (TemplateStatusType)((short)row[Data.DataNames._C_Status]); _allowAttachments = bool.Parse((string)row[Data.DataNames._C_Attachments]); bool useDetailedDescription; if (bool.TryParse((string)row[Data.DataNames._C_UseDetailedDescription], out useDetailedDescription)) _useDetailedDescription = useDetailedDescription; else _useDetailedDescription = false; bool allowComments; if (bool.TryParse((string)row[Data.DataNames._C_AllowComments], out allowComments)) _allowComments = allowComments; else _allowComments = false; try { _securityModel = (SecurityModel)Enum.Parse(typeof(SecurityModel), (string)row[Data.DataNames._C_SecurityModel]); } catch { _securityModel = SecurityModel.Basic; } try { _retroModel = (Retro.RetroModel)Enum.Parse(typeof(Retro.RetroModel), (string)row[Data.DataNames._C_RetroModel]); } catch { _retroModel = Retro.RetroModel.Off; } _systemID = (Guid)row[Data.DataNames._C_SystemID]; _summaryLoaded = true; } }
//This call will make copies of all the pertinent pieces of the template, minimizing the need to //extract data from the database or to perform additional parsing of the xml. //Only those pieces deemed to be needed for Retro are initially copied over, saving additional xml parsing. public void RetroCopy(Template sourceTemplate, bool parseEvents) { //Note - do not make these assignments here - they should already be defined. //_defType //_id //Summary Data _name = sourceTemplate.Name; _status = sourceTemplate.Status; _retroDate = sourceTemplate.RetroDate; _templateDef = sourceTemplate.TemplateDef; //Attributes _systemID = sourceTemplate.SystemID; _description = sourceTemplate.Description; _canGenerateDocument = sourceTemplate.CanGenerateDocument; _canGenerateUserDocuments = sourceTemplate.CanGenerateUserDocuments; _allowComments = sourceTemplate.AllowComments; _useDetailedDescription = sourceTemplate.UseDetailedDescription; _securityModel = sourceTemplate.SecurityModel; _retroModel = sourceTemplate.RetroModel; _version = sourceTemplate.Version; _XMLVersion = sourceTemplate.XMLVersion; _allowAttachments = sourceTemplate.AllowAttachments; //Collections _basicTerms = new List<Term>(sourceTemplate.BasicTerms.Count); foreach (Term term in sourceTemplate.BasicTerms) _basicTerms.Add(term.RetroCopy(term.SystemTerm, this)); _complexLists = new List<Term>(sourceTemplate.ComplexLists); _termGroups = new List<TermGroup>(sourceTemplate.TermGroups); if (parseEvents) { XmlDocument xmlTemplateDoc = new XmlDocument(); xmlTemplateDoc.PreserveWhitespace = false; xmlTemplateDoc.LoadXml(sourceTemplate.TemplateDef); _events = Business.Events.Create(xmlTemplateDoc, this is ManagedItem); } else { _events = new List<Event>(sourceTemplate.Events); } _workflows = new List<Workflow>(sourceTemplate.Workflows); //_workflows = new List<Workflow>(sourceTemplate.Workflows.Count); //foreach (Workflow workflow in sourceTemplate.Workflows) // _workflows.Add(workflow.Copy(workflow.Name, sourceTemplate is ManagedItem, this)); //Workflow sourceActiveworkflow = sourceTemplate.Workflows.Find(workflow => workflow.ID == sourceTemplate.ActiveWorkflowID); //_activeWorkflowID = Workflows.Find(workflow => workflow.Name == sourceActiveworkflow.Name).ID; //Note - Extensions not copied here, since the source may be a template and not the manageditem. //_extensions = new List<Extension>(sourceTemplate.Extensions); //_document = ITATDocument.Create(TemplateDef); //_comments = new List<Comment>(sourceTemplate.Comments); //_termDependencies = new List<TermDependency>(sourceTemplate.TermDependencies); //_detailedDescriptions = new List<DetailedDescription>(sourceTemplate.DetailedDescriptions); //_documentPrinters = new List<Role>(sourceTemplate.DocumentPrinters); //Derived //_sourceTerms = sourceTemplate.SourceTerms; _activeWorkflowID = sourceTemplate.ActiveWorkflowID; //_termGroupTerms = sourceTemplate.TermGroupTerms; //Loaded indicators _summaryLoaded = sourceTemplate._summaryLoaded; _basicTermsLoaded = sourceTemplate._basicTermsLoaded; _complexListsLoaded = sourceTemplate._complexListsLoaded; _termGroupsLoaded = sourceTemplate._termGroupsLoaded; _eventsLoaded = sourceTemplate._eventsLoaded; _workflowLoaded = sourceTemplate._workflowLoaded; //_msoDefined = sourceTemplate._msoDefined; //_renewalDefined = sourceTemplate._renewalDefined; //_extensionsLoaded = sourceTemplate._extensionsLoaded; //_commentsLoaded = sourceTemplate._commentsLoaded; //_documentPrintersLoaded = sourceTemplate._documentPrintersLoaded; //_detailedDescriptionsLoaded = sourceTemplate._detailedDescriptionsLoaded; //_termDependenciesLoaded = sourceTemplate._termDependenciesLoaded; //_documentLoaded = sourceTemplate._documentLoaded; }