Esempio n. 1
0
        public void PublishMessageUpdatedBook(Logger logger, Setting settings, AuthorText book, string authorUrl, string authorName)
        {
            if (!settings.UseMessageBroker)
            {
                return;
            }
            CheckProxy(settings);

            var paramBJson = new fastBinaryJSON.BJSONParameters
            {
                UsingGlobalTypes     = false,
                EnableAnonymousTypes = true,
                UseExtensions        = false
            };


            try
            {
                var transportBookInfo = new TransportBookInfo()
                {
                    AuthorLink  = authorUrl,
                    AuthorName  = authorName,
                    Description = book.Description,
                    Genres      = book.Genres,
                    Link        = book.Link,
                    Name        = book.Name,
                    SectionName = book.SectionName,
                    Size        = book.Size,
                    UpdateDate  = DateTime.Now.ToUniversalTime().Ticks
                };
                var jsonTransportBookInfo = fastBinaryJSON.BJSON.Instance.ToBJSON(transportBookInfo, paramBJson);

                var rpc = new JsonRpcClient(_proxy)
                {
                    Url = _apiUrl
                };
                rpc.Invoke <BooleanOperationResult>(
                    new RpcCommand()
                {
                    Method = "SetUpdateInfo", ParametersArray = new object[] { "clientId", SubscriptionManager.CurrentClientId, "jsonObjectBytes", jsonTransportBookInfo, "appId", "slkdjfhsjdfks928347832940hfjdsf982738r9" }
                },
                    (data) =>
                    GetUiControl().InvokeIfRequired(() =>

                {
                    if (data == null)
                    {
                        logger.Add("Не удалось отослать информацию об обновлении серверу статистики SIInformer", true);
                    }
                    else if (data.Result)
                    {
                        // ну, отослали успешно, чо делать-то? Да ничего. :-)
                    }
                    else
                    {
                        logger.Add("Не удалось отослать информацию об обновлении серверу статистики SIInformer: " + data.Error, true);
                    }
                }, DispatcherPriority.Normal), (error) => GetUiControl().InvokeIfRequired(() => logger.Add("Не удалось отослать информацию об обновлении серверу статистики SIInformer: " + error.Message, true), DispatcherPriority.Normal));
            }
            catch (Exception ex)
            {
                logger.Add("Ошибка работы модуля общения с сервером статистики SIInformer: " + ex.Message, true);
            }
        }
Esempio n. 2
0
        public void GetAuthorUpdatesInfo(Logger logger, Setting settings, string authorId, long lastServerStamp, Action <long, List <TransportBookInfo> > success, Action <string> fail)
        {
            CheckProxy(settings);
            var rpc = new JsonRpcClient(_proxy)
            {
                Url = _apiUrl
            };

            rpc.Invoke <AuthorUpdatesInfoOperationResult>(
                new RpcCommand()
            {
                Method          = "GetAuthorUpdatesInfo",
                ParametersArray =
                    new object[]
                {
                    "clientId", SubscriptionManager.CurrentClientId, "appId",
                    "slkdjfhsjdfks928347832940hfjdsf982738r9", "authorId", authorId,
                    "lastServerStamp", lastServerStamp
                }
            },
                (data) =>
            {
                if (data == null)
                {
                    var mes = "Не удалось запросить информацию об обновлении у сервера статистики SIInformer";
                    GetUiControl().InvokeIfRequired(() =>
                    {
                        if (fail != null)
                        {
                            fail(mes);
                        }
                        else
                        {
                            logger.Add(mes, true);
                        }
                    }, DispatcherPriority.Normal);
                }
                else if (!string.IsNullOrWhiteSpace(data.Error))
                {
                    var mes = "Cервер статистики SIInformer вернул ошибку: " + data.Error;
                    GetUiControl().InvokeIfRequired(() =>
                    {
                        if (fail != null)
                        {
                            fail(mes);
                        }
                        else
                        {
                            logger.Add(mes, true);
                        }
                    }, DispatcherPriority.Normal);
                }
                else
                {
                    GetUiControl().InvokeIfRequired(() =>
                    {
                        if (success != null)
                        {
                            var lastStatServerStamp = data.CheckDate;
                            var transportBooks      = data.Result == null ? null : fastBinaryJSON.BJSON.Instance.ToObject <List <TransportBookInfo> >(data.Result);
                            success(lastStatServerStamp, transportBooks);
                        }
                    }, DispatcherPriority.Normal);
                }
            }, (error) =>
            {
                var mes = "Не удалось запросить информацию об обновлении у сервера статистики SIInformer: " + error.Message;
                GetUiControl().InvokeIfRequired(() =>
                {
                    if (fail != null)
                    {
                        fail(mes);
                    }
                    else
                    {
                        logger.Add(mes, true);
                    }
                }, DispatcherPriority.Normal);
            });
        }