示例#1
0
        public async Task <List <Account> > getCustomerAccount(string id, byte[] error)
        {
            List <Account> accounts = new List <Account>();
            IntPtr         AccountPtr;
            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getCustomerAccount(id, out AccountPtr, error, _ConnectionString);

                IntPtr current = AccountPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    Account account = (Account)Marshal.PtrToStructure(current, typeof(Account));
                    current         = (IntPtr)((long)current + Marshal.SizeOf(account));
                    accounts.Add(account);
                }
                Marshal.FreeCoTaskMem(AccountPtr);
            });

            return(accounts);
        }
示例#2
0
        public async Task <List <Out> > reporting(byte[] error)
        {
            List <Out> outs = new List <Out>();
            IntPtr     OutPtr;
            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.reporting(out OutPtr, error, _ConnectionString);

                IntPtr current = OutPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    Out an_out = (Out)Marshal.PtrToStructure(current, typeof(Out));
                    current    = (IntPtr)((long)current + Marshal.SizeOf(an_out));
                    outs.Add(an_out);
                }
                Marshal.FreeCoTaskMem(OutPtr);
            });

            return(outs);
        }
示例#3
0
        public async Task <List <AOrder> > getCustomerOrders(string id, byte[] error)
        {
            List <AOrder> orders = new List <AOrder>();
            IntPtr        OrderPtr;
            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getCustomerOrders(id, out OrderPtr, error, _ConnectionString);

                IntPtr current = OrderPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    AOrder order = (AOrder)Marshal.PtrToStructure(current, typeof(AOrder));
                    current      = (IntPtr)((long)current + Marshal.SizeOf(order));
                    orders.Add(order);
                }
                Marshal.FreeCoTaskMem(OrderPtr);
            });

            return(orders);
        }
        public async Task <List <AProduct> > getOrderProducts(string id, byte[] error)
        {
            List <AProduct> products = new List <AProduct>();
            IntPtr          OrderProductPtr;

            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getOrderProducts(id, out OrderProductPtr, error, _ConnectionString);
                IntPtr current    = OrderProductPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    AProduct product = (AProduct)Marshal.PtrToStructure(current, typeof(AProduct));
                    current          = (IntPtr)((long)current + Marshal.SizeOf(product));
                    products.Add(product);
                }
                Marshal.FreeCoTaskMem(OrderProductPtr);
            });

            return(products);
        }
示例#5
0
        public async Task <List <Customer> > getCustomerById(string id, byte[] error)
        {
            Console.WriteLine("Hereeee");
            List <Customer> customers = new List <Customer>();
            IntPtr          CustomerPtr;
            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getCustomerById(id, out CustomerPtr, error, _ConnectionString);

                IntPtr current = CustomerPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    Customer customer = (Customer)Marshal.PtrToStructure(current, typeof(Customer));
                    current           = (IntPtr)((long)current + Marshal.SizeOf(customer));
                    customers.Add(customer);
                }
                Marshal.FreeCoTaskMem(CustomerPtr);
            });

            return(customers);
        }
        public async Task <List <ProductSold> > getSoldProduct(byte[] error)
        {
            List <ProductSold> products = new List <ProductSold>();
            IntPtr             ProductPtr;

            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getProfit(out ProductPtr, error, _ConnectionString);
                IntPtr current    = ProductPtr;
                for (int i = 0; i < number_fields; ++i)
                {
                    ProductSold product = (ProductSold)Marshal.PtrToStructure(current, typeof(ProductSold));

                    current = (IntPtr)((long)current + Marshal.SizeOf(product));
                    products.Add(product);
                }
                Marshal.FreeCoTaskMem(ProductPtr);
            });

            return(products);
        }
        public async Task <List <Invoice> > getInvoice(byte[] error)
        {
            List <Invoice> invoices = new List <Invoice>();
            IntPtr         InvoicePtr;

            await Task.Run(() =>
            {
                int number_fields = Accounting_Wrapper.getInvoice(out InvoicePtr, error, _ConnectionString);
                IntPtr current    = InvoicePtr;

                for (int i = 0; i < number_fields; ++i)
                {
                    Invoice invoice = (Invoice)Marshal.PtrToStructure(current, typeof(Invoice));

                    current = (IntPtr)((long)current + Marshal.SizeOf(invoice));
                    invoices.Add(invoice);
                }
                Marshal.FreeCoTaskMem(InvoicePtr);
            });

            return(invoices);
        }