这个MVC动作应该被裁剪吗?
本文关键字:裁剪 MVC 这个 | 更新日期: 2023-09-27 18:18:37
我刚刚进入mvc 4(和mvc一般),我只是想知道这个动作代码是ok的还是应该再次剥离?
[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
我建议您创建一个"repository"来隐藏Controller操作的详细信息。"Upsert"方法可以让这个功能清晰而优雅地实现,对控制器隐藏细节。