Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Billing/Model/Model.cs @ 9558

Last change on this file since 9558 was 9558, checked in by fschoepp, 11 years ago

#1888:

  • Added Usage statistic classes; added authorization attributes to web controllers.
File size: 2.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace HeuristicLab.Services.Optimization.Billing.Model {
7  public class ContactInformation {
8    public long Id { get; set; }
9    public string OrganizationName { get; set; }
10    public string Street { get; set; }
11    public string City { get; set; }
12    public string State { get; set; }
13    public string PostalCode { get; set; }
14    public string LastName { get; set; }
15    public string FirstName { get; set; }
16    public string Email { get; set; }
17  }
18
19  public enum PaymentMethod {
20    Cheque,
21    Visa,
22    MasterCard,
23    PayPal,
24    Diners
25  }
26
27  public class Product {
28    public long Id { get; set; }
29    public string Name { get; set; }
30    public string Description { get; set; }
31    public string ProductType { get; set; }
32    public double Price { get; set; }
33  }
34
35  public class User {
36    public string Name { get; set; }
37  }
38
39  public enum OrderState {
40    Created,
41    Active,
42    Suspended,
43    Overdue,
44    Finished
45  }
46
47  public class Order {
48    public long Id { get; set; }
49    public User User { get; set; }
50    public string BillingType { get; set; }
51    public OrderState State { get; set; }
52    public string BillingPeriod { get; set; }
53    public DateTime ActiveSince { get; set; }
54    public DateTime ActiveUntil { get; set; }
55    public IList<Invoice> Invoices { get; set; }
56    public IList<OrderLine> OrderLines { get; set; }
57  }
58
59  public class OrderLine {
60    public long Id { get; set; }
61    public Order Order { get; set; }
62    public Product Product { get; set; }
63    public int Quantity { get; set; }
64    public double ProductPrice { get; set; }
65  }
66
67  public class Invoice {
68    public long Id { get; set; }
69    public User User { get; set; }
70    public DateTime Due { get; set; }
71    public string Status { get; set; }
72    public string InvoiceDocument { get; set; }
73    public Order Order { get; set; }
74  }
75
76  public class InvoiceLine {
77    public long Id { get; set; }
78    public Invoice Invoice { get; set; }
79    public Product Product { get; set; }
80    public int Quantity { get; set; }
81    public double ProductPrice { get; set; }
82  }
83
84  public class Usage {
85    public long Id { get; set; }
86    public User User { get; set; }
87    public IList<UsageLine> UsageLines { get; set; }
88  }
89
90  public class UsageLine {
91    public long Id { get; set; }
92    public Usage Usage { get; set; }
93    public DateTime Begin { get; set; }
94    public DateTime End { get; set; }
95  }
96}
Note: See TracBrowser for help on using the repository browser.