예제 #1
0
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     if (this.templatePage.BindingSource.DataSource != null)
     {
         this.templatePage.OnSetActive();
         DetailsTemplate detailsTemplate = this.templatePage.BindingSource.DataSource as DetailsTemplate;
         if (detailsTemplate != null && detailsTemplate.IsValid)
         {
             this.serviceContainer.AddService(typeof(DetailsTemplateTypeService), new DetailsTemplateTypeService(detailsTemplate.TemplateType, detailsTemplate.MAPIPropertiesDictionary));
             if (detailsTemplate.TemplateType.Equals("Mailbox Agent"))
             {
                 this.propertyGrid.Enabled = false;
                 this.templatePage.TemplateSurface.ReadOnly = true;
             }
             else
             {
                 this.propertyGrid.Enabled = true;
                 this.templatePage.TemplateSurface.ReadOnly = false;
             }
             this.templatePage.TemplateSurface.DetailsTemplatesMenuService.MenuCommandStatusChanged += this.menuCommandService_StatusChanged;
             this.UpdateEditMenuItems(this.templatePage.TemplateSurface.DetailsTemplatesMenuService);
             this.toolbox.Initialize();
             this.LoadEditorSettings();
             return;
         }
         if (detailsTemplate != null)
         {
             base.ShellUI.ShowError(Strings.DetailsTemplateCorrupted);
         }
         base.Dispose();
     }
 }
 // Token: 0x06000972 RID: 2418 RVA: 0x000207F8 File Offset: 0x0001E9F8
 public DetailsTemplateIdParameter(string rawString) : base(rawString)
 {
     if (base.InternalADObjectId != null && base.InternalADObjectId.Rdn != null)
     {
         return;
     }
     string[] array = rawString.Split(new char[]
     {
         '\\'
     });
     if (array.Length > 2)
     {
         throw new ArgumentException(Strings.ErrorInvalidIdentity(rawString), "Identity");
     }
     if (!array[0].Equals("*") && !Culture.TryGetCulture(array[0], out this.language))
     {
         throw new ArgumentException(Strings.ErrorInvalidIdentity(rawString), "Identity");
     }
     if (array.Length == 2)
     {
         this.type = DetailsTemplate.TranslateTemplateNameToID(array[1]);
         if (this.type == null && !array[1].Equals("*"))
         {
             throw new ArgumentException(Strings.ErrorInvalidIdentity(rawString), "Identity");
         }
     }
 }
예제 #3
0
        private void SaveTemplate(CancelEventArgs e)
        {
            TabControl templateTab = this.templatePage.TemplateSurface.TemplateTab;
            MultiValuedProperty <Page> multiValuedProperty = new MultiValuedProperty <Page>();

            foreach (object obj in templateTab.TabPages)
            {
                CustomTabPage customTabPage      = (CustomTabPage)obj;
                Page          detailsTemplateTab = customTabPage.DetailsTemplateTab;
                detailsTemplateTab.Controls.Clear();
                DetailsTemplatesSurface.SortControls(customTabPage, true);
                foreach (object obj2 in customTabPage.Controls)
                {
                    Control control = (Control)obj2;
                    DetailsTemplateControl detailsTemplateControl = (control as IDetailsTemplateControlBound).DetailsTemplateControl;
                    detailsTemplateTab.Controls.Add(detailsTemplateControl);
                }
                DetailsTemplatesSurface.SortControls(customTabPage, false);
                multiValuedProperty.Add(detailsTemplateTab);
            }
            DetailsTemplate detailsTemplate = this.templatePage.BindingSource.DataSource as DetailsTemplate;

            detailsTemplate.Pages = multiValuedProperty;
            if (this.templatePage.DataHandler != null)
            {
                this.templatePage.DataHandler.SpecifyParameterNames("Pages");
            }
            this.templatePage.Apply(e);
            this.RefreshOnFinish.Refresh(base.CreateProgress(Strings.Refreshing));
        }
예제 #4
0
        protected override void OnSetActive(EventArgs e)
        {
            base.OnSetActive(e);
            DetailsTemplate detailsTemplate = base.BindingSource.DataSource as DetailsTemplate;

            if (detailsTemplate != null && detailsTemplate.IsValid)
            {
                this.designSurface.LoadTemplate(detailsTemplate);
                this.designSurface.DataContext = base.Context;
            }
        }
        public void DetailsView_Template_Test()
        {
            var template = new DetailsTemplate(new EntityInfo()
            {
                Id = _entityId
            }, ApplicationId);
            var output = template.TransformText();

            Assert.NotNull(output);
            Assert.NotEmpty(output);
            Assert.Contains($"@model {ApplicationId}.Backend.DataModels.{_entityId}", output);
        }
예제 #6
0
 private void DetailsModel_MetadataChanged(object sender, EventArgs e)
 {
     if (DetailsModel.Target == DetailsTarget.Download)
     {
         WebBrowser.Tag          = DetailsModel.Metadata?.Id;
         WebBrowser.DocumentText = DownloadTemplate.GetFormattedText(DetailsModel.Metadata);
     }
     else
     {
         WebBrowser.Tag          = DetailsModel.Metadata?.Id;
         WebBrowser.DocumentText = DetailsTemplate.GetFormattedText(DetailsModel.Metadata);
     }
 }
예제 #7
0
        internal void LoadTemplate(DetailsTemplate currentTemplate)
        {
            IDesignerHost    designerHost     = base.GetService(typeof(IDesignerHost)) as IDesignerHost;
            Control          control          = designerHost.RootComponent as Control;
            CustomTabControl customTabControl = (CustomTabControl)DetailsTemplatesSurface.CreateComponent(typeof(CustomTabControl), designerHost);

            customTabControl.Parent = control;
            int num  = 0;
            int num2 = 0;

            customTabControl.SuspendLayout();
            customTabControl.TabPages.Clear();
            if (currentTemplate.Pages != null)
            {
                foreach (Page page in currentTemplate.Pages)
                {
                    CustomTabPage customTabPage = (CustomTabPage)DetailsTemplatesSurface.CreateComponent(typeof(CustomTabPage), designerHost);
                    customTabPage.DetailsTemplateTab = page;
                    foreach (DetailsTemplateControl detailsTemplateControl in page.Controls)
                    {
                        Type    type     = detailsTemplateControl.GetType();
                        Control control2 = (Control)DetailsTemplatesSurface.CreateComponent(DetailsTemplatesSurface.controlMapping[type], designerHost);
                        control2.Location = DetailsTemplatesSurface.DialogUnitsToPixel(detailsTemplateControl.X, detailsTemplateControl.Y, this.ExchangeForm);
                        control2.Size     = new Size(DetailsTemplatesSurface.DialogUnitsToPixel(detailsTemplateControl.Width, detailsTemplateControl.Height, this.ExchangeForm));
                        customTabPage.Controls.Add(control2);
                        (control2 as IDetailsTemplateControlBound).DetailsTemplateControl = detailsTemplateControl;
                        int val  = control2.Location.X + control2.Size.Width;
                        int val2 = control2.Location.Y + control2.Size.Height;
                        num  = Math.Max(num, val);
                        num2 = Math.Max(num2, val2);
                    }
                    customTabControl.TabPages.Add(customTabPage);
                    DetailsTemplatesSurface.SortControls(customTabPage, false);
                }
            }
            num                += 25;
            num2               += 50;
            num                 = Math.Max(num, 200);
            num2                = Math.Max(num2, 200);
            control.Size        = new Size(num, num2);
            control.MinimumSize = new Size(200, 200);
            PropertyDescriptor propertyDescriptor = TypeDescriptor.GetProperties(customTabControl)["Size"];

            propertyDescriptor.SetValue(customTabControl, new Size(num, num2));
            this.templateTab = customTabControl;
            this.MonitorService();
            this.templateTab.SelectedIndexChanged += this.selectionService_SelectionChanged;
            this.selectionService_SelectionChanged(null, null);
            this.templateTab.Resize += this.templateTab_Resize;
        }
        private void TransformViews(SmartAppInfo manifest)
        {
            var enabledEntities = manifest.DataModel.Entities.Where(e => !e.IsAbstract);

            foreach (var entity in enabledEntities)
            {
                var applicationId = manifest.Id;

                var createTemplate = new CreateTemplate(entity, applicationId);
                var editTemplate   = new EditTemplate(entity, applicationId);
                var detailTemplate = new DetailsTemplate(entity, applicationId);
                var deleteTemplate = new DeleteTemplate(entity, applicationId);
                var indexTemplate  = new IndexTemplate(entity, applicationId);

                _writingService.WriteFile(Path.Combine(_context.BasePath, createTemplate.OutputPath, entity.Id, "Create.cshtml"), createTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, editTemplate.OutputPath, entity.Id, "Edit.cshtml"), editTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, deleteTemplate.OutputPath, entity.Id, "Delete.cshtml"), deleteTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, detailTemplate.OutputPath, entity.Id, "Details.cshtml"), detailTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, indexTemplate.OutputPath, entity.Id, "Index.cshtml"), indexTemplate.TransformText());
            }
        }
        public void DetailsView_Template_NullParameter_Test()
        {
            var template = new DetailsTemplate(null, null);

            Assert.Throws <ArgumentNullException>(() => template.TransformText());
        }