Пример #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;
        }
Пример #2
0
 public MessageInputViewModel(int friendId
     , ISendMessageToVk sendMessageToVk
     , ISessionInfoRepository sessionInfoRepository
     , ILoadingIndicatorViewModel loadingIndicatorModel
     , ILanguageRepository languageRepository
     , ILogger logger) 
     : base(languageRepository, logger)
 {
     _sendMessageToVk = sendMessageToVk;
     _sessionInfoRepository = sessionInfoRepository;
     FriendId = friendId;
     LoadingIndicatorModel = loadingIndicatorModel;
 }
Пример #3
0
        public FriendListViewModel(bool displayOnlineStatuses
            , IFriendsRepository friendsRepository
            , IFriendsAvatarsRepository friendsAvatarsRepository
            , IFriendItemModelFactory friendItemViewModelFactory
            , ILoadingIndicatorViewModel loadingIndicatorViewModel
            , ILanguageRepository languageRepository
            , ILogger logger)
            : base(languageRepository, logger)
        {
            _friendItemViewModelFactory = friendItemViewModelFactory;
            _friendsAvatarsRepository = friendsAvatarsRepository;

            _displayOnlineStatuses = displayOnlineStatuses;

            FriendViews = new BindableCollection<IFriendItemViewModel>();
            LoadingIndicatorModel = loadingIndicatorViewModel;

            friendsAvatarsRepository.Adding += FriendsAvatarsRepositoryAdding;
            friendsAvatarsRepository.Added += FriendsAvatarsRepositoryAdded;
            friendsAvatarsRepository.AddFailed += FriendsAvatarsRepositoryAddFailed;

            BindLoadingIndicatorToCollectionRepository<IFriendsRepository, IFriend>(loadingIndicatorViewModel, friendsRepository);
        }
Пример #4
0
        public FriendItemViewModel(IFriend friend
            , bool displayOnlineStatus
            , ILoadingIndicatorViewModel loadingIndicatorViewModel
            , ILanguageRepository languageRepository
            , ILogger logger
            , IEventAggregator eventAggregator) 
            : base(languageRepository, logger, eventAggregator)
        {
            if (friend == null)
                throw  new ArgumentNullException(nameof(friend));

            _friend = friend;
            _displayOnlineStatus = displayOnlineStatus;

            LoadingIndicatorModel = loadingIndicatorViewModel;
            LoadingIndicatorModel.ImageScale = 0.5;

            UpdateText();
        }