82 lines
2.3 KiB
C#
Raw Normal View History

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
};
}
}