public OrderRow(long orderId, OrderRowResponseObject orderRowResponse, SveaHttpClient client) { Actions = new OrderRowActions(orderId, orderRowResponse, client); OrderRowId = orderRowResponse.OrderRowId; ArticleNumber = orderRowResponse.ArticleNumber; Name = orderRowResponse.Name; Quantity = orderRowResponse.Quantity; UnitPrice = orderRowResponse.UnitPrice; DiscountPercent = orderRowResponse.DiscountPercent; VatPercent = orderRowResponse.VatPercent; Unit = orderRowResponse.Unit; IsCancelled = orderRowResponse.IsCancelled; AvailableActions = orderRowResponse.Actions; }
public Delivery(long orderId, DeliveryResponseObject deliveryResponse, SveaHttpClient client) { Actions = new DeliveryActions(orderId, deliveryResponse, client); CreationDate = deliveryResponse.CreationDate; CreditedAmount = deliveryResponse.CreditedAmount; Credits = deliveryResponse.Credits; DeliveryAmount = deliveryResponse.DeliveryAmount; DueDate = deliveryResponse.DueDate; Id = deliveryResponse.Id; InvoiceId = deliveryResponse.InvoiceId; Status = deliveryResponse.Status; AvailableActions = deliveryResponse.Actions; OrderRows = deliveryResponse.OrderRows?.Select(x => new OrderRow(orderId, x, client)).ToList(); }
public Order(OrderResponseObject orderResponseObject, SveaHttpClient client) { BillingAddress = orderResponseObject.BillingAddress; CancelledAmount = orderResponseObject.CancelledAmount; CreationDate = orderResponseObject.CreationDate; Currency = orderResponseObject.Currency; CustomerReference = orderResponseObject.CustomerReference; EmailAddress = orderResponseObject.EmailAddress; Id = orderResponseObject.Id; IsCompany = orderResponseObject.IsCompany; MerchantOrderId = orderResponseObject.MerchantOrderId; NationalId = orderResponseObject.NationalId; OrderAmount = orderResponseObject.OrderAmount; OrderStatus = orderResponseObject.OrderStatus; PaymentType = orderResponseObject.PaymentType; PhoneNumber = orderResponseObject.PhoneNumber; ShippingAddress = orderResponseObject.ShippingAddress; SveaWillBuy = orderResponseObject.SveaWillBuy; AvailableActions = orderResponseObject.Actions; Actions = new OrderActions(orderResponseObject, client); OrderRows = orderResponseObject.OrderRows?.Select(x => new OrderRow(orderResponseObject.Id, x, client)).ToList(); Deliveries = orderResponseObject.Deliveries?.Select(x => new Delivery(orderResponseObject.Id, x, client)).ToList(); }
public PaymentAdmin(SveaHttpClient sveaHttpClient) { _sveaHttpClient = sveaHttpClient; }
public OrderRowActions(long orderId, OrderRowResponseObject orderRowResponse, SveaHttpClient client) { foreach (var action in orderRowResponse.Actions) { switch (action) { case OrderRowActionType.CanCancelRow: CancelOrderRow = async payload => await client.HttpPatch <object>( new Uri($"/api/v1/orders/{orderId}/rows/{orderRowResponse.OrderRowId}", UriKind.Relative), payload); break; case OrderRowActionType.CanUpdateRow: UpdateOrderRow = async payload => await client.HttpPatch <object>( new Uri($"/api/v1/orders/{orderId}/rows/{orderRowResponse.OrderRowId}", UriKind.Relative), payload); break; } } }
public Checkout(SveaHttpClient sveaHttpClient) { _sveaHttpClient = sveaHttpClient; }
public OrderActions(OrderResponseObject orderResponse, SveaHttpClient client) { foreach (var action in orderResponse.Actions) { switch (action) { case OrderActionType.CanCancelOrder: Cancel = async payload => await client.HttpPatch <object>( new Uri($"/api/v1/orders/{orderResponse.Id}/", UriKind.Relative), payload); break; case OrderActionType.CanCancelOrderRow: CancelOrderRows = async payload => await client.HttpPatch <object>( new Uri($"/api/v1/orders/{orderResponse.Id}/rows/cancelOrderRows", UriKind.Relative), payload); break; case OrderActionType.CanCancelAmount: CancelAmount = async payload => await client.HttpPatch <object>( new Uri($"/api/v1/orders/{orderResponse.Id}/", UriKind.Relative), payload); break; case OrderActionType.CanDeliverOrder: case OrderActionType.CanDeliverOrderPartially: DeliverOrder = async payload => { var response = await client.HttpPost <ResourceResponseObject <OrderResponseObject>, OrderResponseObject>( new Uri($"/api/v1/orders/{orderResponse.Id}/deliveries", UriKind.Relative), payload); var resource = new ResourceResponse <OrderResponseObject, Order>(response, () => new Order(response.Resource, client)); return(resource); }; break; case OrderActionType.CanAddOrderRow: AddOrderRow = async payload => { var response = await client.HttpPost <ResourceResponseObject <AddOrderRowResponseObject>, AddOrderRowResponseObject>( new Uri($"/api/v1/orders/{orderResponse.Id}/rows", UriKind.Relative), payload); var resource = new ResourceResponse <AddOrderRowResponseObject, AddOrderRowResponse>(response, () => new AddOrderRowResponse(response.Resource)); return(resource); }; AddOrderRows = async payload => await client.HttpPost <AddOrderRowsResponse>( new Uri($"/api/v1/orders/{orderResponse.Id}/rows/addOrderRows", UriKind.Relative), payload); break; case OrderActionType.CanUpdateOrderRow: UpdateOrderRows = async payload => await client.HttpPost <object>( new Uri($"/api/v1/orders/{orderResponse.Id}/rows/updateOrderRows", UriKind.Relative), payload); ReplaceOrderRows = async payload => await client.HttpPut <object>( new Uri($"/api/v1/orders/{orderResponse.Id}/rows/replaceOrderRows", UriKind.Relative), payload); break; } } }
public DeliveryActions(long orderId, DeliveryResponseObject deliveryResponse, SveaHttpClient client) { foreach (var action in deliveryResponse.Actions) { switch (action) { case DeliveryActionType.CanCreditOrderRows: CreditOrderRows = async payload => { var response = await client .HttpPost <ResourceResponseObject <CreditResponseObject>, CreditResponseObject>( new Uri($"/api/v1/orders/{orderId}/deliveries/{deliveryResponse.Id}/credits", UriKind.Relative), payload); var resource = new ResourceResponse <CreditResponseObject, CreditResponse>(response, () => new CreditResponse(response.Resource)); return(resource); }; break; case DeliveryActionType.CanCreditNewRow: CreditNewRow = async payload => { var response = await client .HttpPost <ResourceResponseObject <CreditResponseObject>, CreditResponseObject>( new Uri($"/api/v1/orders/{orderId}/deliveries/{deliveryResponse.Id}/credits", UriKind.Relative), payload); var resource = new ResourceResponse <CreditResponseObject, CreditResponse>(response, () => new CreditResponse(response.Resource)); return(resource); }; break; case DeliveryActionType.CanCreditAmount: CreditAmount = async payload => { var response = await client.HttpPatch <CreditResponseObject>( new Uri($"/api/v1/orders/{orderId}/deliveries/{deliveryResponse.Id}", UriKind.Relative), payload); return(new CreditResponse(response)); }; break; } } }