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. } }
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 } }