Ejemplo n.º 1
0
        public MessageListViewModel(int friendId
            , IMessageItemModelFactory messageItemModelFactory
            , IUserInfoRepository userInfoRepository
            , IFriendsRepository friendsRepository
            , IDialogMessagesRepository dialogMessagesRepository
            , ILoadingIndicatorViewModel loadingIndicatorModel
            , ILanguageRepository languageRepository
            , ILogger logger) 
            : base(languageRepository, logger)
        {
            _messageItemModelFactory = messageItemModelFactory;
            FriendId = friendId;
            MessageViews = new BindableCollection<IMessageBaseItemViewModel>();
            LoadingIndicatorModel = loadingIndicatorModel;

            if (userInfoRepository.NotEmpty())
            {
                UserFirstName = userInfoRepository.Data.FirstName;
            }

            if (friendsRepository.NotEmpty())
            {
                FriendFirstName = friendsRepository.Data.FirstOrDefault(x => x.VkId == friendId)?.FirstName;
            }

            dialogMessagesRepository.AddingRange += DialogMessagesAddingRange;
            dialogMessagesRepository.AddedRange += DialogMessagesAddedRange;
            dialogMessagesRepository.AddRangeFailed += DialogMessagesAddRangeFailed;
        }
        public RunLongPollBackgroundService(LongPollBackgroundService longPollBackgroundService
            , IAddDialogMessagesFactory addDialogMessagesFactory
            , ISessionInfoRepository sessionInfoRepository
            , IFriendsRepository friendsRepository
            , IDialogMessagesRepository dialogMessagesRepository
            , ILogger logger)
        {
            _longPollBackgroundService = longPollBackgroundService;
            _addDialogMessagesFactory = addDialogMessagesFactory;
            _sessionInfoRepository = sessionInfoRepository;
            _friendsRepository = friendsRepository;
            _dialogMessagesRepository = dialogMessagesRepository;

            _longPollBackgroundService.Complete += OnComplete;
            
            _longPollBackgroundService.Error += (sender, args) =>
            {
                logger.Error(args.Exception);
            };
        }