C# код почему-то выполняется дважды

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Доброго дня!

Подскажите, пожалуйста, в чём может быть проблема.

Наполняю Wordpress блог, за основу взят способ из 3 конкурса статей.

Проблема в том, что постит он вместо одного поста два. У автора код в примере разделен на 2 части:
1) Код отвечающий за заголовок+контент.
C#:
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
            wordPressSiteConfig.BaseUrl = "http://www.ru/xmlrpc.php"; // Путь к xmlrpc
            wordPressSiteConfig.Username = "login";   // Логин
            wordPressSiteConfig.Password = "pass"; // Пароль
            wordPressSiteConfig.BlogId = 1;

            using (var client = new WordPressClient(wordPressSiteConfig))
            {
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish" // "draft" или "publish" (draft это черновик)
                };

                var id = Convert.ToInt32(client.NewPost(post)); // ID поста
                var comment = new Comment();
                comment.PostId = id.ToString(); // ID записи
                comment.Author = "Radzhab";   // Автор
                comment.AuthorEmail = "[email protected]"; // Почта
                comment.AuthorIp = "127.0.0.1";  // IP
                comment.Content = "Здесь был комментарий"; // Комментарий
                comment.DateCreated = DateTime.Now.AddHours(1); // на час позже добавляем.
                                                                // чтобы без палева)
                client.NewComment(comment);
            }
2) Код для загрузки превью.
C#:
....
string url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/CorporationParkGoose.JPG/530px-CorporationParkGoose.JPG";
                var featureImage = Data.CreateFromUrl(url);
                post.FeaturedImageId = client.UploadFile(featureImage).Id;
                var id = Convert.ToInt32(client.NewPost(post)); // ID поста
Если использовать код без превью, то постит 1 пост. Если добавляю код превью - 2 поста, причём один с превью, а второй без.

Я вставляю так:

C#:
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
            wordPressSiteConfig.BaseUrl = "http://www.ru/xmlrpc.php"; // Путь к xmlrpc
            wordPressSiteConfig.Username = "login";   // Логин
            wordPressSiteConfig.Password = "pass"; // Пароль
            wordPressSiteConfig.BlogId = 1;

            using (var client = new WordPressClient(wordPressSiteConfig))
            {
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish" // "draft" или "publish" (draft это черновик)
                };

                var id = Convert.ToInt32(client.NewPost(post)); // ID поста
                var comment = new Comment();
                comment.PostId = id.ToString(); // ID записи
                comment.Author = "Radzhab";   // Автор
                comment.AuthorEmail = "[email protected]"; // Почта
                comment.AuthorIp = "127.0.0.1";  // IP
                comment.Content = "Здесь был комментарий"; // Комментарий
                comment.DateCreated = DateTime.Now.AddHours(1); // на час позже добавляем.
                                                                // чтобы без палева)
                client.NewComment(comment);

string url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/CorporationParkGoose.JPG/530px-CorporationParkGoose.JPG";
                var featureImage = Data.CreateFromUrl(url);
                post.FeaturedImageId = client.UploadFile(featureImage).Id;
                id = Convert.ToInt32(client.NewPost(post)); // ID поста

            }
Подскажите, пожалуйста, в чём проблема может быть?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
На мой взгляд проблема в том, что два раза вызывается NewPost (строки 18 и 32). Попробуй удалить или закоментировать 18-ю строку. ( и в 32-й строке перед id добавить var)

P.S. Могу и ошибаться, т.к. с библиотекой данной не работал.

P.P.S. Строки 19-27 тоже, наверное, лучше закоментировать, т.к. в них создаётся комментарий к записи, которой ещё нету. Или можно эти строки разместить уже после того, как добавлена картинка и пост опубликован.
 
  • Спасибо
Реакции: Dmffmd и Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
Спасибо огромное!
Вот рабочий вариант, если кому-то пригодится:

C#:
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
            wordPressSiteConfig.BaseUrl = "http://www.ru/xmlrpc.php"; // Путь к xmlrpc
            wordPressSiteConfig.Username = "login";   // Логин
            wordPressSiteConfig.Password = "pass"; // Пароль
            wordPressSiteConfig.BlogId = 1;

            using (var client = new WordPressClient(wordPressSiteConfig))
            {
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish" // "draft" или "publish" (draft это черновик)
                };

string url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/CorporationParkGoose.JPG/530px-CorporationParkGoose.JPG";
                var featureImage = Data.CreateFromUrl(url);
                post.FeaturedImageId = client.UploadFile(featureImage).Id;

                var id = Convert.ToInt32(client.NewPost(post)); // ID поста

                //var comment = new Comment();
                //comment.PostId = id.ToString(); // ID записи
                //comment.Author = "Radzhab";   // Автор
                //comment.AuthorEmail = "[email protected]"; // Почта
                //comment.AuthorIp = "127.0.0.1";  // IP
                //comment.Content = "Здесь был комментарий"; // Комментарий
                //comment.DateCreated = DateTime.Now.AddHours(1); // на час позже добавляем.
                                                                // чтобы без палева)
                //client.NewComment(comment);


            }
 
  • Спасибо
Реакции: GreenWay

inertial21

Client
Регистрация
02.05.2016
Сообщения
30
Благодарностей
0
Баллы
6
Спасибо огромное!
Вот рабочий вариант, если кому-то пригодится:

C#:
WordPressSiteConfig wordPressSiteConfig = new WordPressSiteConfig();
            wordPressSiteConfig.BaseUrl = "http://www.ru/xmlrpc.php"; // Путь к xmlrpc
            wordPressSiteConfig.Username = "login";   // Логин
            wordPressSiteConfig.Password = "pass"; // Пароль
            wordPressSiteConfig.BlogId = 1;

            using (var client = new WordPressClient(wordPressSiteConfig))
            {
                var post = new Post
                {
                    PostType = "post", // "post" или "page"
                    Title = "Заголовок",
                    Content = "Контент записи, <a> А тут html код)</a>",
                    PublishDateTime = DateTime.Now, // Дата публикации
                    Status = "publish" // "draft" или "publish" (draft это черновик)
                };

string url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/CorporationParkGoose.JPG/530px-CorporationParkGoose.JPG";
                var featureImage = Data.CreateFromUrl(url);
                post.FeaturedImageId = client.UploadFile(featureImage).Id;

                var id = Convert.ToInt32(client.NewPost(post)); // ID поста

                //var comment = new Comment();
                //comment.PostId = id.ToString(); // ID записи
                //comment.Author = "Radzhab";   // Автор
                //comment.AuthorEmail = "[email protected]"; // Почта
                //comment.AuthorIp = "127.0.0.1";  // IP
                //comment.Content = "Здесь был комментарий"; // Комментарий
                //comment.DateCreated = DateTime.Now.AddHours(1); // на час позже добавляем.
                                                                // чтобы без палева)
                //client.NewComment(comment);


            }

может знаешь как можно alt прикрутить изображению в этом запросе?
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)