2016-11-06 02:03:36 +01:00
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
2016-06-14 03:37:57 +02:00
|
|
|
|
namespace Yavsc.Models.Billing
|
2016-05-17 18:22:18 +02:00
|
|
|
|
{
|
2017-02-11 15:46:26 +01:00
|
|
|
|
using Models.Workflow;
|
2017-02-22 22:58:02 +01:00
|
|
|
|
using Newtonsoft.Json;
|
2017-01-13 16:31:40 +01:00
|
|
|
|
|
2016-10-07 12:49:24 +02:00
|
|
|
|
public partial class Estimate : IEstimate
|
2016-05-17 18:22:18 +02:00
|
|
|
|
{
|
|
|
|
|
|
[Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public long? CommandId { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// A command is not required to create
|
|
|
|
|
|
/// an estimate,
|
|
|
|
|
|
/// it will result in a new estimate template
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2017-02-22 22:58:02 +01:00
|
|
|
|
[ForeignKey("CommandId"),JsonIgnore]
|
2017-02-27 19:28:32 +01:00
|
|
|
|
public RdvQuery Query { get; set; }
|
2016-05-17 18:22:18 +02:00
|
|
|
|
public string Description { get; set; }
|
|
|
|
|
|
public string Title { get; set; }
|
2016-10-23 01:31:09 +02:00
|
|
|
|
|
|
|
|
|
|
[InverseProperty("Estimate")]
|
|
|
|
|
|
public virtual List<CommandLine> Bill { get; set; }
|
2016-05-17 18:22:18 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// List of attached graphic files
|
|
|
|
|
|
/// to this estimate, as relative pathes to
|
|
|
|
|
|
/// the command performer's root path.
|
|
|
|
|
|
/// In db, they are separated by <c>:</c>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[NotMapped]
|
|
|
|
|
|
public List<string> AttachedGraphics { get; set; }
|
|
|
|
|
|
|
2016-10-07 12:49:24 +02:00
|
|
|
|
public string AttachedGraphicsString
|
|
|
|
|
|
{
|
2016-08-13 01:26:32 +02:00
|
|
|
|
get { return string.Join(":", AttachedGraphics); }
|
2016-10-07 12:49:24 +02:00
|
|
|
|
set { AttachedGraphics = value.Split(':').ToList(); }
|
2016-08-13 01:26:32 +02:00
|
|
|
|
}
|
2016-05-17 18:22:18 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// List of attached files
|
|
|
|
|
|
/// to this estimate, as relative pathes to
|
|
|
|
|
|
/// the command performer's root path.
|
|
|
|
|
|
/// In db, they are separated by <c>:</c>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[NotMapped]
|
|
|
|
|
|
public List<string> AttachedFiles { get; set; }
|
2016-10-07 12:49:24 +02:00
|
|
|
|
public string AttachedFilesString
|
|
|
|
|
|
{
|
2016-08-13 01:26:32 +02:00
|
|
|
|
get { return string.Join(":", AttachedFiles); }
|
2016-10-07 12:49:24 +02:00
|
|
|
|
set { AttachedFiles = value.Split(':').ToList(); }
|
2016-08-13 01:26:32 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string OwnerId { get; set; }
|
|
|
|
|
|
|
2017-02-22 22:58:02 +01:00
|
|
|
|
[ForeignKey("OwnerId"),JsonIgnore]
|
2017-01-13 16:31:40 +01:00
|
|
|
|
public virtual PerformerProfile Owner { get; set; }
|
|
|
|
|
|
|
2016-08-13 01:26:32 +02:00
|
|
|
|
[Required]
|
|
|
|
|
|
public string ClientId { get; set; }
|
2017-02-22 22:58:02 +01:00
|
|
|
|
[ForeignKey("ClientId"),JsonIgnore]
|
2017-01-13 16:31:40 +01:00
|
|
|
|
public virtual ApplicationUser Client { get; set; }
|
2016-10-07 12:49:24 +02:00
|
|
|
|
|
2017-03-03 01:17:00 +01:00
|
|
|
|
[Required]
|
2016-10-07 12:49:24 +02:00
|
|
|
|
public string CommandType
|
|
|
|
|
|
{
|
|
|
|
|
|
get; set;
|
|
|
|
|
|
}
|
2016-11-24 01:01:41 +01:00
|
|
|
|
public DateTime ProviderValidationDate { get; set; }
|
|
|
|
|
|
public DateTime ClientValidationDate { get; set; }
|
|
|
|
|
|
|
2016-05-17 18:22:18 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|