using Core.Abstractions.DomainObjects;
using Core.Abstractions.Models;
using Core.DomainObjects;
using Core.Enumerations;
using WeatherForecast.Models.Responses;
using WeatherForecast.Models.Responses.L10n;
namespace WeatherForecast.Models.Abstractions {
///
///
///
///
public abstract class PostItemResponseModelBase : ResponseModelBase {
///
///
///
public Guid Id { get; set; }
///
///
///
public Guid SiteId { get; set; }
///
///
///
public List? L10n { get; set; }
#region Localized costrutor
///
///
///
public string? Slug { get; set; }
///
///
///
public string? Description { get; set; }
///
///
///
public string? Title { get; set; }
///
///
///
public string? ShortText { get; set; }
///
///
///
public string? Text { get; set; }
///
///
///
public string? PlainText { get; set; }
///
///
///
public string? ContentType { get; set; }
///
///
///
public List? Badges { get; set; }
#endregion
///
///
///
public List? Images { get; set; }
///
///
///
public AuthorModel? Author { get; set; }
///
///
///
public DateTime Created { get; set; }
///
///
///
public List? Tags { get; set; }
///
///
///
public List? Categories { get; set; }
///
///
///
public bool? FamilyFriendly { get; set; }
///
///
///
///
public PostItemResponseModelBase(PostItemBase postItem) {
Id = postItem.Id;
SiteId = postItem.SiteId;
//Author = new AuthorModel(postItem.Author);
Created = postItem.Created;
Tags = postItem.Tags;
FamilyFriendly = postItem.FamilyFriendly;
}
///
///
///
///
///
public PostItemResponseModelBase(PostItemBase postItem, List categories) : this(postItem) {
L10n = postItem.L10n.Select(x => new PostItemL10nModel(x)).ToList();
Categories = categories.Select(x => new CategoryItemResponseModel(x)).ToList();
Images = postItem.Images?.Select(x => new ImageResponseModel(x)).ToList();
}
///
///
///
///
///
///
public PostItemResponseModelBase(PostItemBase postItem, List categories, Locales locale) : this(postItem) {
var postItemL10n = postItem.L10n.Single(x => x.Locale == locale);
if (postItemL10n != null) {
Slug = postItemL10n.Slug;
Badges = postItemL10n.Badges;
Title = postItemL10n.Title;
ShortText = postItemL10n.ShortText;
Text = postItemL10n.Text;
PlainText = postItemL10n.PlainText;
Badges = postItemL10n.Badges;
}
Categories = categories.Select(x => new CategoryItemResponseModel(x, locale)).ToList();
Images = postItem.Images?.Select(x => new ImageResponseModel(x, locale)).ToList();
}
}
}