コード例 #1
0
ファイル: MainForm.cs プロジェクト: j-prox/blueprint41
        void AddNewEntitiesToSubModel(string submodelName)
        {
            Submodel subModel = Model.Submodels.Submodel.FirstOrDefault(submodel => submodel.Name == submodelName);

            if (subModel == null)
            {
                throw new ArgumentNullException($"Submodel '{submodelName}' does not exist in the current model.");
            }

            IEnumerable <string> mainModelNodeLabels = subModel.Node.Select(node => node.Label).OrderBy(label => label);
            IEnumerable <string> entityLabels        = Model.Entities.Entity.Select(entity => entity.Label).OrderBy(label => label);

            List <Entity> entitiesToAddToMainModel = new List <Entity>();

            foreach (var entityLabel in entityLabels.Except(mainModelNodeLabels))
            {
                entitiesToAddToMainModel.Add(Model.Entities.Entity.FirstOrDefault(label => label.Label == entityLabel));
            }

            subModel.AddEntities(entitiesToAddToMainModel, 0, 0);

            Model.CaptureCoordinates();

            if (this.entityEditor.IsEditable)
            {
                entityEditor.Reload();
            }
        }
コード例 #2
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            Submodel.Name         = txtName.Text;
            Submodel.Chapter      = numericChapter.Value == 0 ? null : (int?)numericChapter.Value;
            Submodel.IsDraft      = chkIsDraft.Checked;
            Submodel.IsLaboratory = chkIsLaboratory.Checked;
            Submodel.Explaination = ToXmlEscape(hteExplaination.GetHTMLAsText());

            foreach (Submodel.NodeLocalType node in Submodel.Node.Where(item => !lbExisting.Items.Contains(item.Label)).ToList())
            {
                Submodel.Node.Remove(node);
            }

            foreach (string item in lbExisting.Items.Cast <string>().Where(item => !Submodel.Node.Any(node => node.Label == item)).ToList())
            {
                Submodel.AddEntities(Submodel.Model.Entities.Entity.Where(entity => entity.Label == item).ToList(), 0, 0);
            }

            DialogResult = DialogResult.OK;
            Close();
        }