BaconographyPortable.Services.Impl.SmartOfflineRedditService.GetMessages C# (CSharp) Method

GetMessages() public method

public GetMessages ( int limit ) : Task
limit int
return Task
        public async Task<Listing> GetMessages(int? limit)
        {
            var user = await _userService.GetUser();
            if (user == null || string.IsNullOrEmpty(user.Username))
            {
                return await _redditService.GetMessages(limit);
            }

            lock (_currentlyStoringMessages)
            {
                if (_currentlyStoringMessages.ContainsKey(user.Username))
                    return _currentlyStoringMessages[user.Username];
            }

            if (user.Username != null)
                return MaybeStoreMessages(user, await _redditService.GetMessages(limit));

            var messages = await _offlineService.GetMessages(user);
            if (messages != null && messages.Data.Children.Count > 0)
                return messages;
            else
                return MaybeStoreMessages(user, await _redditService.GetMessages(limit));
        }