示例#1
0
        public override object ConvertToStorageType(object value)
        {
            var model = value as ModelApplicationBase;

            if (model != null)
            {
                var writer = new ModelXmlWriter();
                var serializableDictionary = new SerializableDictionary <string, string>();
                serializableDictionary["aspects"] = string.Empty;
                for (int i = 0; i < model.AspectCount; ++i)
                {
                    var aspect = model.GetAspect(i);
                    if (string.IsNullOrEmpty(aspect) || aspect == CaptionHelper.DefaultLanguage)
                    {
                        serializableDictionary["DefaultAspect"] = writer.WriteToString(model, i);
                    }
                    else
                    {
                        serializableDictionary["aspects"] += aspect + ",";
                        serializableDictionary[aspect]     = writer.WriteToString(model, i);
                    }
                }

                serializableDictionary["aspects"] = serializableDictionary["aspects"].TrimEnd(',');

                var stringWriter = new StringWriter();
                serializableDictionary.WriteXml(new XmlTextWriter(stringWriter));
                return(stringWriter.GetStringBuilder().ToString());
            }

            return(null);
        }
示例#2
0
        public override object ConvertToStorageType(object value)
        {
            var model = value as ModelApplicationBase;
            if (model != null)
            {
                var writer = new ModelXmlWriter();
                var serializableDictionary = new SerializableDictionary<string, string>();
                serializableDictionary["aspects"] = string.Empty;
                for (int i = 0; i < model.AspectCount; ++i)
                {
                    var aspect = model.GetAspect(i);
                    if (string.IsNullOrEmpty(aspect) || aspect == CaptionHelper.DefaultLanguage){
                        serializableDictionary["DefaultAspect"] = writer.WriteToString(model, i);
                    }
                    else{
                        serializableDictionary["aspects"] += aspect + ",";
                        serializableDictionary[aspect] = writer.WriteToString(model, i);
                    }
                }

                serializableDictionary["aspects"] = serializableDictionary["aspects"].TrimEnd(',');

                var stringWriter = new StringWriter();
                serializableDictionary.WriteXml(new XmlTextWriter(stringWriter));
                return stringWriter.GetStringBuilder().ToString();
            }

            return null;
        }
 public static void ReadFromModel(this ModelXmlReader modelXmlReader, ModelApplicationBase modelNode,
                                   ModelApplicationBase readFrom, Func<string, bool> aspectNamePredicate) {
     for (int i = 0; i < readFrom.AspectCount; i++) {
         string aspect = readFrom.GetAspect(i);
         string xml = new ModelXmlWriter().WriteToString(readFrom, i);
         if (!(string.IsNullOrEmpty(xml)))
             new ModelXmlReader().ReadFromString(modelNode, aspect, xml);
     }
 }
示例#4
0
 public static void ReadFromModel(this ModelXmlReader modelXmlReader, ModelApplicationBase modelNode,
                                  ModelApplicationBase readFrom, Func <string, bool> aspectNamePredicate)
 {
     for (int i = 0; i < readFrom.AspectCount; i++)
     {
         string aspect = readFrom.GetAspect(i);
         string xml    = new ModelXmlWriter().WriteToString(readFrom, i);
         if (!(string.IsNullOrEmpty(xml)))
         {
             new ModelXmlReader().ReadFromString(modelNode, aspect, xml);
         }
     }
 }
示例#5
0
        public string Serialize(object model, ModelFormatting formatting)
        {
            using (var buffer = new MemoryStream(1024))
                using (var writer = new ModelXmlWriter(buffer, Encoding.UTF8, formatting))
                {
                    DataContractSerializer serializer = GetSerializerForType(model.GetType());

                    writer.WriteStartDocument();
                    serializer.WriteObject(writer, model);
                    writer.Flush();

                    return(Encoding.UTF8.GetString(buffer.ToArray()));
                }
        }
示例#6
0
        public static void ReadFromModel(this IModelNode modelNode, IModelNode readFrom)
        {
            var modelApplication = (ModelApplicationBase)readFrom.Application;

            for (var i = 0; i < modelApplication.AspectCount; i++)
            {
                var aspect = modelApplication.GetAspect(i);
                var xml    = new ModelXmlWriter().WriteToString(readFrom, i);
                if (!string.IsNullOrEmpty(xml))
                {
                    new ModelXmlReader().ReadFromString(modelNode, aspect, xml);
                }
            }
        }
示例#7
0
        public void CreateAspectsCore(ModelApplicationBase model)
        {
            var modelXmlWriter = new ModelXmlWriter();

            for (int i = 0; i < model.AspectCount; i++)
            {
                var    xml  = modelXmlWriter.WriteToString(model, i);
                string name = GetAspectName(model.GetAspect(i));
                AspectObjects.Filter = CriteriaOperator.Parse("Name=?", name);
                if (AspectObjects.Count == 0)
                {
                    AspectObjects.Add(new AspectObject(Session)
                    {
                        Name = name
                    });
                }

                AspectObjects[0].Xml = xml;
                AspectObjects.Filter = null;
            }
        }
示例#8
0
 private void SaveViewDifferences(ModelApplicationBase model)
 {
     if (SaveModelDifference.viewId != null)
     {
         var xml = new ModelXmlWriter().WriteToString(model, 0);
         var document = new XmlDocument();
         document.LoadXml(xml);
         var xpath = string.Format("/Application/Views/DetailView[@Id='{0}']", SaveModelDifference.viewId);
         var viewNode = document.SelectSingleNode(xpath);
         if (viewNode != null)
         {
             var settings = new XmlWriterSettings();
             settings.Indent = true;
             settings.OmitXmlDeclaration = true;
             var stringBuilder = new System.Text.StringBuilder();
             using (var writer = XmlWriter.Create(stringBuilder, settings))
             {
                 viewNode.WriteTo(writer);
             }
             SaveModelDifference.viewXml = stringBuilder.ToString();
         }
     }
 }
        public void CreateAspectsCore(ModelApplicationBase model) {
            var modelXmlWriter = new ModelXmlWriter();
            for (int i = 0; i < model.AspectCount; i++) {
                var xml = modelXmlWriter.WriteToString(model, i);
                string name = GetAspectName(model.GetAspect(i));
                AspectObjects.Filter = CriteriaOperator.Parse("Name=?", name);
                if (AspectObjects.Count == 0)
                    AspectObjects.Add(new AspectObject(Session) { Name = name });

                AspectObjects[0].Xml = xml;
                AspectObjects.Filter = null;
            }
        }
        private void CreateTestAction()
        {
            SimpleAction action2 = new SimpleAction()
            {
                Id = "FIRST_LAUNCH_IMITATION_2",
                Caption = "FIRST_LAUNCH_IMITATION_2",
                Category = "Tools",//ToolBarCustomizer.MainNavigationObjectsContainerId,
                ImageName = "Unknown"

            };

            action2.Execute += (sender, e) =>
                {
                    //ModelXmlReader reader = new ModelXmlReader();
                    //IModelNode model =new Model
                    //reader.ReadFromString(model, "", "" );

                    ModelXmlWriter writer = new ModelXmlWriter();
                    writer.WriteToFile(Application.Model, 0, "d:\\merge\\test.xml", Encoding.UTF8);
                };

            Actions.Add(action2);

            SimpleAction action = new SimpleAction()
            {
                Id = "FIRST_LAUNCH_IMITATION",
                Caption = "FIRST_LAUNCH_IMITATION",
                Category = "Tools",//ToolBarCustomizer.MainNavigationObjectsContainerId,
                ImageName="Unknown"

            };

            action.Execute += (sender, e) =>
            {
                //DialogResult result = XtraMessageBox.Show("ƒанные организации не заполнены! ѕерейти на форму заполнени¤?", "¬нимание",
                //    MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                //if (result == DialogResult.Yes)
                //{
                    var objectSpace = Application.CreateObjectSpace();

                    IFirstLaunchParameters parameters = FirstLaunchParametersLogic.GetInstance(objectSpace);
                    ShowViewParameters svp = new ShowViewParameters()
                    {
                        CreateAllControllers = true,
                        CreatedView = Application.CreateDetailView(objectSpace, parameters)
                    };

                    //svp.Context = TemplateContext.PopupWindow;
                    //svp.TargetWindow = TargetWindow.NewModalWindow;

                    DialogController dialog = Application.CreateController<DialogController>();
                    dialog.CancelAction.Active.SetItemValue("FirstLaunchParametersLogic_CancelAction_Deactivated", false);
                    dialog.Accepting+= (o,a) =>
                    {
                        objectSpace.CommitChanges();
                        //a.AcceptActionArgs.ShowViewParameters.CreatedView.ObjectSpace.CommitChanges(); //ShowViewParameters.CreatedView.ObjectSpace.CommitChanges();
                    };
                    //dialog.SaveOnAccept = false;
                    //dialog.AcceptAction.ActionMeaning = ActionMeaning.Accept;

                    //WinDetailViewController confirmation = Application.CreateController<WinDetailViewController>();
                    //confirmation.SuppressConfirmation = true;

                    //svp.Controllers.Add(confirmation);
                    svp.Controllers.Add(dialog);

                    svp.CreatedView.Closed += (o, a) =>
                    {
                        if (windowTemplateController != null)
                            windowTemplateController.UpdateWindowCaption();
                    };

                    Application.ShowViewStrategy.ShowView(svp, new ShowViewSource(null, null));

                //}

            };

            Actions.Add(action);
        }