public Sdk.Domain.Project.Project ChangeProjectLanguages(List <string> languages)
        {
            IClient commerceToolsClient = this.GetService <IClient>();
            var     project             = commerceToolsClient.ExecuteAsync(new GetProjectCommand()).Result;

            var changeLanguagesUpdateAction = new ChangeLanguagesUpdateAction
            {
                Languages = languages
            };
            var updateActions = new List <UpdateAction <Sdk.Domain.Project.Project> > {
                changeLanguagesUpdateAction
            };

            var updatedProject = commerceToolsClient
                                 .ExecuteAsync(new UpdateProjectCommand(project.Version, updateActions))
                                 .Result;

            return(updatedProject);
        }
        public async Task UpdateProjectChangeLanguages()
        {
            var predefinedLanguages = new List <string> {
                "en", "de"
            };
            var newLanguages = new List <string> {
                "en", "de", "es"
            };

            await WithCurrentProject(client,
                                     project => SetProjectLanguages(project, predefinedLanguages),
                                     async project =>
            {
                Assert.NotNull(project);
                Assert.True(predefinedLanguages.SequenceEqual(project.Languages));

                var action = new ChangeLanguagesUpdateAction
                {
                    Languages = newLanguages
                };

                var updatedProject = await
                                     TryToUpdateCurrentProject(client, project, action.ToList());

                Assert.True(newLanguages.SequenceEqual(updatedProject.Languages));

                // then undo this change again
                action = new ChangeLanguagesUpdateAction
                {
                    Languages = predefinedLanguages
                };
                var projectWithOriginalLanguages = await
                                                   TryToUpdateCurrentProject(client, project, action.ToList());
                Assert.True(predefinedLanguages.SequenceEqual(projectWithOriginalLanguages.Languages));
            });
        }