コード例 #1
0
        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");
                }
            }
        }
コード例 #2
0
        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");
                }
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
ファイル: BasketService.cs プロジェクト: damla/HeadstoneClone
        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);
        }
コード例 #5
0
ファイル: Client.cs プロジェクト: Ashvin1191/TanteBazar
        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}");
                }
            }
        }
コード例 #6
0
        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"));
        }