// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Squidex.Domain.Apps.Entities.Rules; using Squidex.Web; namespace Squidex.Areas.Api.Controllers.Rules.Models { public sealed class RuleEventsDto : Resource { /// /// The rule events. /// [Required] public RuleEventDto[] Items { get; set; } /// /// The total number of rule events. /// public long Total { get; set; } public static RuleEventsDto FromRuleEvents(IReadOnlyList items, long total, ApiController controller, string app) { var result = new RuleEventsDto { Total = total, Items = items.Select(x => RuleEventDto.FromRuleEvent(x, controller, app)).ToArray() }; return result.CreateLinks(controller, app); } private RuleEventsDto CreateLinks(ApiController controller, string app) { AddSelfLink(controller.Url(x => nameof(x.GetEvents), new { app })); return this; } } }