コード例 #1
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
 /**
  * @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;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 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;
 }
コード例 #4
0
 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();
 }
コード例 #5
0
ファイル: MetadataParser.cs プロジェクト: webscience/K-people
        /* 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;
            }
        }
コード例 #6
0
ファイル: MetadataParser.cs プロジェクト: webscience/K-people
        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;
        }
コード例 #7
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
 private void SaveToDisk(MetadataSet metadataSet)
 {
     string xml = metadataSet.convertToCompleteXml();
     System.IO.File.WriteAllText(Constants.getMetadatasetFullName(), xml);
 }
コード例 #8
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
 /**
  * @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]);
                 }
             }
         }
     }
 }
コード例 #9
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
 /**
  * @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);
 }
コード例 #10
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
        /**
         * @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;
            }
        }
コード例 #11
0
ファイル: Cachemanager.cs プロジェクト: webscience/K-people
        /**
         * @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;
        }
コード例 #12
0
        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++;
                    }
                }
            }

        }