public override Core.OrderManagement.Orders.Events.OrderLineQuantityAdjusted ConvertToIntern(OrderLineQuantityAdjusted e)
 {
     return(new Core.OrderManagement.Orders.Events.OrderLineQuantityAdjusted(
                OrderIdentifier.Parse(e.OrderIdentifier),
                OrderLineIdentifier.Parse(e.OrderLineIdentifier),
                e.Quantity));
 }
Example #2
0
        private IPurchaseOrder GetOrder(OrderIdentifier identifier)
        {
            var order = m_purchaseOrderRepository.TryLoadOrderByOrderNumber(identifier.ErpOrderId);

            if (order == null)
            {
                order = m_database.New <IPurchaseOrder>();
            }
            else if (order.OrderHash == identifier.OrderHash)
            {
                m_stopMapping = true;
                Order         = order;
                return(null);
            }
            else
            {
                Order = order;
                OrderItemsToDelete.AddRange(Order.Items.Select(i => i.Id));
            }

            order.OrderNumber = identifier.ErpOrderId;
            Order             = order;

            return(Order);
        }
 public override Core.OrderManagement.Orders.Events.OrderLineCreated ConvertToIntern(OrderLineCreated e)
 {
     return(new Core.OrderManagement.Orders.Events.OrderLineCreated(
                OrderIdentifier.Parse(e.OrderIdentifier),
                OrderLineIdentifier.Parse(e.OrderLineIdentifier),
                ProductIdentifier.Parse(e.ProductIdentifier),
                ProductName.Create(e.ProductName),
                e.Quantity));
 }
Example #4
0
 public static Order Create(
     IAggregateContext context,
     OrderIdentifier orderIdentifier,
     CustomerIdentifier customerIdentifier)
 {
     return(CreateWithEvent <Order, OrderCreated>(
                context,
                new OrderCreated(
                    orderIdentifier,
                    customerIdentifier)));
 }
Example #5
0
        public IEnumerable <OrderHeader> GetByIdentifier(OrderIdentifier orderIdentifier)
        {
            using (ISession session = SessionFactory.GetNewSession("db2"))
            {
                var query = from o in session.Query <OrderHeader>()
                            select o;

                query = query.Where(o => o.OrderIdentifier == orderIdentifier);

                return(query.ToList());
            }
        }
        public IEnumerable <PaymentRelease> GetByIdentifier(OrderIdentifier identifier)
        {
            using (ISession session = SessionFactory.GetNewSession("db1"))
            {
                var query = from o in session.Query <PaymentRelease>()
                            select o;

                query = query.Where(o => o.OrderIdentifier == identifier);

                return(query.ToList());
            }
        }
Example #7
0
 public OrderLineCreated(
     OrderIdentifier orderIdentifier,
     OrderLineIdentifier orderLineIdentifier,
     ProductIdentifier productIdentifier,
     ProductName productName,
     int quantity)
 {
     OrderIdentifier     = orderIdentifier;
     OrderLineIdentifier = orderLineIdentifier;
     ProductIdentifier   = productIdentifier;
     ProductName         = productName;
     Quantity            = quantity;
 }
Example #8
0
        private Order CreateOrder()
        {
            if (_eventStore == null)
            {
                throw new Exception("Event store is null");
            }

            var orderRepository = new OrderRepository(_eventStore, _aggregateContext);

            _order = Order.Create(
                _aggregateContext,
                OrderIdentifier.New(),
                CustomerIdentifier.New());

            return(_order);
        }
Example #9
0
        public void StopOrderTracking(OpenOrderModel order)
        {
            try
            {
                var exchange         = _dictionaryModelsMapper.GetName <ExchangeModel>(order.ExchangeId);
                var targetInstrument = _instrumentsNameMapper.GetExchangeInstrument(
                    _dictionaryModelsMapper.GetName <InstrumentModel>(order.InstrumentId), exchange);
                var orderIdentifier = new OrderIdentifier(order.OrderId, targetInstrument);

                _allOrders.TryRemove(order.OrderId, out OpenOrderModel removedOrder);
                _ordersWatcher.StopOrderTracking(orderIdentifier, exchange);
                _orderCancelationWatcher.RemoveFromWatcher(order);
            }
            catch (Exception e)
            {
                _logger?.Log(SeverityLevel.Error, $"Failed to start tracking for new order! Exchange: {order.ExchangeId}, OrderId = {order.OrderId}");
                _logger?.Log(SeverityLevel.Error, e);
                throw;
            }
        }
Example #10
0
 public void StopOrderTracking(OrderIdentifier orderIdentifier, string exchange)
 {
     try
     {
         if (_ordersToCheck.TryGetValue(exchange, out ConcurrentDictionary <string, OrderIdentifier> collection) &&
             collection.ContainsKey(orderIdentifier.Value) && collection.TryRemove(orderIdentifier.Value, out OrderIdentifier order))
         {
             _logger?.Log(SeverityLevel.Debug, $"Order: {order}; Exchange: {exchange}. Removed from tracking service!");
         }
         else
         {
             _logger?.Log(SeverityLevel.Debug, $"Order: {orderIdentifier}; Exchange: {exchange}. Not found! Can't removed from tracking service!");
         }
     }
     catch (Exception e)
     {
         _logger?.Log(SeverityLevel.Error, $"Failed to remove order: {orderIdentifier}; Exchange: {exchange} from tracking service!");
         _logger?.Log(SeverityLevel.Error, e);
     }
 }
Example #11
0
 public void StartOrderTracking(OrderIdentifier orderIdentifier, string exchange)
 {
     try
     {
         var newCollection = new ConcurrentDictionary <string, OrderIdentifier>();
         newCollection.AddOrUpdate(orderIdentifier.Value, orderIdentifier, (s, identifier) => orderIdentifier);
         _ordersToCheck.AddOrUpdate(exchange, newCollection,
                                    (s, list) =>
         {
             list.AddOrUpdate(orderIdentifier.Value, orderIdentifier,
                              (s1, identifier) => orderIdentifier);
             return(list);
         });
         _logger?.Log(SeverityLevel.Debug, $"Add order: {orderIdentifier}; Exchange: {exchange}. To tracking service.");
     }
     catch (Exception e)
     {
         _logger?.Log(SeverityLevel.Error, $"Failed to add order: {orderIdentifier}; Exchange: {exchange}. To tracking service!");
         _logger?.Log(SeverityLevel.Error, e);
     }
 }
Example #12
0
 public override Core.OrderManagement.Orders.Events.OrderLineRemoved ConvertToIntern(OrderLineRemoved e)
 {
     return(new Core.OrderManagement.Orders.Events.OrderLineRemoved(
                OrderIdentifier.Parse(e.OrderIdentifier),
                OrderLineIdentifier.Parse(e.OrderLineIdentifier)));
 }
Example #13
0
 public OrderCreated(OrderIdentifier orderIdentifier, CustomerIdentifier customerIdentifier)
 {
     OrderIdentifier    = orderIdentifier;
     CustomerIdentifier = customerIdentifier;
 }
        public IHttpActionResult CreatePaymentRelease([FromBody] PaymentReleaseData data)
        {
            string apiKey;

            try
            {
                apiKey = data.header.apikey;
            }
            catch (System.Exception)
            {
                logger.Log(ErrorType.ERR, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, "API key is missing.", "api/woood-payment-release/create");

                return(Content(HttpStatusCode.Unauthorized, "API key is missing."));
            }

            var user = userRepository.GetByUsername(data.header.username);

            if (apiKey != user.ApiKey)
            {
                logger.Log(ErrorType.ERR, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, "API key is not correct. Get a right API key from the service provider.", "api/woood-payment-release/create");

                return(Content(HttpStatusCode.Unauthorized, "API key is not correct. Get a right API key from the service provider."));
            }

            if (!ModelState.IsValid)
            {
                logger.Log(ErrorType.ERR, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, ModelState.ToString(), "api/woood-payment-release/create");

                return(BadRequest(ModelState));
            }

            try
            {
                var orderIdentifier = new OrderIdentifier(data.body.REFERENTIE, data.body.DEBITEURNR);

                var existingOrders = orderRepository.GetByIdentifier(orderIdentifier);
                if (existingOrders.Count() == 0)
                {
                    logger.Log(ErrorType.ERR, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, "DEBITEURNR-REFERENTIE UNKNOWN", "api/woood-payment-release/create");

                    return(Content(HttpStatusCode.BadRequest, "DEBITEURNR-REFERENTIE UNKNOWN"));
                }

                var paymentToPost = new APIWoood.Logic.Models.PaymentRelease()
                {
                    OrderIdentifier = orderIdentifier,
                    PAYMENT_RELEASE = data.body.PAYMENT_RELEASE,
                };

                paymentReleaseRepository.Insert(paymentToPost);

                logger.Log(ErrorType.INFO, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, "The Release Payment was succesfully added", "api/woood-payment-release/create", startDate);

                return(Ok(new
                {
                    body = new
                    {
                        message = "The Release Payment was succesfully added"
                    }
                }));
            }
            catch (Exception e)
            {
                logger.Log(ErrorType.ERR, "CreatePaymentRelease()", RequestContext.Principal.Identity.Name, e.Message, "api/woood-payment-release/create");

                return(InternalServerError(e));
            }
        }
Example #15
0
 public override Core.OrderManagement.Orders.Events.OrderCreated ConvertToIntern(OrderCreated e)
 {
     return(new Core.OrderManagement.Orders.Events.OrderCreated(
                OrderIdentifier.Parse(e.OrderIdentifier),
                CustomerIdentifier.Parse(e.CustomerIdentifier)));
 }
        protected override IList <ApiMessage> ProcessResponseForTask(string response)
        {
            ChannelEngineDto   dto      = JsonConvert.DeserializeObject <ChannelEngineDto>(response);
            IList <ApiMessage> messages = new List <ApiMessage>();

            int itemCount = 0;

            try
            {
                if (dto.Count > 0)
                {
                    foreach (ChannelEngineOrderHeaderDto order in dto.Content)
                    {
                        string          debiteurnr = order.ChannelName.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();
                        OrderIdentifier identifier = new OrderIdentifier(order.ChannelOrderNo, debiteurnr);

                        // JsonConvert.SerializeObject(order);

                        // Check if the order already exists
                        var existingOrder = orderRepository.GetByIdentifier(identifier);

                        if (existingOrder.Count() == 0)
                        {
                            string shippingAddress = order.ShippingAddress.StreetName;
                            if (!string.IsNullOrEmpty(order.ShippingAddress.HouseNr))
                            {
                                shippingAddress += " " + order.ShippingAddress.HouseNr;
                            }
                            if (!string.IsNullOrEmpty(order.ShippingAddress.HouseNrAddition))
                            {
                                shippingAddress += " " + order.ShippingAddress.HouseNrAddition;
                            }

                            OrderHeader orderHeader = new OrderHeader
                            {
                                OrderIdentifier    = identifier,
                                ORDERTOELICHTING   = order.MerchantComment,
                                DS_NAAM            = order.ShippingAddress.FirstName + " " + order.ShippingAddress.LastName,
                                DS_ADRES1          = shippingAddress,
                                DS_POSTCODE        = order.ShippingAddress.ZipCode,
                                DS_PLAATS          = order.ShippingAddress.City,
                                DS_LAND            = order.ShippingAddress.CountryIso,
                                DS_TELEFOON        = order.Phone,
                                DS_EMAIL           = order.Email,
                                AUTHENTICATED_USER = "******",
                                CUSTOMERORDERID    = order.Id,
                                SELECTIECODE       = "TH"
                            };

                            foreach (ChannelEngineOrderLineDto line in order.Lines)
                            {
                                var nettoPrijs = line.UnitPriceInclVat - line.UnitVat;

                                if (line.ExpectedDeliveryDate.ToString() != "01/01/0001 00:00:00")
                                {
                                    orderHeader.Lines.Add(new OrderLine
                                    {
                                        ITEMCODE            = line.MerchantProductNo,
                                        NETTO_PRIJS         = (float)nettoPrijs,
                                        NETT_PRICE_INCL_VAT = line.UnitPriceInclVat,
                                        UNIT_VAT            = line.UnitVat,
                                        AANTAL          = line.Quantity,
                                        REQUESTEDDATE   = line.ExpectedDeliveryDate,
                                        OrderIdentifier = identifier
                                    });
                                }
                                else
                                {
                                    orderHeader.Lines.Add(new OrderLine
                                    {
                                        ITEMCODE            = line.MerchantProductNo,
                                        NETTO_PRIJS         = (float)nettoPrijs,
                                        NETT_PRICE_INCL_VAT = line.UnitPriceInclVat,
                                        UNIT_VAT            = line.UnitVat,
                                        AANTAL          = line.Quantity,
                                        REQUESTEDDATE   = null,
                                        OrderIdentifier = identifier
                                    });
                                }
                            }

                            orderRepository.Insert(orderHeader);

                            messages.Add(new ApiMessage
                            {
                                Code        = 200,
                                Description = "Before: " + JsonConvert.SerializeObject(order) + ", After: " + JsonConvert.SerializeObject(orderHeader)
                            });

                            ++itemCount;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                messages.Add(new ApiMessage()
                {
                    Code        = 401,
                    Description = "Error in (ProcessResponseForTask): " + ex.Message
                });
            }

            return(messages);
        }
Example #17
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting the Phone Number Ordering App");

            useHttp(true); //not https
            port("8080");
            startServerInstance();

            post("/subscriptions/orders", (EagleRequest request, HttpListenerResponse response) =>
            {
                XmlSerializer serializer  = new XmlSerializer(typeof(Notification));
                Notification notification = (Notification)serializer.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(request.Body)));
                Console.WriteLine(notification.Status);
                Console.WriteLine(notification.Message);
            });

            post("/subscriptions/disconnects", (EagleRequest request, HttpListenerResponse response) =>
            {
                XmlSerializer serializer  = new XmlSerializer(typeof(Notification));
                Notification notification = (Notification)serializer.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(request.Body)));
                Console.WriteLine(notification.Status);
                Console.WriteLine(notification.Message);

                var phoneNumber = notification.CompletedTelephoneNumbers[0];

                storage.Remove(phoneNumber);
            });

            get("/availablePhoneNumbers", (EagleRequest request, HttpListenerResponse response) =>
            {
                var queryParams = request.RawRequest.QueryString;
                var query       = new Dictionary <string, object>()
                {
                    { "quantity", 10 },
                };

                if (queryParams.Get("zipCode") != null)
                {
                    query.Add("zip", queryParams.Get("zipCode"));
                }

                if (queryParams.Get("areaCode") != null)
                {
                    query.Add("areaCode", queryParams.Get("areaCode"));
                }


                try
                {
                    var res = AvailableNumbers.List(client, query).Result;
                    return(res.TelephoneNumberList);
                } catch (AggregateException ex)
                {
                    if (ex.InnerException is BandwidthIrisException)
                    {
                        response.StatusCode           = 400;
                        BandwidthIrisException irisEx = (BandwidthIrisException)ex.InnerException;
                        return(new Error
                        {
                            BandwidthErrorCode = irisEx.Code,
                            BandwidthErrorDescription = irisEx.Body.ToString(),
                            Description = "Bandwidth Invalid User Input",
                            Type = "validation"
                        });
                    }
                    throw ex;
                }
            });

            post("/phoneNumbers", (EagleRequest request, HttpListenerResponse response) =>
            {
                string phoneNumber = request.Body.phoneNumber;

                if (storage.ContainsKey(phoneNumber))
                {
                    return(new Error
                    {
                        Type = "owned number",
                        Description = "You have already ordered this number."
                    });
                }

                OrderResult orderResult;
                try
                {
                    orderResult = Order.Create(client, new Order
                    {
                        CustomerOrderId = "customerOrderId",
                        SiteId          = SITE_ID, //The site to order the number for
                        ExistingTelephoneNumberOrderType = new ExistingTelephoneNumberOrderType
                        {
                            TelephoneNumberList = new string[] { phoneNumber }
                        }
                    }).Result;
                } catch (AggregateException ex)
                {
                    if (ex.InnerException is BandwidthIrisException)
                    {
                        response.StatusCode           = 400;
                        BandwidthIrisException irisEx = (BandwidthIrisException)ex.InnerException;
                        return(new Error
                        {
                            BandwidthErrorCode = irisEx.Code,
                            BandwidthErrorDescription = irisEx.Body.ToString(),
                            Description = "Bandwidth Invalid User Input",
                            Type = "validation"
                        });
                    }
                    throw ex;
                }

                var orderIdentifier = new OrderIdentifier
                {
                    OrderId     = orderResult.Order.OrderId,
                    PhoneNumber = phoneNumber
                };
                storage.Add(phoneNumber, orderIdentifier);
                response.StatusCode = 201;
                return(orderIdentifier);
            });

            get("/phoneNumbers", (EagleRequest request, HttpListenerResponse response) =>
            {
                return(storage.Values);
            });

            delete("/phoneNumbers/{phoneNumber}", (EagleRequest request, HttpListenerResponse response) =>
            {
                string phoneNumber = request.PathInfo.PathParameters.phoneNumber;

                if (!storage.ContainsKey(phoneNumber))
                {
                    response.StatusCode = 404;
                    return(new Error
                    {
                        Description = "This number has not ordered yet, cannot remove.",
                        Type = "not found"
                    });
                }

                try
                {
                    Disconnect.Create(client, "orderName", phoneNumber);
                }
                catch (AggregateException ex)
                {
                    if (ex.InnerException is BandwidthIrisException)
                    {
                        response.StatusCode           = 400;
                        BandwidthIrisException irisEx = (BandwidthIrisException)ex.InnerException;
                        return(new Error
                        {
                            BandwidthErrorCode = irisEx.Code,
                            BandwidthErrorDescription = irisEx.Body.ToString(),
                            Description = "Bandwidth Invalid User Input",
                            Type = "validation"
                        });
                    }
                    throw ex;
                }
                response.StatusCode = 201;
                return(new Dictionary <string, bool>()
                {
                    { "Recieved", true }
                });
            });

            post("/stop", (EagleRequest request, HttpListenerResponse response) => {
                stop();
                return("Server Shutting Down");
            });

            Console.WriteLine("Server is Ready!!!!!!!!!");
            WaitOnServerToStop();
        }
Example #18
0
 public DDDSteps()
 {
     _eventStore       = new TestEventStore();
     _orderIdentifier  = OrderIdentifier.New();
     _aggregateContext = new TestAggregateContext();
 }
 public OrderLineQuantityAdjusted(OrderIdentifier orderIdentifier, OrderLineIdentifier orderLineIdentifier, int quantity)
 {
     OrderIdentifier     = orderIdentifier;
     OrderLineIdentifier = orderLineIdentifier;
     Quantity            = quantity;
 }
Example #20
0
        static async Task Main()
        {
            var eventsConverter = new EventsConverter();

            //var e = new Core.OrderManagement.Orders.Events.OrderCreated(OrderIdentity.New());
            //System.Console.WriteLine(JsonSerializer.Serialize(e, new JsonSerializerOptions { WriteIndented = true }));


            //var a = EventMapping.Convert(e);
            //var json = JsonSerializer.Serialize(a, new JsonSerializerOptions { WriteIndented = true, Converters = { new IdentityJsonConverter() } });

            //System.Console.WriteLine(json);

            //var data2 = JsonSerializer.Deserialize<OrderCreated>(json);
            //var e2 = EventMapping.Convert2(data2);

            //System.Console.WriteLine(JsonSerializer.Serialize(e, e.GetType(), new JsonSerializerOptions { WriteIndented = true }));

            //return;

            var aggregateContext = new AggregateContext();

            IEventStore eventStore        = new EventStoreDb(eventsConverter, new Uri("http://localhost:2113"));
            var         productRepository = new ProductRepository(eventStore, aggregateContext);

            var product1 = Product.Create(aggregateContext, ProductName.Create("Brood"));

            await productRepository.SaveAsync(product1);

            product1.ChangeName(ProductName.Create("Boterham"));
            await productRepository.SaveAsync(product1);



            var productRepository2 = new ProductRepository(eventStore, aggregateContext);

            var product1A = await productRepository2.GetAsync(product1.Identifier);

            //System.Console.WriteLine(JsonSerializer.Serialize(product, new JsonSerializerOptions { WriteIndented = true }));
            //System.Console.WriteLine(JsonSerializer.Serialize(product2, new JsonSerializerOptions { WriteIndented = true }));


            var orderRepository = new OrderRepository(eventStore, aggregateContext);


            var order = Order.Create(
                aggregateContext,
                OrderIdentifier.New(),
                CustomerIdentifier.New());

            var faultyLine = order.CreateOrderLine(ProductIdentifier.New(), 1);

            faultyLine.Remove();

            var prod2 = ProductIdentifier.New();
            var prod3 = ProductIdentifier.New();
            var prod4 = ProductIdentifier.New();


            order.CreateOrderLine(product1, 1);
            order.CreateOrderLine(prod2, 2);
            order.CreateOrderLine(prod3, 1);
            order.CreateOrderLine(prod4, 1);

            var prod3OrderLine = order.Lines.Get(prod3);

            prod3OrderLine.Remove();

            var prod1OrderLine = order.Lines.Get(product1.Identifier);

            prod1OrderLine.AdjustQuantity(3);


            await orderRepository.SaveAsync(order);

            var order2 = await orderRepository.GetAsync(order.OrderIdentifier);


            var product1B = await productRepository2.GetAsync(product1.Identifier);

            product1B.ChangeName(ProductName.Create("Stok brood"));
            await productRepository2.SaveAsync(product1B);
        }
Example #21
0
        public IHttpActionResult CreateOrder([FromBody] OrderData data)
        {
            var    jsonData = JsonConvert.SerializeObject(data);
            string apiKey;

            try
            {
                apiKey = data.header.apikey;
            }
            catch (System.Exception)
            {
                logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "API key is missing. " + jsonData, "api/woood-order/create");

                return(Content(HttpStatusCode.Unauthorized, "API key is missing."));
            }

            var user = userRepository.GetByUsername(data.header.username);

            if (apiKey != user.ApiKey)
            {
                logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "API key is not correct. Get a right API key from the service provider.", "api/woood-order/create");

                return(Content(HttpStatusCode.Unauthorized, "API key is not correct. Get a right API key from the service provider."));
            }

            if (!ModelState.IsValid)
            {
                logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, ModelState.ToString(), "api/woood-order/create");

                return(BadRequest(ModelState));
            }

            var references = new List <string>();
            int orderCount = 0;

            foreach (var order in data.body.order)
            {
                try
                {
                    var orderIdentifier = new OrderIdentifier(order.REFERENTIE, order.DEBITEURNR);

                    var existingOrders = orderRepository.GetByIdentifier(orderIdentifier);
                    if (existingOrders.Count() > 0)
                    {
                        logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "The combination of DEBITEURNR(" + order.DEBITEURNR + ") and REFERENTIE(" + order.REFERENTIE + ") must be unique", "api/woood-order/create");

                        return(Content(HttpStatusCode.BadRequest, "The combination of DEBITEURNR and REFERENTIE must be unique"));
                    }

                    if (order.item.Count() == 0)
                    {
                        logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "The order has no lines", "api/woood-order/create");

                        return(Content(HttpStatusCode.BadRequest, "The order has no lines"));
                    }

                    // Check if the user has access to the debtor
                    if (!DebtorBelongsToUser(user, order.DEBITEURNR))
                    {
                        logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "DEBITEURNR does not belong to the user", "api/woood-order/create");

                        return(Content(HttpStatusCode.BadRequest, "DEBITEURNR does not belong to the user"));
                    }

                    var orderToPost = new OrderHeader()
                    {
                        OrderIdentifier           = orderIdentifier,
                        OMSCHRIJVING              = order.OMSCHRIJVING,
                        STATUS                    = order.STATUS,
                        ORDERNR                   = order.ORDERNR,
                        SELECTIECODE              = order.SELECTIECODE,
                        ORDERTOELICHTING          = order.ORDERTOELICHTING,
                        ACCEPTATIE_VERZAMELEN     = order.ACCEPTATIE_VERZAMELEN,
                        ACCEPTATIE_ORDERKOSTEN    = order.ACCEPTATIE_ORDERKOSTEN,
                        DS_NAAM                   = order.DS_NAAM,
                        DS_AANSPREEKTITEL         = order.DS_AANSPREEKTITEL,
                        DS_ADRES1                 = order.DS_ADRES1,
                        DS_POSTCODE               = order.DS_POSTCODE,
                        DS_PLAATS                 = order.DS_PLAATS,
                        DS_LAND                   = order.DS_LAND,
                        DS_TELEFOON               = order.DS_TELEFOON,
                        DS_EMAIL                  = order.DS_EMAIL,
                        AUTHENTICATED_USER        = data.header.username,
                        ACCEPTATIE_ORDERSPLITSING = order.ACCEPTATIE_ORDERSPLITSING,
                        PAYMENT_RELEASE_REQUIRED  = order.PAYMENT_RELEASE_REQUIRED,
                        SR_SERVICE_PRODUCT        = order.SR_SERVICE_PRODUCT,
                        SR_AFLEVEREN_AAN          = order.SR_AFLEVEREN_AAN,
                        SR_LOCATIE                = order.SR_LOCATIE,
                        SR_BEDRIJFSNAAM           = order.SR_BEDRIJFSNAAM,
                        SR_BEWIJS                 = order.SR_BEDRIJFSNAAM,
                        SR_ORDERREF               = order.SR_ORDERREF,
                        SR_REDEN                  = order.SR_REDEN,
                        SR_TOELICHTING            = order.SR_TOELICHTING,
                        SR_PDF_ATTACHMENT         = order.SR_PDF_ATTACHMENT
                    };

                    int orderLineCount = 0;
                    foreach (var item in order.item)
                    {
                        var orderLineToPost = new OrderLine()
                        {
                            OrderIdentifier = orderToPost.OrderIdentifier,
                            ITEMCODE        = item.ITEMCODE,
                            AANTAL          = item.AANTAL,
                            STATUS          = item.STATUS,
                            ORDERNR         = item.ORDERNR,
                            VERZENDWEEK     = item.VERZENDWEEK
                        };

                        orderToPost.Lines.Add(orderLineToPost);
                        ++orderLineCount;
                    }

                    orderRepository.Insert(orderToPost);
                    ++orderCount;
                    references.Add(orderIdentifier.REFERENTIE);
                }
                catch (System.Exception e)
                {
                    logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, e.Message, "api/woood-order/create");

                    return(InternalServerError(e));
                }
            }

            if (orderCount == 0)
            {
                logger.Log(ErrorType.ERR, "CreateOrder()", RequestContext.Principal.Identity.Name, "No orders added", "api/woood-order/create");

                return(BadRequest("No orders added"));
            }

            logger.Log(ErrorType.INFO, "CreateOrder()", RequestContext.Principal.Identity.Name, new JavaScriptSerializer().Serialize(references), "api/woood-order/create", startDate);

            return(Ok(new {
                header = new
                {
                    status_code = 200,
                    status_message = "OK"
                },
                body = new
                {
                    message = "Order has been succesfully added",
                    references
                }
            }));
        }
 public OrderCustomerNameChanged(OrderIdentifier orderIdentifier, string customerName)
 {
     OrderIdentifier = orderIdentifier;
     CustomerName    = customerName;
 }
Example #23
0
 public OrderLineRemoved(OrderIdentifier orderIdentifier, OrderLineIdentifier orderLineIdentifier)
 {
     OrderIdentifier     = orderIdentifier;
     OrderLineIdentifier = orderLineIdentifier;
 }