Ho un'azione sul mio controller chiamata DeleteLine
. Ciò rimuove una riga dal carrello degli utenti.
L'azione del mio controller è simile a questa:
[HttpGet]
public ActionResult DeleteLine(int orderId, int lineId)
{
var orderResult = _salesOrderService.DeleteLine(_workerContext.CurrentCustomer, orderId, lineId);
var errorMessage = "";
switch (orderResult.Type)
{
case SalesOrderResultType.Deleted:
errorMessage = "Item Removed. You now have no items in your basket.";
break;
case SalesOrderResultType.Failed:
errorMessage =
"Something went wrong and your item could not be removed from your cart. Please try again.";
break;
case SalesOrderResultType.FailedAlreadyComplete:
errorMessage =
"The item you are trying to remove is part of an order that has already been completed.";
break;
case SalesOrderResultType.NotFoundForCustomer:
errorMessage =
"The item which you are trying to delete does not belong to an order we can find for you.";
break;
}
if (errorMessage.IsNotEmpty())
return ErrorNotificationView(errorMessage);
AddSuccessNotification("Your item has been deleted successfully.", false);
if (Request.UrlReferrer != null)
return Redirect(Request.UrlReferrer.ToString());
return View();
}
La maggior parte del lavoro effettivo delle gambe viene eseguito in _salesOrderService.DeleteLine
che controlla se l'ID ordine appartiene al cliente, rimuove l'elemento selezionato e infine rimuove l'intero ordine se non ci sono righe su di esso.
La mia domanda è: il servizio deve essere gestito da questo oppure dipende dal controller?
Dal mio punto di vista, l'ho messo nel servizio in quanto significa che posso rimuovere un elemento da un cestino degli utenti ovunque con relativa facilità, ma voglio assicurarmi che questo sia l'approccio corretto prima di continuare.