Editing Purpose from LogController works

This commit is contained in:
2013-03-05 13:22:00 -05:00
parent 76cb768fa9
commit 47a60965fe
6 changed files with 56 additions and 19 deletions
+6
View File
@@ -75,5 +75,11 @@ namespace MileageTraker.Web.Controllers
DataService.UpdateUser(user);
return url;
}
protected SelectList GetPurposeTypesSelectList()
{
var selectList = new SelectList(DataService.GetPurposeTypes(), "PurposeTypeId", "Purpose");
return selectList;
}
}
}
-6
View File
@@ -109,11 +109,5 @@ namespace MileageTraker.Web.Controllers
}
};
}
private SelectList GetPurposeTypesSelectList()
{
var selectList = new SelectList(DataService.GetPurposeTypes(), "PurposeTypeId", "Purpose");
return selectList;
}
}
}
+31 -8
View File
@@ -89,7 +89,10 @@ namespace MileageTraker.Web.Controllers
public ViewResult Details(int id)
{
var log = DataService.GetLog(id);
var viewModel = new LogViewModel(log);
var viewModel = new LogViewModel(log)
{
Purpose = {Available = GetPurposeTypesSelectList()}
};
return View(viewModel);
}
@@ -130,8 +133,9 @@ namespace MileageTraker.Web.Controllers
{
var viewModel = new LogViewModel
{
Date = DateTime.Today,
VehicleId = vehicleId
Date = DateTime.Today,
VehicleId = vehicleId,
Purpose = {Available = GetPurposeTypesSelectList()},
};
return View(viewModel);
@@ -149,20 +153,29 @@ namespace MileageTraker.Web.Controllers
log.UserHostAddress = HttpContext.Request.UserHostAddress;
log.UserAgent = HttpContext.Request.UserAgent;
if (viewModel.Purpose != null)
log.Purpose =
DataService.GetPurposeTypes()
.First(pt => pt.PurposeTypeId == viewModel.Purpose.Selected);
DataService.AddLog(log);
TempData["StatusMessage"] = "Log created";
return RedirectToAction("Index");
}
viewModel.Purpose.Available = GetPurposeTypesSelectList();
return View(viewModel);
}
public ActionResult Edit(int id)
{
var log = DataService.GetLog(id);
var logViewModel = new LogViewModel(log);
return View(logViewModel);
var viewModel = new LogViewModel(log)
{
Purpose = {Available = GetPurposeTypesSelectList()}
};
return View(viewModel);
}
[HttpPost]
@@ -175,18 +188,28 @@ namespace MileageTraker.Web.Controllers
viewModel.SetProperties(log);
log.User = DataService.FindUserByFullName(viewModel.UserFullName);
DataService.UpdateLog(log);
if (viewModel.Purpose != null)
log.Purpose =
DataService.GetPurposeTypes()
.First(pt => pt.PurposeTypeId == viewModel.Purpose.Selected);
DataService.UpdateLog(log);
TempData["StatusMessage"] = "Log updated";
return RedirectToAction("Details", new{id = log.LogId});
}
return View(viewModel);
viewModel.Purpose.Available = GetPurposeTypesSelectList();
return View(viewModel);
}
public ActionResult Delete(int id)
{
var log = DataService.GetLog(id);
var viewModel = new LogViewModel(log);
var viewModel = new LogViewModel(log)
{
Purpose = {Available = GetPurposeTypesSelectList()}
};
return View(viewModel);
}