/// <summary>
        /// API request for POEditor languages of a specific project
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private static Model.PoEditLanguageList.Response ExcecutePoEditLanguageList(
            Model.PoEditLanguageList.Request data)
        {
            var client = new RestClient(POEDIT_BASE_URL);

            var request = new RestRequest("languages/list", Method.POST);

            request.AddParameter("api_token", data.api_token);
            request.AddParameter("id", data.id);

            var response = client.Execute <Model.PoEditLanguageList.Response>(request);

            return(response.Data);
        }
        public async Task ExportLocalizationsToPath(string path)
        {
            // list all languages
            // export all languages in xliff format and save to disk
            // file name should have language code

            var languageListRequest = new Model.PoEditLanguageList.Request()
            {
                api_token = POEDIT_API_TOKEN, id = POEDIT_PROJECT_ID
            };
            var languageListResponse = ExcecutePoEditLanguageList(languageListRequest);

            foreach (var language in languageListResponse.result.languages)
            {
                var response  = ExecutePoExport(language.code);
                var webClient = new WebClient();
                webClient.DownloadFile(response.result.url, Path.Combine(path, $"messages.{language.code}.xlf"));
            }
        }
        public async Task UpdateLocalizationTexts()
        {
            // get all translated entries entries from po editor
            // identify the entries that do not exist yet
            // insert entries that do not exist yet

            var languageListRequest = new Model.PoEditLanguageList.Request()
            {
                api_token = POEDIT_API_TOKEN, id = POEDIT_PROJECT_ID
            };
            var languageListResponse = ExcecutePoEditLanguageList(languageListRequest);

            foreach (var language in languageListResponse.result.languages)
            {
                var request = new Request
                {
                    api_token = POEDIT_API_TOKEN, id = POEDIT_PROJECT_ID, language = language.code
                };
                var response = ExecutePoEditTermsList(request);

                CreateOrUpdateText(language.code, response);
            }
        }