Example #1
0
        public static async Task Customer(int number)
        {
            var customer = new Model.Customer();

            var personNameGenerator = new PersonNameGenerator();

            var client = new RestClient("https://api.tripletex.io/v2/");

            for (var i = 0; i < number; i++)
            {
                customer.name = personNameGenerator.GenerateRandomFirstAndLastName();

                var request = new RestRequest("customer");

                request.AddJsonBody(customer);
                request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

                var response = await client.ExecutePostAsync <SingleValueResponse <KeyInfo> >(request);

                if (HttpStatusCode.Created != response.StatusCode)
                {
                    throw new ArgumentException($"Customer post error: {response.StatusCode}");
                }

                FileDoc.WriteFile(response.Data.Value, "Customer.csv");

                Console.Write($"\r{i + 1} Customer created");
            }

            Console.WriteLine("\n");
            Console.Write("> ");
        }
Example #2
0
        public static async Task Product(int number)
        {
            var readFile = FileDoc.ReadFile("Product.csv");

            if (readFile == null)
            {
                Console.WriteLine("Nothing to delete");
                return;
            }

            var productNumber = readFile.Select(f => f.Split(',')[2]).ToArray();

            var client = new RestClient("https://api.tripletex.io/v2/");

            for (var i = productNumber.Length - 1; i >= (productNumber.Length - number < 0 ? 0 : productNumber.Length - number); i--)
            {
                var request = new RestRequest("product/" + productNumber[i], Method.DELETE);
                request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

                await client.ExecuteAsync(request);

                Console.Write($"\r{productNumber.Length - i} Product deleted");
            }

            FileDoc.DeleteFile("Product.csv");

            if (productNumber.Length - number > 0)
            {
                FileDoc.WriteFile(readFile.Take(readFile.Length - number).ToArray(), "Product.csv");
            }

            Console.WriteLine("\n");
            Console.Write("> ");
        }
Example #3
0
        public static async Task Customer(int number)
        {
            var personNameGenerator = new PersonNameGenerator();

            var client = new RestClient("https://api.tripletex.io/v2/");

            for (var i = 0; i < number; i++)
            {
                var request = new RestRequest("customer");

                request.AddJsonBody(new { name = personNameGenerator.GenerateRandomFirstAndLastName() });
                request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

                var response = await client.ExecutePostAsync <SingleResponse <KeyInfo> >(request);

                if (!response.IsSuccessful)
                {
                    ErrorHandler.Handel(response.Content);
                }

                var data       = response.Data.Value;
                var dataString = $"{data.name},{data.id}";

                FileDoc.AppendFile(dataString, "Customer.csv");

                Console.Write($"\r{i + 1} Customer created");
            }

            Console.WriteLine("\n");
            Console.Write("> ");
        }
Example #4
0
        public static async Task Customer()
        {
            var client = new RestClient("https://api.tripletex.io/v2/");

            var request = new RestRequest("customer");

            request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

            var response = await client.ExecuteGetAsync <ListResponse <ResponseCustomer> >(request);

            var data = response.Data.Values.Select(d => $"{d.name},{d.id}").ToArray();

            FileDoc.DeleteFile("Customer.csv");

            FileDoc.WriteFile(data, "Customer.csv");
        }
Example #5
0
        public static async Task Product(int number)
        {
            var product = new Product
            {
                supplier =
                {
                    name      = "Supp",
                    category1 = { name = "C1" },
                    category2 = { name = "C2" },
                    category3 = { name = "C3" }
                }
            };

            var client = new RestClient("https://api.tripletex.io/v2/");

            var placeGenerator = new PlaceNameGenerator();

            for (var i = 0; i < number; i++)
            {
                product.name   = placeGenerator.GenerateRandomPlaceName();
                product.number = FileDoc.GetNumber("Product.csv");
                product.costExcludingVatCurrency  = Random.Next(5, 800);
                product.priceExcludingVatCurrency = Random.Next(800, 1501);

                var request = new RestRequest("product");

                request.AddJsonBody(product);
                request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

                var response = await client.ExecutePostAsync <SingleResponse <KeyInfo> >(request);

                if (!response.IsSuccessful)
                {
                    ErrorHandler.Handel(response.Content);
                }

                var data       = response.Data.Value;
                var dataString = $"{data.number},{data.name},{data.id}";

                FileDoc.AppendFile(dataString, "Product.csv");

                Console.Write($"\r{i + 1} Product created");
            }

            Console.WriteLine("\n");
            Console.Write("> ");
        }
Example #6
0
        public static async Task Product(Employee employee, int number)
        {
            var product = new Product
            {
                supplier =
                {
                    name            = "Supp",
                    accountManager  = employee,
                    deliveryAddress = { employee = employee },
                    category1       = { name = "C1" },
                    category2       = { name = "C2" },
                    category3       = { name = "C3" }
                }
            };

            var client = new RestClient("https://api.tripletex.io/v2/");

            var placeGenerator = new PlaceNameGenerator();

            for (var i = 0; i < number; i++)
            {
                product.name   = placeGenerator.GenerateRandomPlaceName();
                product.number = FileDoc.GetNumber("Product.csv");
                product.costExcludingVatCurrency  = Random.Next(5, 800);
                product.priceExcludingVatCurrency = Random.Next(800, 1501);

                var request = new RestRequest("product");

                request.AddJsonBody(product);
                request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

                var response = await client.ExecutePostAsync <SingleValueResponse <KeyInfo> >(request);

                if (HttpStatusCode.Created != response.StatusCode)
                {
                    throw new ArgumentException($"Product post error: {response.StatusCode}");
                }

                FileDoc.WriteFile(response.Data.Value, "Product.csv");

                Console.Write($"\r{i + 1} Product created");
            }

            Console.WriteLine("\n");
            Console.Write("> ");
        }
Example #7
0
        public static async Task Product()
        {
            var client = new RestClient("https://api.tripletex.io/v2/");

            var request = new RestRequest("product");

            request.AddHeader("Authorization", $"Basic {Authentication.EncodedCredentials}");

            var response = await client.ExecuteGetAsync <ListResponse <ResponseProduct> >(request);

            if (!response.IsSuccessful)
            {
                ErrorHandler.Handel(response.Content);
            }

            var data = response.Data.Values.Select(d => $"{d.number},{d.name},{d.id}").ToArray();

            FileDoc.WriteFile(data, "Product.csv", "Number,Name,Id");
        }
Example #8
0
        public static async Task Authenticate()
        {
            while (true)
            {
                try
                {
                    var tokens = await FileDoc.GetTokens();

                    await CreateSessionToken(new Credentials(tokens[0], tokens[1]));

                    FileDoc.WriteFile(tokens, "Tokens.txt");

                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message + "\n");
                }
            }
        }
Example #9
0
        private static async Task Run()
        {
            var command = Console.ReadLine()?.Split(' ').Select(s => s.ToLower()).ToArray();

            if (command?[0] == "q")
            {
                Environment.Exit(0);
            }

            if (command?[0] == "sync")
            {
                await Get.Sync();

                Console.WriteLine("Done\n");
                Console.Write("> ");
                return;
            }

            if (command?[0] == "token")
            {
                FileDoc.DeleteFile("Tokens.txt");
                Console.Clear();

                await Authentication.Authenticate();

                await Get.Sync();

                Console.Clear();
                Command.Welcome();
                return;
            }

            if (command?[0] == "webhook" && command.Length > 1)
            {
                await Put.Subscription(command[1]);

                return;
            }

            if (command?.Length != 3 || !int.TryParse(command[1], out var number))
            {
                Command.Invalid();
                return;
            }

            if (command[0] == "post")
            {
                if (command[2] == "p")
                {
                    await Post.Product(number);
                }
                else if (command[2] == "co")
                {
                    await Post.Contact(number);
                }
                else if (command[2] == "e")
                {
                    await Post.Employee(number);
                }
                else if (command[2] == "cu")
                {
                    await Post.Customer(number);
                }
                else
                {
                    Command.Invalid();
                }
            }
            else if (command[0] == "del")
            {
                if (command[2] == "p")
                {
                    await Delete.Product(number);
                }
                else if (command[2] == "cu")
                {
                    await Delete.Customer(number);
                }
                else
                {
                    Command.Invalid();
                }
            }
            else
            {
                Command.Invalid();
            }
        }