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() }); }