using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using Umbraco.Core.Models; using Umbraco.Core.Models.Editors; namespace Umbraco.Web.Models.ContentEditing { /// /// A model representing a content item to be saved /// [DataContract(Name = "content", Namespace = "")] public abstract class ContentBaseSave : ContentItemBasic, IContentSave where TPersisted : IContentBase { protected ContentBaseSave() { UploadedFiles = new List(); } #region IContentSave /// [DataMember(Name = "action", IsRequired = true)] [Required] public ContentSaveAction Action { get; set; } [IgnoreDataMember] public List UploadedFiles { get; } //These need explicit implementation because we are using internal models /// [IgnoreDataMember] TPersisted IContentSave.PersistedContent { get; set; } //These need explicit implementation because we are using internal models /// [IgnoreDataMember] ContentItemDto IContentSave.ContentDto { get; set; } //Non explicit internal getter so we don't need to explicitly cast in our own code [IgnoreDataMember] internal TPersisted PersistedContent { get => ((IContentSave)this).PersistedContent; set => ((IContentSave) this).PersistedContent = value; } //Non explicit internal getter so we don't need to explicitly cast in our own code [IgnoreDataMember] internal ContentItemDto ContentDto { get => ((IContentSave)this).ContentDto; set => ((IContentSave) this).ContentDto = value; } #endregion } }