C# 这个mvc动作应该被削减吗
我刚刚进入MVC4(以及一般的mvc),我只是想知道这个动作代码是可以的,还是应该再次精简C# 这个mvc动作应该被削减吗,c#,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-controller,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Controller,我刚刚进入MVC4(以及一般的mvc),我只是想知道这个动作代码是可以的,还是应该再次精简 [HttpPost] public ActionResult Index(DashboardViewModel dbModel) { //retrieve latest resident order var residentOrder = db.ResidentOrders.GetById(dbModel.ResidentOr
[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顺便说一句,我建议您创建一个“存储库”来隐藏控制器操作的详细信息。
一个“Upsert”方法将允许清楚而优雅地实现这一点,从而对控制器隐藏细节。好的,我将把它去掉。是upsert的方式,还是我应该有单独的插入更新功能?