reactredux/webapi/WeatherForecast/Models/Abstractions/PostItemResponseModelBase.cs

63 lines
1.6 KiB
C#

using Core.Abstractions.DomainObjects;
using Core.Abstractions.Models;
using Core.DomainObjects;
using Core.Enumerations;
namespace WeatherForecast.Models.Abstractions {
public abstract class PostItemResponseModelBase<T> : ResponseModelBase {
public string Slug { get; set; }
public string Description { get; set; }
public List<ImageModel> Images { get; set; }
public List<string> Badges { get; set; }
public string Title { get; set; }
public string ShortText { get; set; }
public string Text { get; set; }
public string PlainText { get; set; }
public AuthorModel Author { get; set; }
public DateTime Created { get; set; }
public List<string> Tags { get; set; }
public List<CategoryModel> Categories { get; set; }
public bool? FamilyFriendly { get; set; }
public PostItemResponseModelBase(PostItemBase<T> postItem, List<Category> categories, Locales locale) {
var postItemL10n = postItem.L10n.SingleOrDefault(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 CategoryModel(x, locale)).ToList();
// Author = new AuthorModel(postItem.Author);
Created = postItem.Created;
Tags = postItem.Tags;
Images = postItem.Images.Select(x => new ImageModel(x, locale)).ToList();
FamilyFriendly = postItem.FamilyFriendly;
}
}
}