using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Yavsc.Billing; using Yavsc.Models.Billing; using Yavsc.Server.Models.IT.SourceCode; namespace Yavsc.Server.Models.IT { public class ProjectBuildConfiguration { [Key] public long Id { get; set; } [Required] public string Name { get; set; } public long ProjectId { get; set; } [ForeignKey("ProjectId")] public virtual Project TargetProject { get; set; } } public class Project : NominativeServiceCommand { [Key] public override long Id { get; set ; } public string OwnerId { get; set; } /// /// This field is something like a key, /// since it is required non null, /// and is the key of the foreign GitRepositoryReference entity. /// /// As a side effect, there's no project without valid git reference in db. /// /// [Required] public string Name { get; set; } public string Version { get; set; } [InverseProperty("TargetProject")] public virtual List Configurations { get; set; } [ForeignKey("Name")] public virtual GitRepositoryReference Repository { get; set; } List bill = new List (); public void AddBillItem(IBillItem item) { bill.Add(item); } public override List GetBillItems() { return bill; } public string Description { get; set; } public override string GetDescription() { return Description; } public Project() { } } }