public IActionResult Update(CartRecordViewModel record) { _shoppingCartRepo.Context.CustomerId = ViewBag.CustomerId; ShoppingCartRecord dbItem = _shoppingCartRepo.Find(record.Id); var mapper = _config.CreateMapper(); if (record.TimeStamp != null && dbItem.TimeStamp.SequenceEqual(record.TimeStamp)) { dbItem.Quantity = record.Quantity; dbItem.DateCreated = DateTime.Now; try { _shoppingCartRepo.Update(dbItem); CartRecordWithProductInfo updatedItem = _shoppingCartRepo.GetShoppingCartRecord(dbItem.Id); if (updatedItem == null) { return(new EmptyResult()); } CartRecordViewModel newItem = mapper.Map <CartRecordViewModel>(updatedItem); return(PartialView(newItem)); } catch (Exception) { ModelState.AddModelError(string.Empty, "An error occurred updating the cart. Please reload the page and try again."); var updatedItem = _shoppingCartRepo.GetShoppingCartRecord(dbItem.ProductId); CartRecordViewModel newItem = mapper.Map <CartRecordViewModel>(updatedItem); return(PartialView(newItem)); } } ModelState.AddModelError("", "Another user has updated the record."); var item = _shoppingCartRepo.GetShoppingCartRecord(dbItem.ProductId); CartRecordViewModel vm = mapper.Map <CartRecordViewModel>(dbItem); return(PartialView(vm)); }
public async Task <IActionResult> Update(int customerId, int id, string timeStampString, CartRecordViewModel item) { item.TimeStamp = JsonConvert.DeserializeObject <byte[]>($"\"{timeStampString}\""); if (!ModelState.IsValid) { return(PartialView(item)); } var mapper = _config.CreateMapper(); var newItem = mapper.Map <ShoppingCartRecord>(item); try { await _webApiCalls.UpdateCartItemAsync(newItem); var updatedItem = await _webApiCalls.GetCartRecordAsync(customerId, item.ProductId); var newViewModel = mapper.Map <CartRecordViewModel>(updatedItem); return(PartialView(newViewModel)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, "An error occurred updating the cart. Please reload the page and try again."); return(PartialView(item)); } }
public IActionResult Update(int customerId, int id, string timeStampString, CartRecordViewModel item) { item.TimeStamp = JsonConvert.DeserializeObject <byte[]>($"\"{timeStampString}\""); if (!ModelState.IsValid) { return(PartialView(item)); } var mapper = _config.CreateMapper(); var newItem = mapper.Map <ShoppingCartRecord>(item); try { newItem.DateCreated = DateTime.Now; _shoppingCartRepo.Update(newItem); var updatedItem = _shoppingCartRepo.GetShoppingCartRecord(customerId, item.ProductId); item = mapper.Map <CartRecordViewModel>(updatedItem); return(PartialView(item)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, "An error occurred updating the cart. Please reload the page and try again."); return(PartialView(item)); } }
public async Task <IActionResult> Update(int id, CartRecordViewModel record) { var cartRecord = new ShoppingCartRecord { Id = record.Id, Quantity = record.Quantity, ProductId = record.ProductId, TimeStamp = record.TimeStamp, CustomerId = record.CustomerId }; var item = await _serviceWrapper.UpdateShoppingCartRecordAsync(id, cartRecord); if (item == null) { return(new EmptyResult()); } var mapper = _config.CreateMapper(); CartRecordViewModel vm = mapper.Map <CartRecordViewModel>(item); return(PartialView(vm)); }