65 lines
2.3 KiB
C#
65 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using AyaNova.Biz;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace AyaNova.Models
|
|
{
|
|
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
|
|
//otherwise the server will call it an invalid record if the field isn't sent from client
|
|
|
|
public class NotifyEvent
|
|
{
|
|
public long Id { get; set; }
|
|
public uint Concurrency { get; set; }
|
|
|
|
[Required]
|
|
public DateTime Created { get; set; }
|
|
public AyaType AyaType { get; set; }
|
|
public long ObjectId { get; set; }
|
|
[Required]
|
|
public string Name { get; set; }//object name or closest equivalent for display
|
|
[Required]
|
|
public NotifyEventType EventType { get; set; }
|
|
[Required]
|
|
public long UserId { get; set; }
|
|
[Required]
|
|
public long NotifySubscriptionId { get; set; }//source subscription that triggered this event to be created
|
|
[Required]
|
|
public long IdValue { get; set; }
|
|
[Required]
|
|
public decimal DecValue { get; set; }
|
|
|
|
// [Required]// public TimeSpan AgeValue { get; set; }
|
|
|
|
//date of the event actually occuring, e.g. WarrantyExpiry date. Compared with subscription to determine if deliverable or not
|
|
public DateTime EventDate { get; set; }
|
|
//NO: Delivery code consults subscription instead of this
|
|
// public DateTime? DeliverDate { get; set; }//date user wants the event notification delivered, usually same as event date but could be set earlier if Advance setting in effect. This is the date consulted for delivery only.
|
|
public string Message { get; set; }
|
|
|
|
|
|
public NotifyEvent()
|
|
{
|
|
Created = EventDate = DateTime.UtcNow;
|
|
IdValue = 0;
|
|
DecValue = 0;
|
|
// AgeValue = TimeSpan.Zero;
|
|
AyaType = AyaType.NoType;
|
|
ObjectId = 0;
|
|
Name = string.Empty;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.None);
|
|
}
|
|
|
|
//linked entity
|
|
public NotifySubscription NotifySubscription { get; set; }
|
|
|
|
}//eoc
|
|
|
|
}//eons
|