public async Task <IActionResult> Add([FromForm] CartItemChangeViewModel model) { model.ProductId = "ProductId"; var response = await _cartAppService.Change(model); return(Json(response)); }
public async Task <CartViewModel> Change(CartItemChangeViewModel item) { try { var customer = await _currentContext.GetCurrentCustomer(); CartViewModel model = new CartViewModel(await InitAjax()); RCart cart = await _cartService.GetFromCache(_currentContext.ClientId, EnumDefine.CartStatusEnum.New); if (cart == null) { //int shardId= _commonService.get var command = item.ToCommand(1, _currentContext.LanguageId, customer.Id); long systemIdentity = await _commonService.GetNextId(typeof(Cart)); CartAddCommand cartAddCommand = new CartAddCommand(SystemDefine.DefaultVersion) { LanguageId = _currentContext.LanguageId, Code = Common.Common.GenerateCodeFromId(systemIdentity), StoreId = ConfigSettingEnum.StoreId.GetConfig(), ClientId = _currentContext.ClientId, CreatedUid = customer.Id ?? string.Empty, CartItem = command, CartItemDetail = new CartItemDetailAddCommand(SystemDefine.DefaultVersion) { ProductId = command.ProductId, Name = "Name", } }; await _cartService.Add(cartAddCommand); } else { //if (cart.Version != item.Version) //{ // model.AddMessage(ResourceKey.Cart_IsChanged); // return model; //} CartItemChangeCommand command = item.ToCommand(1, _currentContext.LanguageId, customer.Id, cart); await _cartService.Change(command); } cart = await _cartService.GetFromCache(_currentContext.ClientId, EnumDefine.CartStatusEnum.New); model.CartItems = cart.CartItemFulls?.Select(p => p.ToModel()).ToArray(); return(model); } catch (Exception e) { _logger.LogError(e, e.Message); throw e; } }
public static CartItemAddCommand ToCommand(this CartItemChangeViewModel model, decimal price, string languageId, string createdUid) { if (model == null) { return(null); } return(new CartItemAddCommand(SystemDefine.DefaultVersion) { Price = price, ProductId = model.ProductId, Quantity = model.Quantity, LanguageId = languageId, CreatedUid = createdUid, StoreId = ConfigSettingEnum.StoreId.GetConfig(), }); }
public static CartItemChangeCommand ToCommand(this CartItemChangeViewModel model, decimal price, string languageId, string updatedUid, RCart cart) { if (model == null) { return(null); } return(new CartItemChangeCommand(cart.Version) { Price = price, ProductId = model.ProductId, Quantity = model.Quantity, LanguageId = languageId, CartCode = cart.Code, CartId = cart.Id, StoreId = ConfigSettingEnum.StoreId.GetConfig(), UpdatedUid = updatedUid, Action = (EnumDefine.CartActionEnum)model.Action, ShardId = cart.ShardId, Version = cart.Version, CreatedDateUtc = Extensions.GetCurrentDateUtc(), }); }