Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 public PaymentAdmin(SveaHttpClient sveaHttpClient)
 {
     _sveaHttpClient = sveaHttpClient;
 }
Esempio n. 5
0
        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;
                }
            }
        }
Esempio n. 6
0
 public Checkout(SveaHttpClient sveaHttpClient)
 {
     _sveaHttpClient = sveaHttpClient;
 }
Esempio n. 7
0
        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;
                }
            }
        }
Esempio n. 8
0
        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;
                }
            }
        }