Esempio n. 1
0
        static void Main(string[] args)
        {
            TableHandler tableHandler = new TableHandler();

            DataTable newTable = tableHandler.CreateTable("AAA");

            newTable.Rows.Add();
            newTable.Rows.Add();
            newTable.Rows[0]["Jahr"] = 2020;

            newTable.Rows[1]["Jahr"] = 2009;

            Console.WriteLine("Tabelle vorher:");
            PrintTable(newTable);

            tableHandler.AddRow(ref newTable);
            tableHandler.AddRow(ref newTable);
            tableHandler.AddRow(ref newTable);

            Console.WriteLine("Tabelle sortiert:");
            newTable.DefaultView.Sort = "Jahr Asc";
            newTable = newTable.DefaultView.ToTable();
            PrintTable(newTable);

            Console.WriteLine("\nTabelle speichern.\n");

            tableHandler.SaveTable(newTable);

            Console.WriteLine("\nTabelle ausgeben.\n");

            var tableList = tableHandler.GetTableNames();

            PrintTableList(tableList);
            Console.WriteLine("AAA");
            PrintTable(tableHandler.LoadDataTable("AAA"));

            Console.WriteLine("\nZeile löschen.\n");
            tableHandler.DeleteRow(newTable, 2020);

            Console.WriteLine("\nTabelle speichern.\n");

            tableHandler.SaveTable(newTable);

            Console.WriteLine("\nTabelle ausgeben.\n");
            PrintTable(tableHandler.LoadDataTable("AAA"));

            Console.WriteLine("\nTabelle wieder löschen.\n");

            tableHandler.DeleteTable(newTable);
            tableList = tableHandler.GetTableNames();
            PrintTableList(tableList);
        }
Esempio n. 2
0
        public OrderDTO CreateSalesOrder(OrderDTO order)
        {
            GenericServiceClient client = null;
            var success = false;

            try
            {
                client = ServiceFactory.GetGenericClient();
                var request    = new RequestBuilder();
                var context    = ServiceFactory.CreateContext(request);
                var orderTable = context.UseTable((long)T.Order);
                var orderRow   = orderTable.AddRow();

                orderRow.SuggestValue((long)C.Order.OrderNo);
                orderRow.SetIntegerValue((long)C.Order.TransactionType, (long)V.TransactionType.Sales);

                orderRow.Set(order, o => o.CustomerNo);

                orderRow.SetIntegerValue((long)C.Order.CurrencyNo, 47L);

                orderRow.Set(order, o => o.Label);
                orderRow.Set(order, o => o.DeliveryAddress1);
                orderRow.Set(order, o => o.DeliveryAddress2);
                orderRow.Set(order, o => o.DeliveryPostCode);
                orderRow.Set(order, o => o.DeliveryPostalArea);
                orderRow.Set(order, o => o.YourReference);
                orderRow.Set(order, o => o.OurReference);
                orderRow.Set(order, o => o.OrderDate);
                orderRow.Set(order, o => o.RequestedDeliveryDate);
                orderRow.Set(order, o => o.OriginalConfirmedDeliveryDate);
                orderRow.Set(order, o => o.ConfirmedDeliveryDate);

                TableHandler orderLineTable = orderRow.JoinTable((long)Fk.OrderLine.Order);

                // Add orderline row and assign values to the row
                foreach (var orderline in order.OrderLines)
                {
                    Row orderLineRow = orderLineTable.AddRow();

                    orderLineRow.Set(orderline, o => o.ProductNo);
                    orderLineRow.Set(orderline, o => o.ExternalProductNo);
                    orderLineRow.Set(orderline, o => o.ExternalReference);
                    orderLineRow.Set(orderline, o => o.ExternalId);
                    orderLineRow.Set(orderline, o => o.Description);
                    orderLineRow.Set(orderline, o => o.Quantity);
                    orderLineRow.Set(orderline, o => o.UnitType);
                    orderLineRow.Set(orderline, o => o.UnitPrice);
                    orderLineRow.Set(orderline, o => o.Discount);

                    orderLineRow.SetIntegerValue((long)C.OrderLine.SourceType, 16L);
                }

                // Add a projection on the order row and add columns to the projection
                var orderProjection = orderRow.ProjectColumns();
                orderProjection.AddColumns <OrderDTO>();

                var orderLineProjection = orderProjection.ProjectChildren((long)Fk.OrderLine.Order);
                orderLineProjection.AddColumns <OrderLineDTO>();

                var response = request.Dispatch(client);
                client.Close();
                success = true;


                if (response.AllSucceeded)
                {
                    foreach (OperationResult res in response.OperationResultDictionary.Values)
                    {
                        if (res is ProjectionResult)
                        {
                            var projectionResult    = res as ProjectionResult;
                            var projectionResultRow = projectionResult.ResultSet.ResultRows[0];
                            var item = DTOMapper.MapToDTO <OrderDTO>(projectionResultRow);

                            item.OrderLines = projectionResultRow.ChildResultSets.First().ResultRows
                                              .Select(DTOMapper.MapToDTO <OrderLineDTO>).ToList();

                            return(item);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                //Log error
                throw;
            }
            finally
            {
                if (!success)
                {
                    client?.Abort();
                }
            }

            return(null);
        }