Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/04/13 10:59:03 (11 years ago)
Author:
spimming
Message:

#1888:

  • Added billing test client
  • Use entity framework for DAL
  • Modified service interface and model classes
Location:
branches/OaaS/HeuristicLab.Services.Optimization.Web
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/OrderAdminController.cs

    r9558 r9576  
    1 using System;
    2 using System.Collections.Generic;
    3 using System.Linq;
    4 using System.Web;
     1using System.Linq;
    52using System.Web.Mvc;
     3using HeuristicLab.Services.Optimization.Billing.Business;
     4using HeuristicLab.Services.Optimization.Billing.Interfaces;
    65using HeuristicLab.Services.Optimization.Web.Models;
    7 using HeuristicLab.Services.Optimization.Billing.Interfaces;
    8 using HeuristicLab.Services.Optimization.Billing;
    96
    10 namespace HeuristicLab.Services.Optimization.Web.Controllers
    11 {
    12     [Authorize(Roles = "Web User")]
    13     public class OrderAdminController : Controller
    14     {
    15         private IOptimizationBilling billing = new MockupOptimizationBilling();
     7namespace HeuristicLab.Services.Optimization.Web.Controllers {
     8  [Authorize(Roles = "Web User")]
     9  public class OrderAdminController : Controller {
     10    private IOptimizationBilling billing = BillingServiceProvider.Instance;
    1611
    17         //
    18         // GET: /OrderAdmin/
     12    //
     13    // GET: /OrderAdmin/
    1914
    20         public ActionResult Index()
    21         {
    22             var orders = billing.GetOrdersByState(Billing.Model.OrderState.Created);
    23             return View(new OrderAdminModel() { Orders = orders });
    24         }
     15    public ActionResult Index() {
     16      var orders = billing.GetOrdersByState(Billing.Model.OrderState.Created);
     17      return View(new OrderAdminModel() { Orders = orders });
     18    }
    2519
    26         [HttpPost]
    27         public ActionResult ActivateOrder(OrderAdminModel model) {
    28           var order = (from o in billing.GetOrdersByState(Billing.Model.OrderState.Created) where o.Id == model.OrderId select o).FirstOrDefault();
    29           order.State = Billing.Model.OrderState.Active;
    30           // TODO: Probably activate order via different method
    31           billing.SaveOrder(order);
    32           return RedirectToAction("Index");
    33         }
     20    [HttpPost]
     21    public ActionResult ActivateOrder(OrderAdminModel model) {
     22      var order = (from o in billing.GetOrdersByState(Billing.Model.OrderState.Created) where o.OrderId == model.OrderId select o).FirstOrDefault();
     23      order.State = Billing.Model.OrderState.Active;
     24      // TODO: Probably activate order via different method
     25      billing.SaveOrder(order);
     26      return RedirectToAction("Index");
     27    }
    3428
    35     }
     29  }
    3630}
  • branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/OrderController.cs

    r9558 r9576  
    1 using System;
    2 using System.Collections.Generic;
     1using System.Collections.Generic;
    32using System.Linq;
    4 using System.Web;
    53using System.Web.Mvc;
     4using System.Web.Security;
     5using HeuristicLab.Services.Optimization.Billing.Business;
     6using HeuristicLab.Services.Optimization.Billing.Interfaces;
     7using HeuristicLab.Services.Optimization.Billing.Model;
    68using HeuristicLab.Services.Optimization.Web.Models;
    7 using HeuristicLab.Services.Optimization.Billing.Model;
    8 using HeuristicLab.Services.Optimization.Billing.Interfaces;
    9 using HeuristicLab.Services.Optimization.Billing;
    10 using System.Web.Security;
    119
    12 namespace HeuristicLab.Services.Optimization.Web.Controllers
    13 {
    14     [Authorize(Roles = "Web User")]
    15     public class OrderController : Controller
    16     {
    17         private IOptimizationBilling billing = new MockupOptimizationBilling();
     10namespace HeuristicLab.Services.Optimization.Web.Controllers {
     11  [Authorize(Roles = "Web User")]
     12  public class OrderController : Controller {
     13    private IOptimizationBilling billing = BillingServiceProvider.Instance;
    1814
    19         //
    20         // GET: /Order/
     15    //
     16    // GET: /Order/
    2117
    22         public ActionResult Index()
    23         {
    24           return CreateOrder(new OrderModel()); //View();
    25         }
     18    public ActionResult Index() {
     19      return CreateOrder(new OrderModel()); //View();
     20    }
    2621
    2722
    28         [HttpPost]
    29         public ActionResult CreateOrder(OrderModel model) {
    30           Session["order"] = model;
    31           return AddProduct();
    32         }
     23    [HttpPost]
     24    public ActionResult CreateOrder(OrderModel model) {
     25      Session["order"] = model;
     26      return AddProduct();
     27    }
    3328
    34         public ActionResult AddProduct() {
    35           return View("AddProduct", new ProductsModel() { Products = billing.GetProducts() });
    36         }
     29    public ActionResult AddProduct() {
     30      return View("AddProduct", new ProductsModel() { Products = billing.GetProducts() });
     31    }
    3732
    38         [HttpPost]
    39         public ActionResult AddProduct(ProductsModel product) {
    40           var order = Session["order"] as OrderModel;
    41           var prod = (from b in billing.GetProducts()
    42                       where b.Id == product.ProductId
    43                       select b).FirstOrDefault();
    44           order.ProductQuantities[prod.Id] = product.Quantity;
    45           return AddProduct();
    46         }
     33    [HttpPost]
     34    public ActionResult AddProduct(ProductsModel product) {
     35      var order = Session["order"] as OrderModel;
     36      var prod = (from b in billing.GetProducts()
     37                  where b.ProductId == product.ProductId
     38                  select b).FirstOrDefault();
     39      order.ProductQuantities[prod.ProductId] = product.Quantity;
     40      return AddProduct();
     41    }
    4742
    48         public ActionResult SaveOrder() {
    49           var orderModel = Session["order"] as OrderModel;
    50           foreach (var key in orderModel.ProductQuantities.Keys) {
    51             var product = (from p in billing.GetProducts() where p.Id == key select p).FirstOrDefault();
    52             orderModel.Products[key] = product;           
    53           }
    54           return View(orderModel);
    55         }
     43    public ActionResult SaveOrder() {
     44      var orderModel = Session["order"] as OrderModel;
     45      foreach (var key in orderModel.ProductQuantities.Keys) {
     46        var product = (from p in billing.GetProducts() where p.ProductId == key select p).FirstOrDefault();
     47        orderModel.Products[key] = product;
     48      }
     49      return View(orderModel);
     50    }
    5651
    57         [HttpPost]
    58         [ActionName("SaveOrder")]
    59         public ActionResult SaveOrderPost() {
    60           var orderModel = Session["order"] as OrderModel;
    61           //TODO: Save order via back-end
    62           var order = new Order() {
    63             State = OrderState.Created,
    64             User = new User() { Name = Membership.GetUser().UserName },
    65             BillingType = orderModel.BillingType,
    66             BillingPeriod = orderModel.BillingPeriod
    67           };
    68          
    69           var orderLines = new List<OrderLine>();
    70           var products = billing.GetProducts();
    71           foreach (var key in orderModel.ProductQuantities.Keys) {
    72             var product = (from p in products where p.Id == key select p).FirstOrDefault();
    73             orderLines.Add(new OrderLine() {
    74                Order = order,
    75                Product = product,
    76                ProductPrice = product.Price,
    77                Quantity = orderModel.ProductQuantities[key]
    78             });
    79           }
    80           order.OrderLines = orderLines;
    81           billing.SaveOrder(order);
    82           return RedirectToAction("OrderSaved");
    83         }
     52    [HttpPost]
     53    [ActionName("SaveOrder")]
     54    public ActionResult SaveOrderPost() {
     55      var orderModel = Session["order"] as OrderModel;
     56      //TODO: Save order via back-end
     57      var order = new Order() {
     58        State = OrderState.Created,
     59        User = new User() { Name = Membership.GetUser().UserName },
     60        BillingType = orderModel.BillingType,
     61        BillingPeriod = orderModel.BillingPeriod
     62      };
    8463
    85         public ActionResult OrderSaved() {
    86           return View();
    87         }
     64      var orderLines = new List<OrderLine>();
     65      var products = billing.GetProducts();
     66      foreach (var key in orderModel.ProductQuantities.Keys) {
     67        var product = (from p in products where p.ProductId == key select p).FirstOrDefault();
     68        orderLines.Add(new OrderLine() {
     69          Order = order,
     70          Product = product,
     71          ProductPrice = product.Price,
     72          Quantity = orderModel.ProductQuantities[key]
     73        });
     74      }
     75      order.OrderLines = orderLines;
     76      billing.SaveOrder(order);
     77      return RedirectToAction("OrderSaved");
    8878    }
     79
     80    public ActionResult OrderSaved() {
     81      return View();
     82    }
     83  }
    8984}
  • branches/OaaS/HeuristicLab.Services.Optimization.Web/WebRole.cs

    r9166 r9576  
    11using System;
    2 using System.Collections.Generic;
    3 using System.Linq;
    4 using Microsoft.WindowsAzure;
    52using Microsoft.WindowsAzure.Diagnostics;
    63using Microsoft.WindowsAzure.ServiceRuntime;
     
    2320        }
    2421      }
    25       catch (RoleEnvironmentException ex) {
     22      catch (RoleEnvironmentException) {
    2623        // diagnostics connection string not in configuration
    2724        // -> diagnostics disabled
Note: See TracChangeset for help on using the changeset viewer.