using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; using EnVisage.Code; namespace EnVisage.Models { public class NoteModel : IBaseModel { public Guid Id { get; set; } public Guid? ParentId { get; set; } [Required] public string Title { get; set; } public string Details { get; set; } public DateTime DateAdded { get; set; } public AspNetUser Author { get; set; } public NoteModel() { } public NoteModel(Guid parentId) { ParentId = parentId; } /// /// Casts a obect to the object of type . /// /// A object. /// A object filled with data from db. public static explicit operator NoteModel(Note obj) { if (obj == null) return null; var model = new NoteModel { DateAdded = DateTime.Now, Id = obj.Id, ParentId = obj.ParentId, Title = obj.Title, Details = obj.NoteDetail, Author = (new EnVisageEntities()).AspNetUsers.FirstOrDefault(x => x.Id == obj.UserId.Value.ToString()) }; model.TrimStringProperties(); return model; } /// /// Copies data from model to DAL object. /// /// A target DAL object. public void CopyTo(Note dbObj) { if (dbObj == null) throw new ArgumentNullException(); dbObj.ParentId = ParentId; dbObj.Id = Id; dbObj.Title = Title; dbObj.DateAdded = DateTime.Now; dbObj.NoteDetail = Details; // dbObj.UserId = (Author != null) ? new Guid(Author.Id) : new Guid(User.Identity.GetID()); } } }