EnVisageOnline/Beta/Source/EnVisage/Models/NoteModel.cs

68 lines
2.1 KiB
C#

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<Note>
{
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;
}
/// <summary>
/// Casts a <see cref="Note"/> obect to the object of type <see cref="NoteModel"/>.
/// </summary>
/// <param name="obj">A <see cref="Note"/> object.</param>
/// <returns>A <see cref="NoteModel"/> object filled with data from db.</returns>
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;
}
/// <summary>
/// Copies data from model to DAL object.
/// </summary>
/// <param name="dbObj">A target DAL object.</param>
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.GetUserId());
}
}
}