public void Save()
        {
            foreach (var Item in DAL.DAL.GetAllEntitySet())
            {
                IDataSourceManager DomainDataSourceManager = new RadGridDataFormDomainDataSourceManager((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName);
                TelerikGrid        tg = new TelerikGrid((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName, (Item as EntitySet).EntityMetaData, ref DomainDataSourceManager);
                tg.CreateGridFromMetaData();
                string GridVisibilityBind = string.Empty;
                GridVisibilityBind = string.Format(GridColumnVisibilityBindingTemplate, tg.GridName);
                TelerikDataForm dft = new TelerikDataForm((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName, (Item as EntitySet).EntityMetaData, ref DomainDataSourceManager);
                dft.CreateDataFormFromMetaData();

                string       DataSourceAction = string.Format(ActionEvent, tg.DataSourceName, tg.GridName, (Item as EntitySet).EntityTypeName);
                StreamWriter outfile          = new StreamWriter(new FileStream(GlobalGeneratorSettings.SavePath + (Item as EntitySet).EntityTypeName + formPostFixName, FileMode.Create), Encoding.UTF8);
                string       NameSpace        = DomainDataSourceManager.GetDataSourceNameSpace();
                string       gridxaml         = DomainDataSourceManager.GetDataSourceXaml() + tg.XamlCode;

                string dataformXaml = dft.XamlCode;

                outfile.Write(string.Format(templateNew, GlobalGeneratorSettings.SilverlightProjectName, (Item as EntitySet).EntityTypeName + classPostFixName, NameSpace, gridxaml, dataformXaml));
                outfile.Flush();

                outfile = new StreamWriter(new FileStream(GlobalGeneratorSettings.SavePath + (Item as EntitySet).EntityTypeName + formPostFixName + ".cs", FileMode.Create), Encoding.UTF8);
                outfile.Write(string.Format(CodeBehind, GlobalGeneratorSettings.SilverlightProjectName, (Item as EntitySet).EntityTypeName + classPostFixName, OnNavigatedToTemplate + DataSourceAction + dft.CodeBehindMethods, GridVisibilityBind));
                outfile.Flush();
                //Console.WriteLine(DomainDataSourceManager.GetDataSourceXaml() + tg.XamlCode + dft.XamlCode);
                //--- save these 3 objects xamls to files.
            }
        }
示例#2
0
        public void Save()
        {
            foreach (var Item in DAL.DAL.GetAllEntitySet())
            {
                #region foreach loop
                IDataSourceManager DomainDataSourceManager = new MasterDetails2RadDomainDataSource((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName);
                //Dictionary<IDataSourceManager,MasterDetailsForm2RadGrid> DetailsGrids
                MasterDetailsForm2RadGrid tg = new MasterDetailsForm2RadGrid((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName, (Item as EntitySet).EntityMetaData, ref DomainDataSourceManager);
                tg.CreateGridFromMetaData();



                //masterform name = MasterEntityType+MasterPostFix+formPostfix
                //detailsform name = MasterEntityType+DetailEntitytype+DetailsPostFix+formPostfix
                string MasterFormName  = (Item as EntitySet).EntityTypeName + masterPostFix + formPostFixName;
                string MasterClassName = (Item as EntitySet).EntityTypeName + masterPostFix + classPostFixName;
                //
                //
                // StreamWriter sw = new StreamWriter(GlobalGeneratorSettings.SavePath + formPostFixName);
                // Read the master xaml here
                // Read the datasource for master from domain datasource manager
                //

                if (!tg.NeedDetailsGrid)
                {
                    continue;
                }

                //---- Master grid-----//
                //---- Master DataForm----//
                //---- ignore TempManager----//

                IDataSourceManager TempManager    = new RadGridDataFormDomainDataSourceManager((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName);
                TelerikDataForm2   masterDataform = new TelerikDataForm2((Item as EntitySet).EntityTypeName, (Item as EntitySet).EntitySetName, (Item as EntitySet).EntityMetaData, ref TempManager);
                masterDataform.DataSourceName = tg.DataSourceName;
                masterDataform.CreateDataFormFromMetaData();

                //
                // Read the Master DataForm Xaml Here
                //
                //
                string MasterGridVisibilityBind = string.Format(GridColumnVisibilityBindingTemplate, tg.GridName);

                //DomainDataSourceManager.SetMasterEntitySetTypeName((Item as EntitySet).EntityTypeName);

                /*
                 * Debuging 1
                 * IDataSourceManager detailsDataSource = new MasterDetails2RadDomainDataSource(null, null);
                 * initializing of this object moved inside the next loop,
                 * Cause: Error in generating OnNavigatedTo Events for childs entities.
                 */
                IDataSourceManager detailsDataSource;

                var       ChildEntitySets = DAL.DAL.GetChildEntitySet(Item as EntitySet);
                ArrayList buttionAction   = new ArrayList();
                int       buttonCount     = 0;
                foreach (var ChildEntity in ChildEntitySets)
                {
                    /*
                     * Debuging 1
                     *  Initializing of the detailsDataSource moved inside this loop
                     */
                    detailsDataSource = new MasterDetails2RadDomainDataSource(null, null);


                    #region inner foreach loop
                    EntitySet ChildEntitySet = ChildEntity as EntitySet;
                    detailsDataSource.UpdateEntityInfo(ChildEntitySet.EntityTypeName, ChildEntitySet.EntitySetName);
                    detailsDataSource.SetMasterEntitySetTypeName((Item as EntitySet).EntityTypeName);
                    buttonCount++;

                    //int ForeignEntity_id=GetForeignEntityId(Item, ChildEntity);
                    //string ForeignEntity = GetForeignEntityTypeName(ForeignEntity_id);

                    string Key = string.Empty;
                    foreach (var ent in (Item as EntitySet).EntityMetaData)
                    {
                        if (ent.IsKey == true)
                        {
                            Key = ent.PropertyName;
                        }
                    }

                    /*
                     * " private void Button{0}_Click(object sender, System.Windows.RoutedEventArgs e)\n"+
                     * "{{\n"+
                     * "var res = this.{1}.DataView.CurrentItem as {2};\n"+
                     *
                     * "NavigationService.Navigate(new Uri(\"{3}?{4}=\" + {5},\n"+
                     * "UriKind.Relative));\n"+
                     *
                     * "}}\n";
                     *
                     */

                    //detailsform name = MasterEntityType+DetailEntitytype+DetailsPostFix+formPostfix
                    string DetailsFormName  = (Item as EntitySet).EntityTypeName + ChildEntity.EntityTypeName + detailsPostFix + formPostFixName;
                    string DetailsClassName = (Item as EntitySet).EntityTypeName + ChildEntity.EntityTypeName + detailsPostFix + classPostFixName;
                    //


//                    if(DetailsFormName !=



                    string ButtonAction = string.Format(NavigationButtonEvent, buttonCount, tg.DataSourceName, (Item as EntitySet).EntityTypeName, DetailsClassName, Key, "res." + Key);
                    buttionAction.Add(ButtonAction);


                    MasterDetailsForm2RadGrid dtg = new MasterDetailsForm2RadGrid(ChildEntitySet.EntityTypeName, ChildEntitySet.EntitySetName, ChildEntitySet.EntityMetaData, ref detailsDataSource, MasterDetailsForm2RadGrid.GridTypes.Details, tg.GridName, tg.ChildBindingPath, tg.ParameterName);
                    dtg.CreateGridFromMetaData();
                    //-- Ignore Temp Manager
                    IDataSourceManager tempManager    = new RadGridDataFormDomainDataSourceManager((ChildEntity as EntitySet).EntityTypeName, (ChildEntity as EntitySet).EntitySetName);
                    TelerikDataForm2   detailDataform = new TelerikDataForm2((ChildEntity as EntitySet).EntityTypeName, (ChildEntity as EntitySet).EntitySetName, (ChildEntity as EntitySet).EntityMetaData, ref tempManager);
                    detailDataform.DataSourceName = dtg.DataSourceName;
                    detailDataform.CreateDataFormFromMetaData();



                    string DetailsGridVisibilityBind = string.Format(GridColumnVisibilityBindingTemplate, dtg.GridName);
                    string DetailsDataSourceAction   = string.Format(ActionEvent, dtg.DataSourceName, dtg.GridName, ChildEntitySet.EntityTypeName);
                    //Read details master and dataform and write it to files.
                    StreamWriter outfile           = new StreamWriter(GlobalGeneratorSettings.SavePath + DetailsFormName);// (ChildEntitySet.EntityTypeName + "Details" + formPostFixName));
                    string       NameSpace         = DomainDataSourceManager.GetDataSourceNameSpace();
                    string       detailsCodeBehind = detailsDataSource.GetDataSourceCodeBehindMethods();
                    detailsCodeBehind += detailDataform.CodeBehindMethods;
                    outfile.Write(string.Format(templateNew, GlobalGeneratorSettings.SilverlightProjectName, DetailsClassName /* ChildEntitySet.EntityTypeName + classPostFixName*/, NameSpace, detailsDataSource.GetDataSourceXaml() + dtg.XamlCode, detailDataform.XamlCode));
                    outfile.Flush();
                    outfile.Close();
                    outfile = new StreamWriter(GlobalGeneratorSettings.SavePath + DetailsFormName + ".cs");//(ChildEntitySet.EntityTypeName + "Details"+formPostFixName + ".cs"));
                    outfile.Write(string.Format(CodeBehind, GlobalGeneratorSettings.SilverlightProjectName, DetailsClassName /*ChildEntitySet.EntityTypeName + classPostFixName*/, detailsCodeBehind + DetailsDataSourceAction, DetailsGridVisibilityBind, GlobalGeneratorSettings.SilverlightWebProjectName));
                    outfile.Flush();
                    outfile.Close();

                    #endregion
                }

                StreamWriter outStream = new StreamWriter(GlobalGeneratorSettings.SavePath + MasterFormName);//((Item as EntitySet).EntityTypeName + "Master" + formPostFixName));

                outStream.Write(string.Format(templateNew, GlobalGeneratorSettings.SilverlightProjectName, MasterClassName /* (Item as EntitySet).EntityTypeName + classPostFixName*/, DomainDataSourceManager.GetDataSourceNameSpace(), DomainDataSourceManager.GetDataSourceXaml() + "\n\n\n" + tg.XamlCode, masterDataform.XamlCode));
                outStream.Flush();
                outStream.Close();
                string masterCodeBehind = "\n#region ------ Navigate Action For Buttons------//\n";
                foreach (var st in buttionAction)
                {
                    masterCodeBehind += st;
                }
                masterCodeBehind += "#endregion\n";
                masterCodeBehind += DomainDataSourceManager.GetDataSourceCodeBehindMethods();
                masterCodeBehind += OnNavigatedToTemplate;

                string masterDataSourceAction = string.Format(ActionEvent, tg.DataSourceName, tg.GridName, (Item as EntitySet).EntityTypeName);

                outStream = new StreamWriter(GlobalGeneratorSettings.SavePath + MasterFormName + ".cs");//(Item as EntitySet).EntityTypeName + "Master"+formPostFixName + ".cs");
                outStream.Write(string.Format(CodeBehind, GlobalGeneratorSettings.SilverlightProjectName, MasterClassName /* (Item as EntitySet).EntityTypeName + classPostFixName*/, masterCodeBehind + masterDataSourceAction + masterDataform.CodeBehindMethods, MasterGridVisibilityBind, GlobalGeneratorSettings.SilverlightWebProjectName));
                outStream.Flush();
                outStream.Close();



                #endregion
            }
        }