/** * @return un oggetto di tipo MetadataSet contenente le * informazioni strutturate relative all'insieme dei metadati */ public MetadataSet getAvailableMetadataSet() { const string pos = "Cachemanager.getAvailableMetadataSet - "; log.Info(pos + "INIT"); try { /** * Si effettua preliminarmente un controllo sulla validità dei * metadati salvati su disco. Nel caso risultino non validi, * si effettua una chiamata al servizio KPeople per scaricare il nuovo elenco * dei metadati. Successivamente si effettua un update dell'elenco appena scaricato * con i metadati salvati sul file System. Viceversa si va a leggere l'elenco dei * metadati salvati su disco. */ if (!checkCachedMetadataValidity()) { metadataSet = connManager.retriveAvailableMetadataSetXml(Constants.KP_USERNAME); metadataSet = updateAvailableMetadataSet(metadataSet); SaveToDisk(metadataSet); } else { metadataSet = getMetadataSetFromFileSystem(); } } catch (System.Exception e) { throw e; } log.Info(pos + "END"); return metadataSet; }
private MetadataSet updateMetadatasetOriginal(MetadataSet metadataSetOriginal, string compoundKey, string metadataKey, string valueKey) { for (int a = 0; a < metadataSetOriginal.cmpMetadataList.Count; a++) { if ((metadataSetOriginal.cmpMetadataList[a].getKey()).Equals(compoundKey)) { for (int b = 0; b < metadataSetOriginal.cmpMetadataList[a].metadataList.Count; b++) { if ((metadataSetOriginal.cmpMetadataList[a].metadataList[b].getKey()).Equals(metadataKey)) { for (int c = 0; c < metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList.Count; c++) { if ((metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList[c].getValue()).Equals(valueKey)) { if (metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList[c].listExtraData.Count == 0) { this.setKey(Constants.KP_SIMPLE_ESTRADATA_MANAGER_KEY); this.setValue(Constants.KP_SIMPLE_ESTRADATA_MANAGER_VALUE); metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList[c].listExtraData.Add(this); } else { string count = (Convert.ToInt16(metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList[c].listExtraData[0].getValue()) + 1).ToString(); metadataSetOriginal.cmpMetadataList[a].metadataList[b].valueList[c].listExtraData[0].setValue(count); } } } } } } } return metadataSetOriginal; }
public MetadataSet updateExtraData(MetadataSet metadataSet, MetadataSet metadataSetOriginal) { for (int i = 0; i < metadataSet.cmpMetadataList.Count; i++) { string compoundKey = metadataSet.cmpMetadataList[i].getKey(); for (int j = 0; j < metadataSet.cmpMetadataList[i].metadataList.Count; j++) { string metadataKey = metadataSet.cmpMetadataList[i].metadataList[j].getKey(); for (int k = 0; k < metadataSet.cmpMetadataList[i].metadataList[j].valueList.Count; k++) { string valueKey = metadataSet.cmpMetadataList[i].metadataList[j].valueList[k].getValue(); metadataSetOriginal = updateMetadatasetOriginal(metadataSetOriginal, compoundKey, metadataKey, valueKey); } } } return metadataSetOriginal; }
public void createDinamicallyUi(MetadataSet metadataSet) { int p = 0; this.metadataSet = metadataSet; List<CompoundMetadata> listCmpMetadata = metadataSet.cmpMetadataList; List<Metadata> listMetadata = null; int q = 0; for (int i = 0; i < listCmpMetadata.Count; i++) { listMetadata = listCmpMetadata[i].metadataList; for (int j = 0; j < listMetadata.Count; j++) { Metadata metadata = listMetadata[j]; ckdListBox = new ListBox(); TextBox search = new TextBox(); metadatoName = new Label(); //metadatoDescription = new RichTextBox(); ckdListBox.FormattingEnabled = true; ckdListBox.Name = i.ToString() + ":" + j.ToString() + ":" + q.ToString(); ckdListBox.ScrollAlwaysVisible = true; ckdListBox.Size = new System.Drawing.Size(400, 120); ckdListBox.TabIndex = 4; metadatoName.Name = q.ToString(); metadatoName.Size = new System.Drawing.Size(180, 30); metadatoName.TabIndex = 5; /*metadatoDescription.Name = q.ToString(); metadatoDescription.Size = new System.Drawing.Size(180, 40); metadatoDescription.TabIndex = 5;*/ search.Name = q.ToString(); search.Size = new System.Drawing.Size(180, 20); search.TabIndex = 5; listMetadatoName.Add(metadatoName); //listMetadatoDescription.Add(metadatoDescription); search.TextChanged += new System.EventHandler(search_TextChanged); search.MouseClick += new MouseEventHandler(search_MouseClick); search.Text = Constants.KP_TAG_SELECTOR_SEARCH_DEFAULT_TEXT; listSearch.Add(search); listListBox.Add(ckdListBox); if (p == 0) { ckdListBox.Location = new System.Drawing.Point(13, 70); metadatoName.Location = new System.Drawing.Point(13, 13); //metadatoDescription.Location = new System.Drawing.Point(13, 40); search.Location = new System.Drawing.Point(210, 12); } else { ckdListBox.Location = new System.Drawing.Point(13, 70 + 185 * p); metadatoName.Location = new System.Drawing.Point(13, 13 + 185 * p); //metadatoDescription.Location = new System.Drawing.Point(13, 40 + 185 * p); search.Location = new System.Drawing.Point(210, 12 + 185 * p); } p = p + 1; //metadatoName.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; metadatoName.Text = metadata.getDescription(); metadatoName.Text = Constants.KP_METADATASET_TAGSELECTOR_LABEL; //metadatoName.BackColor = Color.White; metadatoName.Font = new Font("Microsoft Sans Serif", 10, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); //Commentato per semplificare l'interfaccia /*metadatoDescription.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; metadatoDescription.Text = metadata.getDescription(); metadatoDescription.BackColor = Color.White; metadatoDescription.Font = new Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); metadatoDescription.Text = metadata.getDescription();*/ //ckdListBox.Items.Add("Processo " + metadata.getKey() + " " + metadata.getDescription()); List<Value> listValue = new List<Value>(); listValue = metadata.valueList; populateDinamicallySelectionList(ckdListBox.Name, ""); this.Controls.Add(ckdListBox); this.Controls.Add(metadatoName); //this.Controls.Add(metadatoDescription); this.Controls.Add(search); q = q + 1; } } btnAddTags = new Button(); btnAddTags.Location = new System.Drawing.Point(13, 196 + 25 * listMetadata.Count); btnAddTags.Name = "btnAddTags"; btnAddTags.Size = new System.Drawing.Size(75, 23); btnAddTags.TabIndex = 1; btnAddTags.Text = Constants.KP_TAG_BUTTON_INSERT_TEXT; btnAddTags.UseVisualStyleBackColor = true; btnAddTags.Click += new System.EventHandler(this.btnAddTags_Click); btnIgnore = new Button(); btnIgnore.Location = new System.Drawing.Point(94, 196 + 25 * listMetadata.Count); btnIgnore.Name = "btnIgnore"; btnIgnore.Size = new System.Drawing.Size(75, 23); btnIgnore.TabIndex = 2; btnIgnore.Text = Constants.KP_TAG_BUTTON_CANCEL_TEXT; btnIgnore.UseVisualStyleBackColor = true; btnIgnore.Click += new System.EventHandler(this.btnIgnore_Click); this.Controls.Add(this.btnIgnore); this.Controls.Add(this.btnAddTags); this.ResumeLayout(false); this.PerformLayout(); }
/* public MetadataSet metadataSetFromFile() { MetadataSet metadataSet = new MetadataSet(); docXml.Load("C:/Documents and Settings/depascalis/Impostazioni locali/Dati applicazioni/IsolatedStorage/metadataSet.xml"); return parser(docXml, metadataSet); }*/ public MetadataSet parser(ProcessMetadataSet mtdSet) { MetadataSet metadataSet = new MetadataSet(); try { // XmlNodeList elemList = doc.GetElementsByTagName("CompoundMetadata"); ProcessCompoundMetadata[] elemList = mtdSet.cmpMetadataList; for (int i = 0; i < elemList.Length; i++) { CompoundMetadata cmpMetadata = new CompoundMetadata(); cmpMetadata.setKey(elemList[i].key); cmpMetadata.setDescription(elemList[i].description); // metadataSet.cmpMetadataList.Add(cmpMetadata); ProcessMetadata[] elementListMetadata = elemList[i].metadataList; //XmlNodeList elementListMetadata = elemList[i].ChildNodes; for (int j = 0; j < elementListMetadata.Length; j++) { Metadata metadata = new Metadata(); metadata.setKey(elementListMetadata[j].key); metadata.setDescription(elementListMetadata[j].description); //cmpMetadata.metadataList.Add(metadata); ProcessValue[] elementListValue = elementListMetadata[j].valueList; for (int k = 0; k < elementListValue.Length; k++) { Value value = new Value(); value.setValue(elementListValue[k].value); value.setDescription(elementListValue[k].description); value.setState(elementListValue[k].zidState); ProcessExtraData[] elementExtraData = elementListValue[k].listProcessExtraData; if (elementExtraData != null) { SimpleExtraDataManager simpleExtraData = new SimpleExtraDataManager(); simpleExtraData.setKey(elementExtraData[0].key); simpleExtraData.setValue(elementExtraData[0].value); value.listExtraData.Add(simpleExtraData); } metadata.valueList.Add(value); } cmpMetadata.metadataList.Add(metadata); } metadataSet.cmpMetadataList.Add(cmpMetadata); } /*XmlNodeList elemRuleSet = doc.GetElementsByTagName("RuleSet"); RuleSet ruleSet = new RuleSet(); for (int i = 0; i < elemRuleSet.Count; i++) { XmlNodeList elemRule = elemRuleSet[i].ChildNodes; for (int j = 0; j < elemRule.Count; j++) { Rule rule = new Rule(); rule.setkey(elemRule[j].Attributes["Key"].Value); rule.setValue(elemRule[j].Attributes["Value"].Value); ruleSet.ruleList.Add(rule); } mtdSet.ruleSetList.Add(ruleSet); }*/ return metadataSet; } catch (System.Exception ex) { XmlException myEx = new XmlException("Errore nell'interpretazione del messaggio"); throw myEx; } }
public MetadataSet parserMetadataSetFromXML(XmlDocument doc) { string pos = "MetadataParser.parserMetadataSetFromFileSystem"; log.Info(pos + "INIT"); MetadataSet mtdSet = null; try { mtdSet = new MetadataSet(); XmlNodeList elemList = doc.GetElementsByTagName("CompoundMetadata"); for (int i = 0; i < elemList.Count; i++) { CompoundMetadata cmpMetadata = new CompoundMetadata(); cmpMetadata.setKey(elemList[i].Attributes["Key"].Value); cmpMetadata.setDescription(elemList[i].Attributes["Description"].Value); // metadataSet.cmpMetadataList.Add(cmpMetadata); XmlNodeList elementListMetadata = elemList[i].ChildNodes; for (int j = 0; j < elementListMetadata.Count; j++) { Metadata metadata = new Metadata(); metadata.setKey(elementListMetadata[j].Attributes["Key"].Value); metadata.setDescription(elementListMetadata[j].Attributes["Description"].Value); //cmpMetadata.metadataList.Add(metadata); XmlNodeList elementListValue = elementListMetadata[j].ChildNodes; for (int k = 0; k < elementListValue.Count; k++) { Value value = new Value(); value.setValue(elementListValue[k].Attributes["value"].Value); value.setState(Convert.ToInt32(elementListValue[k].Attributes["state"].Value)); value.setDescription(elementListValue[k].Attributes["description"].Value); XmlNodeList elementExtraData = elementListValue[k].ChildNodes; if (elementExtraData.Count != 0) { SimpleExtraDataManager simpleExtraData = new SimpleExtraDataManager(); simpleExtraData.setKey(elementExtraData[0].Attributes["Key"].Value); simpleExtraData.setValue(elementExtraData[0].Attributes["Value"].Value); value.listExtraData.Add(simpleExtraData); } metadata.valueList.Add(value); } cmpMetadata.metadataList.Add(metadata); } mtdSet.cmpMetadataList.Add(cmpMetadata); } XmlNodeList elemRuleSet = doc.GetElementsByTagName("RuleSet"); RuleSet ruleSet = new RuleSet(); for (int i = 0; i < elemRuleSet.Count; i++) { XmlNodeList elemRule = elemRuleSet[i].ChildNodes; for (int j = 0; j < elemRule.Count; j++) { Rule rule = new Rule(); rule.setkey(elemRule[j].Attributes["Key"].Value); rule.setValue(elemRule[j].Attributes["Value"].Value); ruleSet.ruleList.Add(rule); } mtdSet.ruleSetList.Add(ruleSet); } } catch (System.Exception exep) { log.Error(pos + "Exception:" + exep.Message); log.Error(pos + "Exception:" + exep.StackTrace); XmlException myEx = new XmlException("Errore nell'interpretazione del messaggio:" + exep.Message); throw myEx; } log.Info(pos + "END"); return mtdSet; }
private void SaveToDisk(MetadataSet metadataSet) { string xml = metadataSet.convertToCompleteXml(); System.IO.File.WriteAllText(Constants.getMetadatasetFullName(), xml); }
/** * @param metadataSet rappresenta un oggetto di tipo MetadataSet.Ossia l'elenco * dei metadati appena scaricati dal servizio KPeople. * @param metadataSetFromDisk un oggetto di tipo MetadataSet contenente le informazioni * strutturate relative all'insieme dei metadati salvati sul File System. * Il metodo in questione verifica preliminarmente la presenza di matching tra i metadati del servizio * KPeople e quelli sul File System. Nel caso di match, preleva l'ExtraData associato a ciascun metadato * appartenente all'elenco dei metadati salvati su disco e lo aggiunge al corrispondente metadato * appartenente all'elenco dei metadati scaricati dal servizio */ private void compareValue(MetadataSet metadataset, MetadataSet metadataSetFromDisk, int iMetadataset, int jMetadataset, int aMetadataSetFromDisk, int bMetadataSetFromDisk) { Value value = new Value(); for (int i = 0; i < metadataset.cmpMetadataList[iMetadataset].metadataList[jMetadataset].valueList.Count; i++) { string valueKey = metadataset.cmpMetadataList[iMetadataset].metadataList[jMetadataset].valueList[i].getValue(); for (int j = 0; j < metadataSetFromDisk.cmpMetadataList[aMetadataSetFromDisk].metadataList[bMetadataSetFromDisk].valueList.Count; j++) { if (metadataSetFromDisk.cmpMetadataList[aMetadataSetFromDisk].metadataList[bMetadataSetFromDisk].valueList[j].getValue().Equals(valueKey)) { if (metadataSetFromDisk.cmpMetadataList[aMetadataSetFromDisk].metadataList[bMetadataSetFromDisk].valueList[j].listExtraData.Count != 0) { metadataset.cmpMetadataList[iMetadataset].metadataList[jMetadataset].valueList[i].listExtraData.Add( metadataSetFromDisk.cmpMetadataList[aMetadataSetFromDisk].metadataList[bMetadataSetFromDisk].valueList[j].listExtraData[0]); } } } } }
/** * @param metadataSet un oggetto di tipo MetadataSet contenente le informazioni * strutturate relative all'insieme dei metadati salvati sul File System. * @param metadataSetOriginal un oggetto di tipo MetadataSet contenente le informazioni * strutturate relative all'insieme dei metadati scaricati dal servizio KPeople */ public void updateExtraData(MetadataSet metadataSet, MetadataSet metadataSetOriginal) { ExtraDataManagerFactory factory = new ExtraDataManagerFactory(); IExtraDataManager iExtraDataManager = factory.createExtraDataManager(ExtraDataManagerType.SimpleExtraDataManager); metadataSet = iExtraDataManager.updateExtraData(metadataSet,metadataSetOriginal); SaveToDisk(metadataSet); }
/** * @param metadataSet rappresenta un oggetto di tipo MetadataSet.Ossia l'elenco * dei metadati appena scaricati dal servizio KPeople. * @return un oggetto di tipo MetadataSet contenente le informazioni * strutturate relative all'insieme dei metadati aggiornato. * Il metodo in questione effettua l'update dei metadati scaricati dal servizio e * ricevuti come parametro di input con quelli salvati sul file System. */ public MetadataSet updateAvailableMetadataSet(MetadataSet metadataSet) { MetadataSet metadataSetFromDisk = getMetadataSetFromFileSystem(); if (metadataSetFromDisk != null) { for (int i = 0; i < metadataSet.cmpMetadataList.Count; i++) { for (int j = 0; j < metadataSet.cmpMetadataList[i].metadataList.Count; j++) { string metadataKey = metadataSet.cmpMetadataList[i].metadataList[j].getKey(); for (int a = 0; a < metadataSetFromDisk.cmpMetadataList.Count; a++) { for (int b = 0; b < metadataSetFromDisk.cmpMetadataList[a].metadataList.Count; b++) { if (metadataSetFromDisk.cmpMetadataList[a].metadataList[b].getKey().Equals(metadataKey)) { compareValue(metadataSet, metadataSetFromDisk, i, j, a, b); } } } } } return metadataSet; } else { return metadataSet; } }
/** * @return un oggetto di tipo MetadataSet contenente le informazioni * strutturate relative all'insieme dei metadati salvati sul File System. * Il metodo, carica il file dal File System, se presente, contenente l'elenco * dei metadati. Dopo di che passa il file alla classe MetadataParser che * ne effettua il parser. */ public MetadataSet getMetadataSetFromFileSystem() { metadataSet = null; if (File.Exists(Constants.getMetadatasetFullName())) { docXml.Load(Constants.getMetadatasetFullName()); metadataParser = new MetadataParser(); metadataSet = metadataParser.parserMetadataSetFromXML(docXml); } return metadataSet; }
public void createDinamicallyRibbonFromMetadata(MetadataSet metadataSet) { int index = 0; for (int i = 0; i < metadataSet.cmpMetadataList.Count; i++) { CompoundMetadata comp = metadataSet.cmpMetadataList[i]; for (int j = 0; j < comp.metadataList.Count; j++) { Metadata metadata = comp.metadataList[j]; for (int z = 0; z < metadata.valueList.Count; z++) { Value val = metadata.valueList[z]; string groupName = "group" + index; string processKey = val.getValue(); string processDescription = val.getDescription(); RibbonGroup group = getRibbonGroup(groupName); RibbonLabel keyProcess = (RibbonLabel)group.Items[0]; RibbonLabel descriptionProcess = (RibbonLabel)group.Items[1]; keyProcess.Label = "Processo - " + processKey; descriptionProcess.Label = processDescription; group.Visible = true; index++; } } } }