Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up the SectionDisplayDriverBase and seal more methods in SiteDisplayDriver #16528

Merged
merged 4 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
using OrchardCore.Email.Core.Services;
using OrchardCore.Email.ViewModels;
using OrchardCore.Environment.Shell;
using OrchardCore.Modules;
using OrchardCore.Settings;

namespace OrchardCore.Email.Drivers;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System;
using System.Threading.Tasks;
using OrchardCore.DisplayManagement.Handlers;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.DisplayManagement.Views;
using OrchardCore.Entities;

Expand All @@ -19,9 +21,56 @@ public abstract class SectionDisplayDriver<TModel, TSection> : SectionDisplayDri
public sealed override Task<IDisplayResult> DisplayAsync(TModel model, BuildDisplayContext context)
=> base.DisplayAsync(model, context);

public override IDisplayResult Display(TModel model, TSection section, BuildDisplayContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return Display(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the DisplayAsync(TModel model, TSection section, BuildDisplayContext context) ")]
public virtual IDisplayResult Display(TSection section, BuildDisplayContext context)
{
return Display(section);
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the DisplayAsync(TModel model, TSection section, BuildDisplayContext context) ")]
public virtual IDisplayResult Display(TSection section)
=> NullShapeResult();

public sealed override Task<IDisplayResult> EditAsync(TModel model, BuildEditorContext context)
=> base.EditAsync(model, context);

public override IDisplayResult Edit(TModel model, TSection section, BuildEditorContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return Edit(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the EditAsync(TModel model, TSection section, BuildEditorContext context) or Edit(TModel model, TSection section, BuildEditorContext context)")]
public virtual IDisplayResult Edit(TSection section, BuildEditorContext context)
=> Edit(section);

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the EditAsync(TModel model, TSection section, BuildEditorContext context) or Edit(TModel model, TSection section, BuildEditorContext context)")]
public virtual IDisplayResult Edit(TSection section)
=> NullShapeResult();

public sealed override Task<IDisplayResult> UpdateAsync(TModel model, UpdateEditorContext context)
=> base.UpdateAsync(model, context);

public override Task<IDisplayResult> UpdateAsync(TModel model, TSection section, UpdateEditorContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return UpdateAsync(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the UpdateAsync(TModel model, TSection section, UpdateEditorContext context)")]
public virtual Task<IDisplayResult> UpdateAsync(TSection section, UpdateEditorContext context)
=> UpdateAsync(section, context.Updater, context.GroupId);

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the UpdateAsync(TModel model, TSection section, UpdateEditorContext context)")]
public virtual Task<IDisplayResult> UpdateAsync(TSection section, IUpdateModel updater, string groupId)
=> Task.FromResult(NullShapeResult());
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
using System;
using System.Text.Json.Nodes;
using System.Threading.Tasks;
using OrchardCore.DisplayManagement.Handlers;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.DisplayManagement.Views;
using OrchardCore.Entities;

Expand Down Expand Up @@ -35,23 +33,7 @@ public virtual Task<IDisplayResult> DisplayAsync(TModel model, TSection section,
}

public virtual IDisplayResult Display(TModel model, TSection section, BuildDisplayContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return Display(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the DisplayAsync(TModel model, TSection section, BuildDisplayContext context) ")]
public virtual IDisplayResult Display(TSection section, BuildDisplayContext context)
{
return Display(section);
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the DisplayAsync(TModel model, TSection section, BuildDisplayContext context) ")]
public virtual IDisplayResult Display(TSection section)
{
return null;
}
=> NullShapeResult();

public override Task<IDisplayResult> EditAsync(TModel model, BuildEditorContext context)
{
Expand All @@ -66,20 +48,6 @@ public virtual Task<IDisplayResult> EditAsync(TModel model, TSection section, Bu
}

public virtual IDisplayResult Edit(TModel model, TSection section, BuildEditorContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return Edit(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the EditAsync(TModel model, TSection section, BuildEditorContext context) or Edit(TModel model, TSection section, BuildEditorContext context)")]
public virtual IDisplayResult Edit(TSection section, BuildEditorContext context)
{
return Edit(section);
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the EditAsync(TModel model, TSection section, BuildEditorContext context) or Edit(TModel model, TSection section, BuildEditorContext context)")]
public virtual IDisplayResult Edit(TSection section)
=> NullShapeResult();

public override async Task<IDisplayResult> UpdateAsync(TModel model, UpdateEditorContext context)
Expand All @@ -102,23 +70,7 @@ public override async Task<IDisplayResult> UpdateAsync(TModel model, UpdateEdito
}

public virtual Task<IDisplayResult> UpdateAsync(TModel model, TSection section, UpdateEditorContext context)
{
#pragma warning disable CS0618 // Type or member is obsolete
return UpdateAsync(section, context);
#pragma warning restore CS0618 // Type or member is obsolete
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the UpdateAsync(TModel model, TSection section, UpdateEditorContext context)")]
public virtual Task<IDisplayResult> UpdateAsync(TSection section, UpdateEditorContext context)
{
return UpdateAsync(section, context.Updater, context.GroupId);
}

[Obsolete("This method is obsolete and will be removed in version 3. Instead, use the UpdateAsync(TModel model, TSection section, UpdateEditorContext context)")]
public virtual Task<IDisplayResult> UpdateAsync(TSection section, IUpdateModel updater, string groupId)
{
return Task.FromResult<IDisplayResult>(null);
}
=> EditAsync(model, section, context);

private TSection GetSection(TModel model)
=> model.Properties.TryGetPropertyValue(PropertyName, out var section)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

namespace OrchardCore.DisplayManagement.Entities;

public abstract class SiteDisplayDriver<TSection> : SectionDisplayDriverBase<ISite, TSection>
where TSection : new()
public abstract class SiteDisplayDriver<TSettings> : SectionDisplayDriverBase<ISite, TSettings>
where TSettings : new()
{
protected abstract string SettingsGroupId { get; }

Expand Down Expand Up @@ -40,4 +40,32 @@ public sealed override Task<IDisplayResult> UpdateAsync(ISite site, UpdateEditor

return base.UpdateAsync(site, context);
}

public sealed override IDisplayResult Display(ISite site, BuildDisplayContext context)
=> base.Display(site, context);

public sealed override IDisplayResult Edit(ISite site, BuildEditorContext context)
=> base.Edit(site, context);

public sealed override ShapeResult Factory(string shapeType, Func<IBuildShapeContext, ValueTask<IShape>> shapeBuilder, Func<IShape, Task> initializeAsync)
=> base.Factory(shapeType, shapeBuilder, initializeAsync);

public sealed override bool CanHandleModel(ISite model)
=> base.CanHandleModel(model);

protected sealed override void BuildPrefix(ISite model, string htmlFieldPrefix)
=> base.BuildPrefix(model, htmlFieldPrefix);

protected sealed override string PropertyName
=> base.PropertyName;

#pragma warning disable CS0672 // Member overrides obsolete member
#pragma warning disable CS0618 // Type or member is obsolete
public sealed override IDisplayResult Display(ISite site)
=> base.Display(site);

public sealed override IDisplayResult Edit(ISite site)
=> base.Edit(site);
#pragma warning restore CS0672 // Member overrides obsolete member
#pragma warning restore CS0618 // Type or member is obsolete
}