public async Task AddItemToBasket(string customerId, BasketItemRequest basketItemRequestDto, Dtos.Item itemDto) { var param = new { CustomerId = customerId, ItemId = itemDto.ItemId, Quantity = basketItemRequestDto.ItemQuantity, TotalPrice = (itemDto.UnitPrice * basketItemRequestDto.ItemQuantity), IsRemove = false, IsCheckout = false, DateAdded = DateTime.Now, DateLastModified = DateTime.Now }; var query = $@"INSERT INTO Basket(CustomerId, ItemId, Quantity, TotalPrice, IsRemove, IsCheckout, DateAdded, DateLastModified) VALUES(@CustomerId, @ItemId, @Quantity, @TotalPrice, @IsRemove, @IsCheckout, @DateAdded, @DateLastModified)"; using (var connection = new SqlConnection(_appConfig.TantaBazarDBConnectionString)) { try { await connection.ExecuteAsync(query, param); } catch (Exception ex) { _logger .Error(ex, "Error while saving basket item"); } } }
public async Task UpdateBasketItem(string customerId, BasketItemRequest basketItemRequestDto, Item itemDto) { var query = $@"UPDATE Basket SET DateLastModified = @DateLastModified, Quantity = @Quantity, TotalPrice = @TotalPrice where customerId = '{customerId}' and itemId = {itemDto.ItemId} and isCheckout = 0 and isRemove = 0"; var param = new { DateLastModified = DateTime.Now, Quantity = basketItemRequestDto.ItemQuantity, TotalPrice = (itemDto.UnitPrice * basketItemRequestDto.ItemQuantity) }; using (var connection = new SqlConnection(_appConfig.TantaBazarDBConnectionString)) { try { var quertResult = await connection.ExecuteAsync(query, param); } catch (Exception ex) { _logger .ForContext <BasketDataService>() .Error(ex, "Error while updating BasketService"); } } }
public async Task <IActionResult> AddItemToBasket([FromBody] BasketItemRequest basketItemRequest) { var apiUser = BuildApiUser(); if (apiUser == null) { return(Unauthorized("Invalid or no X_API_SECRET")); } await _basketService.AddItemToBasket(apiUser.CustomerKey, BasketItemRequestMapper.MapToDto(basketItemRequest)); return(Ok(basketItemRequest)); }
public BasketItemServiceResponse <BasketItem> GetBasketItems(BasketItemRequest req, List <ServiceLogRecord> logRecords = null) { var response = new BasketItemServiceResponse <BasketItem>(); var BasketItems = new List <BasketItem>(); #region [ Envelope settings ] // Create the including fields according to the envelope var includes = new List <string>(); #endregion #region [ Filters ] // Check for filters Expression <Func <BasketItem, bool> > filterPredicate = PredicateBuilder.New <BasketItem>(true); // Add the filters if (req.BasketItemIDs.Any()) { filterPredicate = filterPredicate.And(r => req.BasketItemIDs.Contains(r.BasketItemID)); } if (req.BasketIDs.Any()) { filterPredicate = filterPredicate.And(m => req.BasketIDs.Contains(m.BasketID)); } if (req.ProductIDs.Any()) { filterPredicate = filterPredicate.And(m => req.ProductIDs.Contains(m.ProductID)); } #endregion // Make the query if (filterPredicate.Parameters.Count > 0) { BasketItems = _basketItemServiceBase.GetIncluding(filterPredicate, includes.ToArray()).Result; } else { BasketItems = _basketItemServiceBase.GetAllIncluding(includes.ToArray()).Result; } response.Type = Headstone.Common.ServiceResponseTypes.Success; response.Result = BasketItems; return(response); }
public async Task AddItemToBasket(BasketItemRequest item) { _httpClient.DefaultRequestHeaders.Add("X_API_SECRET", _config.ClientSecret); var httpRequest = new HttpRequestMessage(); httpRequest.Method = HttpMethod.Post; httpRequest.RequestUri = new Uri($"{_config.ServiceUrl}/api/basket"); httpRequest.Content = new StringContent(JsonConvert.SerializeObject(item), Encoding.UTF8, "application/json"); using (var httpResponse = await _httpClient.SendAsync(httpRequest)) { if (!httpResponse.IsSuccessStatusCode) { throw new Exception($"adding item to basket was not successful. Error Code: {httpResponse.StatusCode}"); } } }
public async Task <IActionResult> RemoveBasketItem([FromBody] BasketItemRequest basketItemRequest) { var apiUser = BuildApiUser(); if (apiUser == null) { return(Unauthorized("Invalid or no X_API_SECRET")); } try { await _basketService.RemoveFromBasket(apiUser.CustomerKey, basketItemRequest.Id); } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok("Item has been removed")); }