Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/OrderAdminController.cs @ 9582

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

#1888:

  • Added an overview for users to inspect their orders
  • Order Administrators may now suspend or reactivate orders
  • When creating an order, its necessary to enter payment information (paypal, credit card,...) before
  • Also, the billing period and type must be entered during the creation of an order.
File size: 2.1 KB
Line 
1using System.Linq;
2using System.Web.Mvc;
3using HeuristicLab.Services.Optimization.Billing.Business;
4using HeuristicLab.Services.Optimization.Billing.Interfaces;
5using HeuristicLab.Services.Optimization.Web.Models;
6
7namespace HeuristicLab.Services.Optimization.Web.Controllers {
8  [Authorize(Roles = "Web User")]
9  public class OrderAdminController : Controller {
10    private IOptimizationBilling billing = BillingServiceProvider.Instance;
11
12    //
13    // GET: /OrderAdmin/
14
15    public ActionResult Index() {
16      return View(new OrderAdminModel() {
17        ActiveOrders = billing.GetOrdersByState(Billing.Model.OrderState.Active),
18        CreatedOrders = billing.GetOrdersByState(Billing.Model.OrderState.Created),
19        SuspendedOrders = billing.GetOrdersByState(Billing.Model.OrderState.Suspended)
20      });
21    }
22
23    [HttpPost]
24    public ActionResult ActivateOrder(OrderAdminModel model) {
25      var order = (from o in billing.GetOrdersByState(Billing.Model.OrderState.Created) where o.OrderId == model.OrderId select o).FirstOrDefault();     
26      order.State = Billing.Model.OrderState.Active;
27      // TODO: Probably activate order via different method
28      billing.SaveOrder(order);
29      return RedirectToAction("Index");
30    }
31
32    [HttpPost]
33    public ActionResult SuspendOrder(OrderAdminModel model) {
34      var order = (from o in billing.GetOrdersByState(Billing.Model.OrderState.Active) where o.OrderId == model.OrderId select o).FirstOrDefault();
35      order.State = Billing.Model.OrderState.Suspended;
36      // TODO: Probably activate order via different method
37      billing.SaveOrder(order);
38      return RedirectToAction("Index");
39    }
40
41    [HttpPost]
42    public ActionResult ReactivateOrder(OrderAdminModel model) {
43      var order = (from o in billing.GetOrdersByState(Billing.Model.OrderState.Suspended) where o.OrderId == model.OrderId select o).FirstOrDefault();
44      order.State = Billing.Model.OrderState.Active;
45      // TODO: Probably activate order via different method
46      billing.SaveOrder(order);
47      return RedirectToAction("Index");
48    }
49
50  }
51}
Note: See TracBrowser for help on using the repository browser.