- Timestamp:
- 06/24/13 14:11:05 (11 years ago)
- Location:
- branches/OaaS/HeuristicLab.Services.Optimization.Web
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/OrderController.cs
r9586 r9654 6 6 using HeuristicLab.Services.Optimization.Billing.Interfaces; 7 7 using HeuristicLab.Services.Optimization.Billing.Model; 8 using HeuristicLab.Services.Optimization.Web.Helpers; 8 9 using HeuristicLab.Services.Optimization.Web.Models; 9 using HeuristicLab.Services.Optimization.Web.Helpers;10 10 11 11 namespace HeuristicLab.Services.Optimization.Web.Controllers { … … 18 18 // GET: /Order/ 19 19 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 } 26 25 27 28 29 30 31 32 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 } 34 33 35 34 36 37 38 39 40 41 42 43 44 45 46 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 } 48 47 49 48 public ActionResult AddProduct() { … … 73 72 [ActionName("SaveOrder")] 74 73 public ActionResult SaveOrderPost(OrderModel orderModel) { 74 var user = billing.GetUser(UserName); 75 75 var orderProductModel = Session["order"] as OrderModel; 76 76 //TODO: Save order via back-end 77 77 var order = new Order() { 78 78 State = OrderState.Created, 79 User = new User() { Name = Membership.GetUser().UserName },79 User = user, 80 80 BillingType = orderModel.BillingType, 81 81 BillingPeriod = orderModel.BillingPeriod … … 110 110 oldInfo.AdditionalInformation = model.AdditionalInformation; 111 111 oldInfo.PaymentMethod = model.Method; 112 billing.SaveUser(user); 113 } 114 else { 112 oldInfo.EntityState = State.Modified; 113 } else { 115 114 user.PaymentInformation.Add(new PaymentInformation() { CardNumber = model.CardNumber, AdditionalInformation = model.AdditionalInformation, PaymentMethod = model.Method }); 115 user.EntityState = State.Modified; 116 116 } 117 117 118 billing.SaveUser(user); 118 119 return RedirectToAction("SaveOrder"); 119 120 } … … 122 123 return View(); 123 124 } 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 } 124 181 } 125 182 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/HeuristicLab.Services.Optimization.Web.csproj
r9586 r9654 305 305 <Content Include="HeuristicLab 3.3.exe" /> 306 306 <Content Include="Mappings\tsp.xml" /> 307 <Content Include="Scripts\jquery-1.4.4-vsdoc.js" />308 <Content Include="Scripts\jquery-1.4.4.js" />309 <Content Include="Scripts\jquery-1.4.4.min.js" />310 307 <Content Include="Scripts\jquery-1.5.1-vsdoc.js" /> 311 308 <Content Include="Scripts\jquery-ui-1.8.11.js" /> … … 408 405 <Content Include="Views\Usage\Index.cshtml" /> 409 406 <Content Include="Views\Invoice\Index.cshtml" /> 407 <Content Include="Views\Order\ContactInformation.cshtml" /> 410 408 </ItemGroup> 411 409 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Models/OrderModel.cs
r9582 r9654 1 1 using System; 2 2 using System.Collections.Generic; 3 using System.Linq;4 using System.Web;5 3 using HeuristicLab.Services.Optimization.Billing.Model; 6 4 … … 9 7 public class OrderModel { 10 8 public BillingType BillingType { get; set; } 11 public BillingPeriod BillingPeriod { get; set; } 9 public BillingPeriod BillingPeriod { get; set; } 12 10 public DateTime? ActiveSince { get; set; } 13 11 public DateTime? ActiveUntil { get; set; } … … 43 41 } 44 42 43 public class ContactInformationModel { 44 public long ContactInformationId { get; set; } 45 public string OrganizationName { get; set; } 46 public string Street { get; set; } 47 public string City { get; set; } 48 public string State { get; set; } 49 public string PostalCode { get; set; } 50 public string LastName { get; set; } 51 public string FirstName { get; set; } 52 public string Email { get; set; } 53 } 54 45 55 public class ProductsModel { 46 56 public IList<Product> Products { get; set; } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Order/SaveOrder.cshtml
r9586 r9654 25 25 26 26 @if (Model.User.PaymentInformation == null || Model.User.PaymentInformation.Count == 0) { 27 <h2>You didn't specify any payment information yet. Please click @Html.ActionLink("here", "Payment") to enter the information.</h2> 27 <h2>You didn't specify any payment information yet. Please click @Html.ActionLink("here", "Payment") 28 to enter the information.</h2> 29 } else { 30 <h2>Choose one of your payment options:</h2> 31 foreach (var pi in Model.User.PaymentInformation) { 32 <p> 33 @Html.Label("PaymentInformationId", string.Format("{0} ({1})", pi.PaymentMethod, pi.CardNumber)) 34 @Html.RadioButton("PaymentInformationId", pi.PaymentInformationId) 35 </p> 36 } 37 <h3>Or add payment information by clicking @Html.ActionLink("here", "Payment").</h3> 28 38 } 29 else { 30 <h2>Choose one of your payment options:</h2> 31 foreach (var pi in Model.User.PaymentInformation) { 32 <p> 33 @Html.Label("PaymentInformationId", string.Format("{0} ({1})", pi.PaymentMethod, pi.CardNumber)) 34 @Html.RadioButton("PaymentInformationId", pi.PaymentInformationId) 35 </p> 36 } 37 <h3>Or add payment information by clicking @Html.ActionLink("here", "Payment").</h3> 38 39 using (Html.BeginForm("SaveOrder", "Order")) { 40 <h2>How often would you like to be billed?</h2> 41 <p> 42 @Html.RadioButtonForEnum(m => m.BillingPeriod) 43 </p> 44 <h2>Would you like to pay upfront or at the end of the period?</h2> 45 <p> 46 @Html.RadioButtonForEnum(m => m.BillingType) 47 </p> 48 <p> 49 <input type="submit" value="Save order" /> 50 </p> 39 40 @if (Model.User.ContactInformation == null) { 41 <h2>You didn't specify any contact information yet. Please click @Html.ActionLink("here", "ContactInformation") 42 to enter the information.</h2> 43 } else { 44 <h2>Contact Information</h2> 45 46 <table> 47 <tbody> 48 <tr> 49 <td>@Html.LabelFor(m => m.User.ContactInformation.FirstName)</td> 50 <td>@Model.User.ContactInformation.FirstName</td> 51 </tr> 52 <tr> 53 <td>@Html.LabelFor(m => m.User.ContactInformation.LastName)</td> 54 <td>@Model.User.ContactInformation.LastName</td> 55 </tr> 56 <tr> 57 <td>@Html.LabelFor(m => m.User.ContactInformation.FirstName)</td> 58 <td>@Model.User.ContactInformation.FirstName</td> 59 </tr> 60 <tr> 61 <td>@Html.LabelFor(m => m.User.ContactInformation.Email)</td> 62 <td>@Model.User.ContactInformation.Email</td> 63 </tr> 64 <tr> 65 <td>@Html.LabelFor(m => m.User.ContactInformation.OrganizationName)</td> 66 <td>@Model.User.ContactInformation.OrganizationName</td> 67 </tr> 68 <tr> 69 <td>@Html.LabelFor(m => m.User.ContactInformation.Street)</td> 70 <td>@Model.User.ContactInformation.Street</td> 71 </tr> 72 <tr> 73 <td>@Html.LabelFor(m => m.User.ContactInformation.PostalCode)</td> 74 <td>@Model.User.ContactInformation.PostalCode</td> 75 </tr> 76 <tr> 77 <td>@Html.LabelFor(m => m.User.ContactInformation.City)</td> 78 <td>@Model.User.ContactInformation.City</td> 79 </tr> 80 <tr> 81 <td>@Html.LabelFor(m => m.User.ContactInformation.State)</td> 82 <td>@Model.User.ContactInformation.State</td> 83 </tr> 84 </tbody> 85 </table> 86 87 <h3>Edit contact information by clicking @Html.ActionLink("here", "ContactInformation")</h3> 51 88 } 89 90 @if ((Model.User.PaymentInformation != null && Model.User.PaymentInformation.Count != 0) && (Model.User.ContactInformation != null)) { 91 using (Html.BeginForm("SaveOrder", "Order")) { 92 <h2>How often would you like to be billed?</h2> 93 <p>@Html.RadioButtonForEnum(m => m.BillingPeriod)</p> 94 95 <h2>Would you like to pay upfront or at the end of the period?</h2> 96 <p>@Html.RadioButtonForEnum(m => m.BillingType)</p> 97 98 <p><input type="submit" value="Save order" /></p> 99 } 52 100 }
Note: See TracChangeset
for help on using the changeset viewer.