using BulletinBoardContracts.BindingModels; using BulletinBoardContracts.ViewModels; using BulletinBoardDatabase.Models; using BulletinBoardDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BulletinBoardDatabase.Models { public class Announcement : IAnnouncementModel { [Required] public string Title { get; set; } [Required] public string Description { get; set; } [Required] public DateTime StartDate { get; set; } public string? ReviewText { get; set; } public int? ReviewRating { get ; set; } [Required] public int? UserId { get; set; } [Required] public int? CategoryId { get; set; } [Required] public int? RegionId { get; set; } public int? Id { get; private set; } public virtual Category Category { get; set; } public virtual User User { get; set; } public virtual Region Region { get; set; } public static Announcement? Create(AnnouncementBindingModel? model) { if (model == null) { return null; } return new Announcement() { Id = model.Id, Title = model.Title, Description = model.Description, StartDate = model.StartDate, ReviewText = model.ReviewText, ReviewRating = model.ReviewRating, CategoryId = model.CategoryId, UserId = model.UserId, RegionId = model.RegionId, }; } public void Update(AnnouncementBindingModel? model) { if (model == null) { return; } ReviewText = model.ReviewText; ReviewRating = model.ReviewRating; } public AnnouncementViewModel GetViewModel => new() { Id = Id, Title = Title, Description = Description, StartDate = StartDate, UserName = User == null ? string.Empty : User.Name, UserSurname = User == null ? string.Empty : User.Surname, ReviewText = ReviewText, ReviewRating = ReviewRating, UserId = UserId, CategoryId = CategoryId, RegionId = RegionId, }; public string ObjectId => throw new NotImplementedException(); } }