Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Billing/Business/MockupBillingService.cs @ 9577

Last change on this file since 9577 was 9577, checked in by spimming, 11 years ago

#1888:

  • Added dal and service interfaces and implementations
  • Added dbcontext for billing
File size: 1.7 KB
Line 
1using System.Collections.Generic;
2using System.Linq;
3using HeuristicLab.Services.Optimization.Billing.Interfaces;
4
5namespace HeuristicLab.Services.Optimization.Billing.Business {
6  public class MockupBillingService : IOptimizationBilling {
7
8    private static IList<Model.Product> products;
9    private static IDictionary<string, IList<Model.Order>> userToOrders;
10    private static IList<Model.Order> allOrders;
11
12    static MockupBillingService() {
13      products = new List<Model.Product>();
14      products.Add(new Model.Product() {
15        Name = "Optimization-as-a-Service - Experiment execution",
16        Description = "Create and run your experiments within HeuristicLab Hive",
17        ProductId = 1,
18        Price = 10.0,
19        ProductType = "Optimization Service"
20      });
21      products.Add(new Model.Product() {
22        Name = "Whatever-o-matic - Experiment execution",
23        Description = "Another fine product",
24        ProductId = 2,
25        Price = 100.0,
26        ProductType = "Product"
27      });
28
29      userToOrders = new Dictionary<string, IList<Model.Order>>();
30      allOrders = new List<Model.Order>();
31    }
32
33    public IList<Model.Product> GetProducts() {
34      return products;
35    }
36
37    public void SaveOrder(Model.Order order) {
38      IList<Model.Order> orders;
39      if (!userToOrders.TryGetValue(order.User.Name, out orders)) {
40        userToOrders[order.User.Name] = orders = new List<Model.Order>();
41      }
42      orders.Add(order);
43      allOrders.Add(order);
44    }
45
46    public IList<Model.Order> GetOrdersByState(Model.OrderState state) {
47      return (from o in allOrders where o.State == state select o).ToList();
48    }
49  }
50}
Note: See TracBrowser for help on using the repository browser.