private IDirectAccessIterator<IdentificationUnit> _identificationUnitIterator; //Dieser iteriert im Gegensatz zu den anderen KLassen in Datamanagement nur auf dem TopLevel #endregion Fields #region Constructors internal IdentificationUnits(CollectionSpecimen cs) { if (cs != null) { this._collectionSpecimen = cs; _identificationUnitIterator = cs.IdentificationUnits; _identificationUnitIterator.Reset(); this._currentIdentificationUnit = _identificationUnitIterator.First(); if (this._currentIdentificationUnit != null) { while (this._currentIdentificationUnit.RelatedUnitID != null) { try { this._currentIdentificationUnit = this.Next; } catch (DataFunctionsException) { this._currentIdentificationUnit = null; } } } //this._identificationUnitBrotherIterator = this._identificationUnitIterator; } }
public SpecimenEditForm(CollectionSpecimen currentSpecimen) : this(true) { if (currentSpecimen != null) { this._specimen = currentSpecimen; //tabPage Specimen füllen und anzeigen Cursor.Current = Cursors.WaitCursor; this.fillSpecimenData(); Cursor.Current = Cursors.Default; } else this.Close(); }
public void Remove(CollectionSpecimen collectionSpecimen) { if (collectionSpecimen != null) { try { //// Remove Collection Specimen Attributs //foreach (CollectionAgent agent in DataFunctions.Instance.RetrieveAgentForCollectionSpecimen((int)collectionSpecimen.CollectionSpecimenID)) //{ // if (agent != null) // { // try // { // DataFunctions.Instance.Remove(agent); // } // catch (DataFunctionsException ex) // { // throw ex; // } // } //} // Remove all CollectionSpecimenImages assigned to CollectionSpecimen IList<CollectionSpecimenImage> csImgList; IRestriction restrict; try { restrict = RestrictionFactory.Eq(typeof(CollectionSpecimenImage), "_CollectionSpecimenID", collectionSpecimen.CollectionSpecimenID); csImgList = con.LoadList<CollectionSpecimenImage>(restrict); } catch (Exception) { throw new DataFunctionsException("List of assigned images couldn't be loaded."); } foreach (CollectionSpecimenImage csImgTemp in csImgList) { if (csImgTemp != null) { try { DataFunctions.Instance.Remove(csImgTemp); } catch (DataFunctionsException ex) { throw ex; } } } // Remove all IdentificationUnit assigned to CollectionSpecimen //IList<IdentificationUnit> iuList; //try //{ // restrict = RestrictionFactory.Eq(typeof(IdentificationUnit), "_CollectionSpecimenID", collectionSpecimen.CollectionSpecimenID); // iuList = con.LoadList<IdentificationUnit>(restrict); //} //catch (Exception) //{ // throw new DataFunctionsException("List of associated Identification Units couldn't be loaded."); //} //foreach (IdentificationUnit iuTemp in iuList) //{ // if (iuTemp != null) // { // try // { // DataFunctions.Instance.Remove(iuTemp); // } // catch (DataFunctionsException ex) // { // throw ex; // } // } //} //Remove all CollectionProjects assigned to CollectionSpecimen //IList<CollectionProject> projList; //try //{ // restrict = RestrictionFactory.Eq(typeof(CollectionProject), "_CollectionSpecimenID", collectionSpecimen.CollectionSpecimenID); // projList = con.LoadList<CollectionProject>(restrict); //} //catch (Exception) //{ // throw new DataFunctionsException("List of associated Identification Units couldn't be loaded."); //} //foreach (CollectionProject projTemp in projList) //{ // if (projTemp != null) // { // try // { // DataFunctions.Instance.Remove(projTemp); // } // catch (DataFunctionsException ex) // { // throw ex; // } // } //} try { con.Delete(collectionSpecimen); } catch (Exception) { throw new DataFunctionsException("Object (CollectionSpecimen) couldn't be removed."); } try { if (!this.HasNext) { if (this.HasPrevious) { this.Current = this.Previous; } else { this.Current = this.First; } } else { this.Current = this.Next; } } catch (DataFunctionsException ex) { throw ex; } } catch (ConnectionCorruptedException ex) { throw ex; } } }
public CollectionSpecimen CreateSpecimen() { CollectionSpecimen cs = null; try { cs = SERIALIZER.CreateISerializableObject<CollectionSpecimen>(); SERIALIZER.ConnectOneToMany(_parent, cs); cs.CollectionEventID = _parent.CollectionEventID; con.Save(cs); } catch (Exception) { throw new DataFunctionsException("New Specimen couldn't be created."); } try { if (UserProfiles.Instance.Current != null) { try { CollectionAgent agent = SERIALIZER.CreateISerializableObject<CollectionAgent>(); SERIALIZER.ConnectOneToMany(cs, agent); agent.CollectionSpecimenID = cs.CollectionSpecimenID; agent.CollectorsName = UserProfiles.Instance.Current.CombinedNameCache; if (UserProfiles.Instance.Current.AgentURI != null) { agent.CollectorsAgentURI = UserProfiles.Instance.Current.AgentURI; } con.Save(agent); } catch (Exception) { throw new DataFunctionsException("Associated Agent of new Specimen couldn't be created."); } try { CollectionProject csProject = SERIALIZER.CreateISerializableObject<CollectionProject>(); csProject.CollectionSpecimenID = cs.CollectionSpecimenID; csProject.ProjectID = (int)UserProfiles.Instance.Current.ProjectID; con.Save(csProject); } catch (Exception) { throw new DataFunctionsException("Associated Project of new Specimen couldn't be created."); } } } catch (ConnectionCorruptedException) { } this._currentSpecimen = this._csIterator.Last(); return cs; }
public SpecimenVM(CollectionSpecimen spec) : base(spec) { }
public int? RetrieveMaxDisplayOrderSpecimen(CollectionSpecimen cs) { int? max = 0; String where = "CollectionSpecimenID"; String s = null; try { IList<String> t = con.selectWhatFromWhere<String>("MAX(DisplayOrder)", "IdentificationUnit", where, cs.CollectionSpecimenID.ToString()); if (t.Count == 0) return 0; s = t[0]; max = Int32.Parse(s); } catch (Exception) { return -1; } return max; }
public IdentificationUnitGeoAnalysis CreateIdentificationUnitGeoAnalysis(IdentificationUnit iu, CollectionSpecimen cs) { try { IdentificationUnitGeoAnalysis iuGeoAnalysis = SERIALIZER.CreateISerializableObject<IdentificationUnitGeoAnalysis>(); SERIALIZER.ConnectOneToMany(iu, iuGeoAnalysis); iuGeoAnalysis.IdentificationUnitID = iu.IdentificationUnitID; iuGeoAnalysis.CollectionSpecimenID = cs.CollectionSpecimenID; try { if (UserProfiles.Instance.Current != null) { iuGeoAnalysis.ResponsibleName = UserProfiles.Instance.Current.CombinedNameCache; if (UserProfiles.Instance.Current.AgentURI != null) iuGeoAnalysis.ResponsibleAgentURI = UserProfiles.Instance.Current.AgentURI; } } catch (ConnectionCorruptedException) { } con.Save(iuGeoAnalysis); return iuGeoAnalysis; } catch (Exception) { throw new DataFunctionsException("New IdentificationUnit GeoAnalysis couldn't be created."); } }
public NewIdentificationUnitDialog(CollectionSpecimen spec, IdentificationUnit parentUnit, IdentificationUnits ius) : this(spec, ius) { try { this.parent = parentUnit; if (this.parent != null) { this.comboBoxTaxonomicGroup.SelectedItem = this._taxGroup = parent.TaxonomicGroup; if (parent.LastIdentificationCache != null) { this.comboBoxIdentification.Items.Add(parent.LastIdentificationCache); this.comboBoxIdentification.SelectedItem = this._lastIdentification = parent.LastIdentificationCache; TaxonNames taxparent = DataFunctions.Instance.RetrieveTaxon(parent.LastIdentificationCache, parent.TaxonomicGroup); if (taxparent != null) tax = taxparent; else tax.TaxonNameCache = parent.LastIdentificationCache; setSynonym(tax); } } fillRelationList(); this.comboBoxRelation.Enabled = true; short order = (short)DataFunctions.Instance.RetrieveMaxDisplayOrderCollectionSpecimenIdentificationUnit(spec); if (order > 0) this.displayOrder = (short)(order + 1); else this.displayOrder = 1; this.buttonOk.Enabled = this.setOkButton(); this.buttonNewAnalysis.Enabled = this.setOkButton(); } catch (ConnectionCorruptedException ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); this.Close(); } }
public NewIdentificationUnitDialog(CollectionSpecimen spec, IdentificationUnits ius) : this(true) { if (ius != null && spec != null) { this.cs = spec; this._ius = ius; this.comboBoxTaxonomicGroup_TextChanged(null, null); this.parent = null; try { tax = DataFunctions.Instance.CreateTaxonNames(); this.buttonOk.Enabled = false; this.buttonNewAnalysis.Enabled = false; this.comboBoxRelation.Enabled = false; this.fillTaxonomicGroupList(); if (this.comboBoxTaxonomicGroup.Items.Count > 0) { this.comboBoxTaxonomicGroup.SelectedItem = this.comboBoxTaxonomicGroup.Items[0]; } // Liste aller IdentificationUnits des aktuellen Specimen, um DiplayOrder zu finden short order = (short)DataFunctions.Instance.RetrieveMaxDisplayOrderCollectionSpecimenIdentificationUnit(spec); if (order > 0) this.displayOrder = (short)(order + 1); else this.displayOrder = 1; } catch (ConnectionCorruptedException ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); this.Close(); } } else this.Close(); }
/// <summary> /// Displays a specimen (does not check whether the passed on parameter is valid). /// </summary> /// <param name="specimen">The current specimen.</param> /// <returns></returns> /// private void displaySpecimen(CollectionSpecimen spec) { if (spec != null) { Cursor.Current = Cursors.WaitCursor; this.treeViewFieldData.BeginUpdate(); this.treeViewFieldData.SuspendLayout(); TreeNode parent = treeViewFieldData.SelectedNode.Parent; TreeNode node = treeViewFieldData.SelectedNode; try { treeViewFieldData.SelectedNode = null; TreeNode specNode = new TreeNode(); IList<TreeNode> removeNodes = new List<TreeNode>(); int i = 0; if (this._tvOperations.expandLvl <= ExpandLevel.Event) { removeNodes.Add(node); i = node.Index; } else { foreach (TreeNode tn in parent.Nodes) { TreeViewNodeData td = tn.Tag as TreeViewNodeData; if (td.NodeType == TreeViewNodeTypes.SpecimenNode) removeNodes.Add(tn); else i++; } } specNode = _tvOperations.displaySpecimen(spec); foreach (TreeNode rem in removeNodes) { parent.Nodes.Remove(rem); } parent.Nodes.Insert(i, specNode); this.treeViewFieldData.SelectedNode = specNode; this._expandTrigger = false; if (this._tvOperations.expandLvl <= ExpandLevel.Specimen) specNode.ExpandAll(); else specNode.Expand(); this._expandTrigger = true; this._actualLvl = TreeViewNodeTypes.SpecimenNode; this.enableDisableButtons(TreeViewNodeTypes.SpecimenNode); } catch (Exception ex) { this.treeViewFieldData.SelectedNode = parent; afterSelect(parent); this.treeViewFieldData.EndUpdate(); this.treeViewFieldData.ResumeLayout(); this.treeViewFieldData.Refresh(); Cursor.Current = Cursors.Default; MessageBox.Show("DisplayError: " + ex.Message); return; } this.treeViewFieldData.ResumeLayout(); this.treeViewFieldData.EndUpdate(); this.treeViewFieldData.Refresh(); Cursor.Current = Cursors.Default; } }
public TreeNode displayTopDownSpecimen(CollectionSpecimen spec) { TreeNode specimenNode = new TreeNode(); if (spec != null) { parametrizeOnlySpecimenNode(spec, specimenNode); IDirectAccessIterator<IdentificationUnit> ius = spec.IdentificationUnits; if (ius.First() != null) { IdentificationUnit iu = ius.First(); if (iu.RelatedUnit == null) specimenNode.Nodes.Add(displayTopDownIdentificationUnit(iu)); while (ius.HasNext()) { IdentificationUnit next = ius.Next(); if (next.RelatedUnit == null) specimenNode.Nodes.Add(displayTopDownIdentificationUnit(next)); } } } return specimenNode; }
public TreeNode displaySpecimen(CollectionSpecimen spec) { TreeNode specNode = new TreeNode(); if (spec != null) { if (expandLvl <= ExpandLevel.Specimen) { specNode = displayTopDownSpecimen(spec); } else { parametrizeOnlySpecimenNode(spec, specNode); if (spec.IdentificationUnits.First() != null) { IdentificationUnit first = spec.IdentificationUnits.First(); if (first.RelatedUnit == null) { TreeNode iuNode = new TreeNode(); parametrizeIUNode(first, iuNode); if (first.ChildUnits.First() != null) iuNode.Nodes.Insert(0, new TreeNode()); specNode.Nodes.Add(iuNode); while (spec.IdentificationUnits.HasNext()) { IdentificationUnit next = spec.IdentificationUnits.Next(); if (next.RelatedUnit == null) { TreeNode nextNode = new TreeNode(); parametrizeIUNode(next, nextNode); if (next.ChildUnits.First() != null) nextNode.Nodes.Insert(0, new TreeNode()); specNode.Nodes.Add(nextNode); } } } } } } return specNode; }
public TreeNode displayBottomUpSpecimen(CollectionSpecimen specimen, TreeNode childNode) { TreeNode specNode = new TreeNode(); TreeNode subRootNode = null; if (specimen != null) { parametrizeOnlySpecimenNode(specimen, specNode); if(childNode != null) specNode.Nodes.Add(childNode); CollectionEvent ev = specimen.CollectionEvent; if (ev != null) { subRootNode = displayBottomUpEvent(ev, specNode); return subRootNode; } } return specNode; }
public void parametrizeSpecimenNode(CollectionSpecimen spec, TreeNode specimenNode, List<ISerializableObject> list) { if (spec != null && specimenNode != null) { parametrizeOnlySpecimenNode(spec, specimenNode); foreach (ISerializableObject iso in list) { if (iso != null) { if (iso.GetType().Equals(typeof(CollectionAgent))) { CollectionAgent agent = (CollectionAgent)iso; if (agent.CollectionSpecimenID == spec.CollectionSpecimenID) { TreeNode agentNode = new TreeNode(); parameterizeCollectionAgentNode(agent, agentNode); specimenNode.Nodes.Add(agentNode); } } } } } }
//Agents werden nicht maehr angezeigt=>Abandoned public void parametrizeSpecimenNode(CollectionSpecimen spec, TreeNode specimenNode) { if (spec != null && specimenNode != null) { parametrizeOnlySpecimenNode(spec, specimenNode); IDirectAccessIterator<CollectionAgent> agents = spec.CollectionAgent; if (agents.First() != null) { CollectionAgent agent = agents.First(); TreeNode agentNode = new TreeNode(); parameterizeCollectionAgentNode(agent, agentNode); specimenNode.Nodes.Add(agentNode); while (agents.HasNext()) { CollectionAgent next = agents.Next(); agentNode = new TreeNode(); parameterizeCollectionAgentNode(agent, agentNode); specimenNode.Nodes.Add(agentNode); } } } }
public void parametrizeOnlySpecimenNode(CollectionSpecimen spec, TreeNode specimenNode) { if (spec != null && specimenNode != null) { if (spec.AccessionNumber != null && !spec.AccessionNumber.Equals(String.Empty)) specimenNode.Text = spec.AccessionNumber; if (specimenNode.Text == null || specimenNode.Text == String.Empty) specimenNode.Text = " "; specimenNode.ImageIndex = (int)TreeViewIconIndex.Specimen; specimenNode.SelectedImageIndex = (int)TreeViewIconIndex.SpecimenRed; specimenNode.Tag = new TreeViewNodeData((int)spec.CollectionSpecimenID, TreeViewNodeTypes.SpecimenNode); if(this.expandLvl==ExpandLevel.Specimen) specimenNode.BackColor = System.Drawing.Color.BlanchedAlmond; } }