public Cart AddCart(CreateCartRequest createRequest) { createRequest.Loose = System.Convert.ToDecimal(createRequest.Loose); createRequest.Cib = System.Convert.ToDecimal(createRequest.Cib); createRequest.New = System.Convert.ToDecimal(createRequest.New); using (var db = new SqlConnection(ConnectionString)) { var newCart = db.QueryFirstOrDefault <Cart>(@" Insert into carts (name, imageUrl, genre, releasedate, loose, cib, new, productId) Output inserted.* Values(@name, @imageUrl, @genre, @releasedate, @loose, @cib, @new, @productId)", new { createRequest.Name, createRequest.ImageUrl, createRequest.Genre, createRequest.ReleaseDate, createRequest.Loose, createRequest.Cib, createRequest.New, createRequest.ProductId, }); if (newCart != null) { return(newCart); } } throw new Exception("Sorry. No NESVault Cart Was Created."); }
public async Task <IActionResult> CreateCartAsync([FromBody] CreateCartRequest request) { var response = await _createCartHandler.ExecuteAsync(new CreateCartCommand(request.UserId)); return(Ok(new CreateCartResponse { CartId = response.AggregateId })); }
public bool Validate(CreateCartRequest requestToValidate) { return(!(string.IsNullOrEmpty(requestToValidate.Name) || string.IsNullOrEmpty(requestToValidate.Genre) || string.IsNullOrEmpty(requestToValidate.ReleaseDate.ToString()) || string.IsNullOrEmpty(requestToValidate.Loose.ToString()) || string.IsNullOrEmpty(requestToValidate.Cib.ToString()) || string.IsNullOrEmpty(requestToValidate.New.ToString() ))); }
public ActionResult AddCart(CreateCartRequest createRequest) { if (!_validator.Validate(createRequest)) { return(BadRequest(new { error = "NESVault Requests You Fill All Necessary Fields." })); } var newCart = _cartRepository.AddCart(createRequest); return(Created($"api/cart/{newCart.Id}", newCart)); }
public async Task <IActionResult> CreateCart([FromBody] CreateCartRequest payload) { _logger.LogInformation("CreateCartRequest: {@payload}", payload); var cart = await _cartRepository.CreateCart(payload); var response = _mapper.Map <CartResponse>(cart); _logger.LogInformation("CreateCartRequest: {@response}", response); return(Created($"{response.Id}", response)); }
public async Task <IActionResult> Create([FromBody] CreateCartRequest request) { var validationResult = new CreateCartValidator().Validate(request); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var response = await service.CreateCart(request); return(CreatedAtRoute("GetCart", new{ cartId = response.CartId }, response)); }
public async Task <CartResponse> CreateCart(CreateCartRequest request) { var command = new CreateCart { AggregateRootId = Guid.NewGuid(), CustomerId = request.CustomerId }; await dispatcher.SendAndPublishAsync <CreateCart, Cart>(command); var model = await GetCartReadModel(command.AggregateRootId); return(model.ToCartResponse()); }
// GET: /Cart/Add public ActionResult Add(Guid id) { var cartId = GetCartId(); var createNewCart = cartId == Guid.Empty; CartSummaryViewModel summaryModel; if (createNewCart == false) { var editCartRequest = new EditCartRequest(); editCartRequest.ItemsToAdd.Add(id); editCartRequest.Id = cartId; try { var editCartResponse = _cartService.EditCart(editCartRequest); summaryModel = editCartResponse.Cart.ConvertToCartSummaryViewModel(); SaveCartSummaryToCookie(summaryModel.NumberOfItems, summaryModel.CartTotal.ToString(CultureInfo.InvariantCulture)); } catch (CartDoesNotExistException) { createNewCart = true; } } if (!createNewCart) { return(RedirectToLocal("/Cart")); } var createCartRequest = new CreateCartRequest(); createCartRequest.AlbumsToAdd.Add(id); var response = _cartService.CreateCart(createCartRequest); SaveCartIdToCookie(response.Cart.Id); summaryModel = response.Cart.ConvertToCartSummaryViewModel(); SaveCartSummaryToCookie(summaryModel.NumberOfItems, summaryModel.CartTotal.ToString(CultureInfo.InvariantCulture)); return(RedirectToLocal("/Cart")); }
public void CreateCart() { using (var host = new WebHostBuilder() .UseUrls(BaseUrl) .UseKestrel() .UseStartup <Startup>() .Build()) { host.Start(); var request = new CreateCartRequest(Guid.NewGuid()); var cart = Client.CreateCartWithHttpMessagesAsync(Version, request); Assert.Equal(HttpStatusCode.Created, cart.Result.Response.StatusCode); } }
public CreateCartResponse CreateCart(CreateCartRequest request) { var response = new CreateCartResponse(); var cart = new Cart(); AddAlbumsToCart(request.AlbumsToAdd, cart); ThrowExceptionIfCartIsInvalid(cart); _cartRepository.Add(cart); _uow.Commit(); response.Cart = cart.ConvertToCartView(); return(response); }
public CreateCartRequest AddCartItem(CreateCartRequest cartItem) { using (var db = new SqlConnection(_connectionString)) { var newCartItemQuery = @" INSERT INTO [ShoppingCart] (UserId, ProductId, Quantity) OUTPUT Inserted.* VALUES(@UserId, @ProductId, @Quantity)"; var newCartItem = db.QueryFirstOrDefault <CreateCartRequest>(newCartItemQuery, new { cartItem.UserId, cartItem.ProductId, cartItem.Quantity, }); if (newCartItem != null) { return(newCartItem); } } throw new Exception("Cart item not created"); }
public async Task <Entities.Cart> CreateCart(CreateCartRequest payload) { var product = await GetProductBySKU(payload.Item.SKU); var cart = new Entities.Cart() { CustomerId = payload.CustomerID, Status = STATUS_PENDING, Items = new[] { new Entities.CartItem() { Price = product.Price.Amount * payload.Item.Quantity, Scale = product.Price.Scale, Quantity = payload.Item.Quantity, Product = product } } }; _cartsCollection.InsertOne(cart); return(cart); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='version'> /// </param> /// <param name='request'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task CreateCartAsync(this IShoppingCartAPI operations, string version, CreateCartRequest request = default(CreateCartRequest), CancellationToken cancellationToken = default(CancellationToken)) { (await operations.CreateCartWithHttpMessagesAsync(version, request, null, cancellationToken).ConfigureAwait(false)).Dispose(); }
public IActionResult CreateCartAsync([FromBody] CreateCartRequest request) { return(Ok(new CreateCartResponse { CartId = Guid.Empty })); }
public ActionResult CreatCartItem([FromBody] CreateCartRequest cartItem) { var newCartItem = _cartRepo.AddCartItem(cartItem); return(Ok(newCartItem)); }
/// <param name='version'> /// </param> /// <param name='request'> /// </param> /// <param name='customHeaders'> /// Headers that will be added to request. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> /// <exception cref="HttpOperationException"> /// Thrown when the operation returned an invalid status code /// </exception> /// <exception cref="ValidationException"> /// Thrown when a required parameter is null /// </exception> /// <exception cref="System.ArgumentNullException"> /// Thrown when a required parameter is null /// </exception> /// <return> /// A response object containing the response body and response headers. /// </return> public async Task <HttpOperationResponse> CreateCartWithHttpMessagesAsync(string version, CreateCartRequest request = default(CreateCartRequest), Dictionary <string, List <string> > customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (version == null) { throw new ValidationException(ValidationRules.CannotBeNull, "version"); } // Tracing bool _shouldTrace = ServiceClientTracing.IsEnabled; string _invocationId = null; if (_shouldTrace) { _invocationId = ServiceClientTracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); tracingParameters.Add("request", request); tracingParameters.Add("version", version); tracingParameters.Add("cancellationToken", cancellationToken); ServiceClientTracing.Enter(_invocationId, this, "ApiVversionCartPost", tracingParameters); } // Construct URL var _baseUrl = BaseUri.AbsoluteUri; var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "api/v{version}/Cart").ToString(); _url = _url.Replace("{version}", System.Uri.EscapeDataString(version)); // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; _httpRequest.Method = new HttpMethod("POST"); _httpRequest.RequestUri = new System.Uri(_url); // Set Headers if (customHeaders != null) { foreach (var _header in customHeaders) { if (_httpRequest.Headers.Contains(_header.Key)) { _httpRequest.Headers.Remove(_header.Key); } _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); } } // Serialize Request string _requestContent = null; if (request != null) { _requestContent = SafeJsonConvert.SerializeObject(request, SerializationSettings); _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json-patch+json; charset=utf-8"); } // Send Request if (_shouldTrace) { ServiceClientTracing.SendRequest(_invocationId, _httpRequest); } cancellationToken.ThrowIfCancellationRequested(); _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); if (_shouldTrace) { ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); string _responseContent = null; if ((int)_statusCode != 201 && (int)_statusCode != 400) { var ex = new HttpOperationException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); if (_httpResponse.Content != null) { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); } else { _responseContent = string.Empty; } ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); if (_shouldTrace) { ServiceClientTracing.Error(_invocationId, ex); } _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw ex; } // Create Result var _result = new HttpOperationResponse(); _result.Request = _httpRequest; _result.Response = _httpResponse; if (_shouldTrace) { ServiceClientTracing.Exit(_invocationId, _result); } return(_result); }