/// <summary> /// Sincronizza i valori dei campi del Controllo con i valori della classe dell'oggetto del DB /// In caso di passaggio dati verso il database ( false ) restituisce false se i campi obbligatori non sono valorizzati /// </summary> /// <param name="storage">classe oggetto del db</param> /// <param name="fromStorage">true o false per la direzione del sincronismo dati</param> /// <returns>bool</returns> private bool SyncroMemoryDB(StorageRule storageRule, Boolean fromStorage) { Boolean campiRequiredPopolati = false; if (fromStorage) { // Popolo i controlli dai valori ottenuti dalla classe dell'oggetto DB if (storageRule.Attribute != null) { cbArchive.SelectedValue = storageRule.Attribute.Archive.IdArchive; cbAttribute.DataSource = attributes.Where(x => x.Archive.IdArchive == (Guid)cbArchive.SelectedValue).ToList(); cbAttribute.SelectedItem = storageRule.Attribute; } txtOrder.Text = Convert.ToString(storageRule.RuleOrder); txtFilter.Text = storageRule.RuleFilter; txtFormat.Text = storageRule.RuleFormat; cbRuleOperators.SelectedItem = storageRule.RuleOperator; campiRequiredPopolati = true; } else { // Qui controllo che i campi obbligatori siano valorizzati if (String.IsNullOrEmpty(txtFilter.Text) || String.IsNullOrEmpty(txtOrder.Text) || cbAttribute.SelectedValue == null) { campiRequiredPopolati = false; } else { // Popolo la classe dell'oggetto DB col valore dei controlli storageRule.Storage = storage; storageRule.Attribute = (BiblosDs.Document.AdminCentral.ServiceReferenceAdministration.Attribute)cbAttribute.SelectedItem; storageRule.RuleOrder = (short)txtOrder.Value; storageRule.RuleFilter = txtFilter.Text; storageRule.RuleFormat = txtFormat.Text; storageRule.RuleOperator = (RuleOperator)cbRuleOperators.SelectedItem; campiRequiredPopolati = true; } } return(campiRequiredPopolati); }
private void AssignAttributes(BindingList <BiblosDs.Document.AdminCentral.ServiceReferenceAdministration.Attribute> attribs) { attributes = attribs; ServiceReferenceAdministration.Attribute attr = attributes.First(); cbAttribute.DataSource = attributes; cbAttribute.Text = attr.Name; cbAttribute.SelectedItem = attr; cbRuleOperators.SelectedIndex = 0; if (InputParameters["Action"].ToString().ToLower() == "modify") { storageRule = Client.GetStorageRule(currentIdStorage, attr.IdAttribute); txtFilter.Text = storageRule.RuleFilter; txtFormat.Text = storageRule.RuleFormat; txtOrder.Value = storageRule.RuleOrder; cbRuleOperators.SelectedItem = storageRule.RuleOperator; cbRuleOperators.Text = storageRule.RuleOperator.Descrizione; } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { this.currentIdStorage = (Guid)InputParameters["IdStorage"]; switch (InputParameters["Action"].ToString().ToLower()) { case "addnew": // In inserimento creo uno storage vuoto //(DocumentArchive)e.Argument = new DocumentArchive(); storageRule = new StorageRule(); if (InputParameters["IdArchive"].ToString() != String.Empty) { attributes = Client.GetAttributesFromArchive((Guid)InputParameters["IdArchive"]); } break; case "modify": // Se sto modificando carico i dati da modificare storageRule = Client.GetStorageRule(this.currentIdStorage, (Guid)InputParameters["IdAttribute"]); //attributes = Client.GetAttributesFromArchive((Guid)InputParameters["IdArchive"]); break; } archives = Client.GetArchivesFromStorage(this.currentIdStorage); if (archives.Count <= 0) { RadMessageBox.Show("No archives associated with this storage.", "Error", MessageBoxButtons.OK, RadMessageIcon.Error); BackToSenderControl(null, null); } ruleOperators = Client.GetRuleOperators(); storage = Client.GetStorage(this.currentIdStorage); if (InputParameters["Action"].ToString().ToLower() == "modify") { BindingList <StorageRule> rules; this.attributes = new BindingList <ServiceReferenceAdministration.Attribute>(); bool foundedSomething = false, invalidArchive; Archive arc; for (int i = 0; i < archives.Count; i++) { arc = archives[i]; invalidArchive = true; rules = Client.GetStorageRules(this.currentIdStorage, arc.IdArchive); this.archiveAtributes.Add(arc.IdArchive, new BindingList <ServiceReferenceAdministration.Attribute>()); foreach (StorageRule r in rules) { if (r.Attribute != null && (!r.Attribute.IsVisible.HasValue || r.Attribute.IsVisible.Value)) { r.Attribute.Archive = arc; this.archiveAtributes[arc.IdArchive].Add(r.Attribute); this.attributes.Add(r.Attribute); foundedSomething = true; invalidArchive = false; } } if (invalidArchive) { this.archives.RemoveAt(i--); } } if (!foundedSomething) { RadMessageBox.Show("No Archives or Attributes was founded valid for this operation.", "Error", MessageBoxButtons.OK, RadMessageIcon.Error); BackToSenderControl(null, null); } } }