Пример #1
0
        public static UserDto GetUserDto(User user, IEnumerable <ChatDto> userChats = null, IEnumerable <ChannelDto> userChannels = null)
        {
            if (user == null)
            {
                return(null);
            }

            return(new UserDto
            {
                Id = user.Id,
                About = user.About,
                Birthday = user.Birthday,
                NameFirst = user.NameFirst,
                Blacklist = user.BlackList?.Select(opt => opt.BadUid).ToList(),
                Channels = userChannels?.ToList(),
                Chats = userChats?.ToList(),
                Deleted = user.Deleted,
                City = user.City,
                Country = user.Country,
                Dialogs = user.DialogsFirstU?.Select(dialog => new DialogDto
                {
                    FirstUserId = dialog.FirstUID,
                    SecondUserId = dialog.SecondUID,
                    Messages = MessageConverter.GetMessagesDto(dialog.Messages)
                }).ToList(),
                Emails = user.Emails?.Select(opt => opt.EmailAddress).ToList(),
                Language = user.Language,
                NameSecond = user.NameSecond,
                NodeId = user.NodeId,
                Online = user.Online,
                Phones = user.Phones?.Select(opt => opt.PhoneNumber).ToList(),
                Photo = user.Photo,
                RegistrationDate = user.RegistrationDate,
                Security = user.Security,
                Tag = user.Tag,
                Tokens = TokenConverter.GetTokensDto(user.Tokens),
                Privacy = user.Privacy,
                FilesInfo = FileInfoConverter.GetFilesInfoDto(user.FilesInfo),
                Keys = KeyConverter.GetKeysDto(user.UserPublicKeys),
                ContactsPrivacy = user.ContactsPrivacy,
                Confirmed = user.Confirmed.GetValueOrDefault(),
                PasswordHash = user.Sha512Password,
                Banned = user.Banned,
                SyncContacts = user.SyncContacts,
                Contacts = user.Contacts?.Select(contact => new ContactDto
                {
                    ContactId = contact.ContactId,
                    ContactUserId = contact.ContactUserId,
                    Name = contact.Name,
                    UserId = contact.UserId
                }).ToList(),
                ContactGroups = user.Groups?.Select(group => new GroupDto
                {
                    GroupId = group.GroupId,
                    PrivacySettings = group.PrivacySettings,
                    Title = group.Title,
                    UserId = group.UserId,
                    UsersId = group.ContactGroups?.Select(contactGroup => contactGroup.Contact?.ContactUserId ?? 0).Distinct().ToList()
                }).ToList(),
                Favorites = user.Favorites?.Select(favorite => new UserFavoritesDto
                {
                    ChannelId = favorite.ChannelId,
                    ChatId = favorite.ChatId,
                    UserId = favorite.UserId,
                    ContactId = favorite.ContactId,
                    SerialNumber = favorite.SerialNumber
                }).ToList()
            });
        }