Пример #1
0
        public void ChangeMessageStatus(UnreadFriendMessageList unreadMessages, AccountViewModel account)
        {
            foreach (var unreadMessage in unreadMessages.UnreadMessages)
            {
                var userAgent = new GetUserAgentQueryHandler(new DataBaseContext()).Handle(new GetUserAgentQuery
                {
                    UserAgentId = account.UserAgentId
                });

                new ChangeMessageStatusEngine().Execute(new ChangeMessageStatusModel
                {
                    AccountId        = account.FacebookId,
                    FriendFacebookId = unreadMessage.FriendFacebookId,
                    Cookie           = account.Cookie,
                    Proxy            = _accountManager.GetAccountProxy(account),
                    UrlParameters    = new GetUrlParametersQueryHandler(new DataBaseContext()).Handle(new GetUrlParametersQuery
                    {
                        NameUrlParameter = NamesUrlParameter.ChangeMessageStatus
                    }),
                    UserAgent = userAgent.UserAgentString
                });

                Thread.Sleep(2000);
            }
        }
Пример #2
0
        private UnreadFriendMessageList GetMessangerMessages(AccountViewModel account)
        {
            const string noticeName   = "Теперь вы общаетесь и в Messenger";
            var          functionName = $"Получение сообщений '{noticeName}'";

            try
            {
                var userAgent = new GetUserAgentQueryHandler(new DataBaseContext()).Handle(new GetUserAgentQuery
                {
                    UserAgentId = account.UserAgentId
                });

                var messages = new GetMessangerMessagesEngine().Execute(new GetMessangerMessagesModel
                {
                    AccountId     = account.FacebookId,
                    Cookie        = account.Cookie,
                    Proxy         = _accountManager.GetAccountProxy(account),
                    UrlParameters = new GetUrlParametersQueryHandler(new DataBaseContext()).Handle(
                        new GetUrlParametersQuery
                    {
                        NameUrlParameter = NamesUrlParameter.GetMessangerMessages
                    }),
                    UserAgent          = userAgent.UserAgentString,
                    NumbersOfDialogues = 10
                });

                var result = new UnreadFriendMessageList
                {
                    UnreadMessages = messages.Select(model => new UnreadFriendMessageModel
                    {
                        FriendFacebookId          = model.FriendFacebookId,
                        UnreadMessage             = model.UnreadMessage,
                        LastMessage               = noticeName,
                        CountAllMessages          = model.CountAllMessages,
                        CountUnreadMessages       = model.CountUnreadMessages,
                        LastReadMessageDateTime   = model.LastReadMessageDateTime,
                        LastUnreadMessageDateTime = model.LastUnreadMessageDateTime,
                        FriendGender              = model.Gender,
                        FriendName = model.Name,
                        FriendHref = model.Href,
                        FriendType = model.FriendType
                    }).ToList()
                };


                new SaveUnreadMessagesCommandHandler(new DataBaseContext()).Handle(new SaveUnreadMessagesCommand
                {
                    AccountId      = account.Id,
                    UnreadMessages = messages.Select(model => new FacebookMessageDbModel
                    {
                        AccountId           = model.AccountId,
                        FriendFacebookId    = model.FriendFacebookId,
                        Gender              = model.Gender,
                        CountAllMessages    = model.CountAllMessages,
                        CountUnreadMessages = model.CountUnreadMessages,
                        Href                      = model.Href,
                        LastMessage               = noticeName,
                        LastReadMessageDateTime   = model.LastReadMessageDateTime,
                        LastUnreadMessageDateTime = model.LastUnreadMessageDateTime,
                        Name                      = model.Name,
                        UnreadMessage             = model.UnreadMessage,
                        FriendType                = model.FriendType
                    }).ToList()
                });

                return(result);
            }
            catch (Exception ex)
            {
                _notice.AddNotice(functionName, account.Id, string.Format("Возникла ошибка {0}", ex.Message));
            }

            return(null);
        }