我刚刚进入mvc 4(和mvc一般),我只是想知道这个动作代码是好还是应该再次剥离?
[HttpPost]
public ActionResult Index(DashboardViewModel dbModel)
{
//retrieve latest resident order
var residentOrder = db.ResidentOrders.GetById(dbModel.ResidentOrderID);
if (residentOrder == null)
{
var order = db.Orders.GetById(dbModel.OrderID);
var user = db.Users.GetUserByUsername(User.Identity.Name);
residentOrder = new ResidentOrder()
{
CreatedDate=DateTime.Now,
LastUpdateDate = DateTime.Now,
Litres=0,
Customer = user
};
order.ResidentOrders.Add(residentOrder);
db.Commit();
}
//check to see if value has changed
if (!dbModel.ResidentLitresOrdered.Equals(residentOrder.Litres))
{
//get new ordered value
residentOrder.Litres = dbModel.ResidentLitresOrdered;
db.Commit();
//send an email just to notify in writing of the change.
SendOwnOrderQtyUpdateNotification();
}
return View(dbModel);
}
基本上如果居民订单不存在,那么我们创建一个,这是系统中唯一需要这样做的地方。
我是否仍应将该代码剥离到我的存储库中?
db是我的IUnitOfWork btw
答案 0 :(得分:1)
我建议您创建一个“存储库”来隐藏Controller操作中的详细信息。 “Upsert”方法可以清晰,优雅地实现隐藏控制器的细节。