using ForumContracts.BindingModels; using ForumContracts.ViewModels; using ForumDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace ForumDatabaseImplement.Models { public class Answer : IAnswerModel { [Required] public DateTime ResponseDate { get; set; } = DateTime.Now; public int QuestionId { get; set; } public int UserId { get; set; } public int Id { get; set; } [Required] public string AnswerDes { get; set; } = string.Empty; public virtual User User { get; set; } public virtual Question Question { get; set; } public static Answer? Create(AnswerBindingModel model) { if (model == null) { return null; } return new Answer() { Id = model.Id, ResponseDate = model.ResponseDate, UserId = model.UserId, QuestionId = model.QuestionId, AnswerDes = model.AnswerDes }; } public static Answer Create(AnswerViewModel model) { return new Answer { Id = model.Id, UserId = model.UserId, QuestionId = model.QuestionId, ResponseDate = model.ResponseDate, AnswerDes = model.AnswerDes }; } public void Update(AnswerBindingModel model) { if (model == null) { return; } UserId = model.UserId; QuestionId = model.QuestionId; ResponseDate = model.ResponseDate; AnswerDes = model.AnswerDes; } public AnswerViewModel GetViewModel => new() { AuthorAnswer= User?.Nickname ?? string.Empty, QuestionCreateDate =Question?.CreateDate ?? DateTime.Now, QuestionText = Question?.QuestionDes ?? string.Empty, Id = Id, ResponseDate = ResponseDate, UserId = UserId, QuestionId = QuestionId, AnswerDes = AnswerDes }; } }