public void UpsertRespondentFacebook_CorrectRoutinesCalled()
        {
            var service = Create();

            _userValidation.ValidateToken(Arg.Is <string>(z => z == "A")).Returns(true);
            RespondentUser respondentUser = new RespondentUser();

            _respondentsRepository.CreateNew().Returns(respondentUser);
            _respondentsRepository.FindById(Arg.Is(respondentUser.Id)).Returns(respondentUser);

            service.UpsertRespondentFacebook("A", "2345234", "4");

            Thread.Sleep(10);
            _respondentsRepository.Received().FindByFacebookId(Arg.Is("2345234"));
            _fbsocialNetworkGrabber.Received().Enqueue(Arg.Any <int>(), Arg.Is <string>("4"));
            _respondentsRepository.Received().Save(Arg.Any <RespondentUser>());
        }
        public void UpsertRespondentVkontakte_CorrectRoutinesCalled()
        {
            var service = Create();

            _userValidation.ValidateToken(Arg.Is <string>(z => z == "A")).Returns(true);
            RespondentUser respondentUser = new RespondentUser();

            _respondentsRepository.CreateNew().Returns(respondentUser);
            _respondentsRepository.FindById(Arg.Is(respondentUser.Id)).Returns(respondentUser);

            service.UpsertRespondentVkontakte("A", 120, "25081d7553e5fab");

            Thread.Sleep(10);
            _respondentsRepository.Received().FindByVkontakteId(Arg.Is(120));
            _vksocialNetworkGrabber.Received().Enqueue(Arg.Any <int>(), Arg.Is <string>("25081d7553e5fab"));
            _respondentsRepository.Received().Save(Arg.Any <RespondentUser>());
        }
 public void Save(RespondentUser respondent)
 {
     try
     {
         var rcollection = _database.GetCollection <RespondentUser>(nameof(RespondentUser));
         if (rcollection.Count(z => z.Id == respondent.Id) == 0)
         {
             rcollection.InsertOne(respondent);
         }
         else
         {
             rcollection.ReplaceOne(z => z.Id == respondent.Id, respondent);
         }
     }
     catch (Exception ex)
     {
         _log.Error(ex, ex.Message);
     }
 }
        public RespondentUser CreateNew()
        {
            try
            {
                var rcollection = _database.GetCollection <RespondentUser>(nameof(RespondentUser));
                var neophyte    = new RespondentUser();

                while (rcollection.Count(z => z.Id == neophyte.Id) != 0)
                {
                    neophyte.Id = Environment.TickCount;
                }
                rcollection.InsertOne(neophyte);
                _log.Information($"New user created {neophyte}");
                return(neophyte);
            }
            catch (Exception ex)
            {
                _log.Error(ex, ex.Message);
                return(null);
            }
        }