Пример #1
0
 public GroupsController(IConfiguration configuration, UserHelperService userManager, DatabaseContext context, VkPoolService vkPoolService)
 {
     _configuration     = configuration;
     _userHelperService = userManager;
     _context           = context;
     _vkPoolService     = vkPoolService;
 }
Пример #2
0
 public SubscribersController(UserHelperService userManager, DatabaseContext context, VkPoolService vkPoolService)
 {
     _userHelperService = userManager;
     _context           = context;
     _vkPoolService     = vkPoolService;
 }
Пример #3
0
 public SubscriberSyncHub(DatabaseContext context, VkPoolService vkPoolService)
 {
     _context       = context;
     _vkPoolService = vkPoolService;
 }
Пример #4
0
        public static async Task <Subscribers> CreateSubscriber(DatabaseContext _context, VkPoolService _vkPoolService, long idGroup, long?idVkUser)
        {
            if (!idVkUser.HasValue || idVkUser.Value <= 0)
            {
                return(null);
            }
            var subscriber = await _context.Subscribers.FirstOrDefaultAsync(x => x.IdGroup == idGroup && x.IdVkUser == idVkUser.Value);

            if (subscriber != null)
            {
                return(subscriber);
            }

            var vkUser = await _context.VkUsers.FirstOrDefaultAsync(x => x.IdVk == idVkUser.Value);

            if (vkUser == null)
            {
                try
                {
                    var vkApi = await _vkPoolService.GetGroupVkApi(idGroup);

                    if (vkApi == null)
                    {
                        return(null);
                    }

                    var users = await vkApi.Users.GetAsync(new long[] { idVkUser.Value }, VkNet.Enums.Filters.ProfileFields.BirthDate |
                                                           VkNet.Enums.Filters.ProfileFields.City |
                                                           VkNet.Enums.Filters.ProfileFields.Country |
                                                           VkNet.Enums.Filters.ProfileFields.FirstName |
                                                           VkNet.Enums.Filters.ProfileFields.LastName |
                                                           VkNet.Enums.Filters.ProfileFields.Nickname |
                                                           VkNet.Enums.Filters.ProfileFields.Domain |
                                                           VkNet.Enums.Filters.ProfileFields.Photo50 |
                                                           VkNet.Enums.Filters.ProfileFields.Photo400Orig |
                                                           VkNet.Enums.Filters.ProfileFields.Sex |
                                                           VkNet.Enums.Filters.ProfileFields.Blacklisted);

                    if (users == null || !users.Any())
                    {
                        return(null);
                    }

                    vkUser = VkUsers.FromUser(users.FirstOrDefault());
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Ошибка при запросе users.get с id={idVkUser}{Environment.NewLine}{ex.Message}{Environment.NewLine}{ex.StackTrace}");
                    return(null);
                }

                _context.VkUsers.Update(vkUser);
            }

            subscriber = new Subscribers()
            {
                IdVkUser = vkUser.IdVk,
                IdGroup  = idGroup,
                DtAdd    = DateTime.UtcNow
            };
            await _context.Subscribers.AddAsync(subscriber);

            await _context.SaveChangesAsync();

            return(subscriber);
        }
Пример #5
0
 public MessagingHub(IConfiguration configuration, DatabaseContext context, VkPoolService vkPoolService)
 {
     _configuration = configuration;
     _context       = context;
     _vkPoolService = vkPoolService;
 }
Пример #6
0
 public RepostsController(DatabaseContext context, UserHelperService userHelperService, VkPoolService vkPoolService)
 {
     _context           = context;
     _userHelperService = userHelperService;
     _vkPoolService     = vkPoolService;
 }