Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/24/13 14:11:05 (10 years ago)
Author:
spimming
Message:

#1888:

  • Added model and view for contact information
  • Insert contact information on SaveOrder page
  • Set correct entity state
File:
1 edited

Legend:

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

    r9586 r9654  
    66using HeuristicLab.Services.Optimization.Billing.Interfaces;
    77using HeuristicLab.Services.Optimization.Billing.Model;
     8using HeuristicLab.Services.Optimization.Web.Helpers;
    89using HeuristicLab.Services.Optimization.Web.Models;
    9 using HeuristicLab.Services.Optimization.Web.Helpers;
    1010
    1111namespace HeuristicLab.Services.Optimization.Web.Controllers {
     
    1818    // GET: /Order/
    1919
    20         public ActionResult Index()
    21         {
    22           if (RedirectToLoginIfNecessary("Order", false))
    23             return View();
    24           return CreateOrder(new OrderModel()); //View();
    25         }
     20    public ActionResult Index() {
     21      if (RedirectToLoginIfNecessary("Order", false))
     22        return View();
     23      return CreateOrder(new OrderModel()); //View();
     24    }
    2625
    27         public ActionResult Overview() {
    28           if (RedirectToLoginIfNecessary("Order", false))
    29             return View();
    30           MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
    31           var orders = billing.GetOrders(currentUser.UserName);
    32           return View(new OverviewModel() { Orders = orders });
    33         }
     26    public ActionResult Overview() {
     27      if (RedirectToLoginIfNecessary("Order", false))
     28        return View();
     29      MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
     30      var orders = billing.GetOrders(currentUser.UserName);
     31      return View(new OverviewModel() { Orders = orders });
     32    }
    3433
    3534
    36         [HttpPost]
    37         public ActionResult CreateOrder(OrderModel model) {
    38           if (RedirectToLoginIfNecessary("Order", false))
    39             return View();
    40           Session["order"] = model;
    41           var currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
    42           if (billing.GetUser(currentUser.UserName) == null) {
    43             billing.SaveUser(new User() { Name = currentUser.UserName, PaymentInformation = new List<PaymentInformation>() });
    44           }
    45           model.User = billing.GetUser(currentUser.UserName);
    46           return AddProduct();
    47         }
     35    [HttpPost]
     36    public ActionResult CreateOrder(OrderModel model) {
     37      if (RedirectToLoginIfNecessary("Order", false))
     38        return View();
     39      Session["order"] = model;
     40      var currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
     41      if (billing.GetUser(currentUser.UserName) == null) {
     42        billing.SaveUser(new User() { Name = currentUser.UserName, PaymentInformation = new List<PaymentInformation>() });
     43      }
     44      model.User = billing.GetUser(currentUser.UserName);
     45      return AddProduct();
     46    }
    4847
    4948    public ActionResult AddProduct() {
     
    7372    [ActionName("SaveOrder")]
    7473    public ActionResult SaveOrderPost(OrderModel orderModel) {
     74      var user = billing.GetUser(UserName);
    7575      var orderProductModel = Session["order"] as OrderModel;
    7676      //TODO: Save order via back-end
    7777      var order = new Order() {
    7878        State = OrderState.Created,
    79         User = new User() { Name = Membership.GetUser().UserName },
     79        User = user,
    8080        BillingType = orderModel.BillingType,
    8181        BillingPeriod = orderModel.BillingPeriod
     
    110110        oldInfo.AdditionalInformation = model.AdditionalInformation;
    111111        oldInfo.PaymentMethod = model.Method;
    112         billing.SaveUser(user);
    113       }
    114       else {
     112        oldInfo.EntityState = State.Modified;
     113      } else {
    115114        user.PaymentInformation.Add(new PaymentInformation() { CardNumber = model.CardNumber, AdditionalInformation = model.AdditionalInformation, PaymentMethod = model.Method });
     115        user.EntityState = State.Modified;
    116116      }
    117117
     118      billing.SaveUser(user);
    118119      return RedirectToAction("SaveOrder");
    119120    }
     
    122123      return View();
    123124    }
     125
     126    public ActionResult ContactInformation() {
     127      var user = billing.GetUser(UserName);
     128      var userCi = user.ContactInformation;
     129      ContactInformationModel contactInformationModel = null;
     130
     131      if (userCi == null) {
     132        contactInformationModel = new ContactInformationModel();
     133      } else {
     134        contactInformationModel = new ContactInformationModel() {
     135          ContactInformationId = userCi.ContactInformationId,
     136          FirstName = userCi.FirstName,
     137          LastName = userCi.LastName,
     138          Email = userCi.Email,
     139          OrganizationName = userCi.OrganizationName,
     140          Street = userCi.Street,
     141          PostalCode = userCi.PostalCode,
     142          City = userCi.City,
     143          State = userCi.State
     144        };
     145      }
     146      return View(contactInformationModel);
     147    }
     148
     149    [HttpPost]
     150    public ActionResult SaveContactInformation(ContactInformationModel model) {
     151      var user = billing.GetUser(UserName);
     152      var userCi = user.ContactInformation;
     153      if (userCi != null) {
     154        userCi.City = model.City;
     155        userCi.Email = model.Email;
     156        userCi.FirstName = model.FirstName;
     157        userCi.LastName = model.LastName;
     158        userCi.OrganizationName = model.OrganizationName;
     159        userCi.PostalCode = model.PostalCode;
     160        userCi.State = model.State;
     161        userCi.Street = model.Street;
     162        userCi.EntityState = State.Modified;
     163      } else {
     164        user.ContactInformation = new ContactInformation() {
     165          City = model.City,
     166          Email = model.Email,
     167          FirstName = model.FirstName,
     168          LastName = model.LastName,
     169          OrganizationName = model.OrganizationName,
     170          PostalCode = model.PostalCode,
     171          State = model.State,
     172          Street = model.Street
     173        };
     174        user.EntityState = State.Modified;
     175      }
     176
     177      billing.SaveUser(user);
     178
     179      return RedirectToAction("SaveOrder");
     180    }
    124181  }
    125182}
Note: See TracChangeset for help on using the changeset viewer.