Esempio n. 1
0
        public async Task <IActionResult> Register([FromBody] RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userIdentity = new Elector
            {
                FirstName      = model.FirstName,
                LastName       = model.LastName,
                PassportNumber = model.PassportNumber,
                Password       = model.Password,
                Email          = model.Email,
                UserName       = string.Concat(new[] { model.FirstName, model.LastName })
            };

            var result = await _userManager.CreateAsync(userIdentity, model.Password);

            if (!result.Succeeded)
            {
                return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
            }

            await _appDbContext.BallotForms.AddAsync(new BallotForm
            {
                DateOfElection = StaticData.DateOfElection,
                ElectorId      = userIdentity.Id,
                UpdateDate     = DateTime.Now
            });

            await _appDbContext.SaveChangesAsync();

            return(new OkResult());
        }
Esempio n. 2
0
        public static void TestProtocol()
        {
            var rsa       = new RSACryptography();
            var validator = new Validator(rsa);

            validator.CreateKeys();

            var agency = new Agency(rsa, validator.PublicKey.GetChangeableCopy(), 10);

            var elector = new Elector(rsa, validator.PublicKey.GetChangeableCopy());

            elector.CreateNewKeys();

            var blinded       = elector.CreateBlindedMessage(0);
            var blindedSigned = elector.CreateBlindedSignedMessage(0);



            if (validator.VerifyBulletin(blindedSigned, blinded, elector.PublicSignKey.GetChangeableCopy()))
            {
                var signedByValidator       = validator.SignBulletin(blinded);
                var signedValidatorUnBlind  = elector.RemoveBlindEncryption(signedByValidator);
                var encryptedBulletin       = elector.GetEncryptedBulletin(0);
                var signedEncryptedBulletin = elector.GetSignedEncryptedBulletin(0);

                agency.AddBulletin(signedValidatorUnBlind, encryptedBulletin, signedEncryptedBulletin, elector.PublicSignKey.GetChangeableCopy(), 1);
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Email")] Elector elector)
        {
            if (id != elector.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(elector);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ElectorExists(elector.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(elector));
        }
 public void RegisterElector(Elector elector)
 {
     //using (var context = new Context())
     {
         context.Electors.Add(elector);
         context.SaveChanges();
     }
 }
Esempio n. 5
0
        public async Task <ActionResult <Elector> > GetElector(string id)
        {
            var random = new Random();

            var elector = new Elector(id, DistrictRepository.Get(DummyDistrictRepository.election, random.Next(1, 4)));

            return(await Task.FromResult(elector));
        }
Esempio n. 6
0
        public async Task <IActionResult> Create([Bind("Id,Name,Email")] Elector elector)
        {
            if (ModelState.IsValid)
            {
                _context.Add(elector);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(elector));
        }
 public void InitializeListOfElectors(int amountOfElectors)
 {
     for (int x = 0; x <= amountOfElectors; x++)
     {
         var elector = new Elector()
         {
             PESEL = 1000 + x
         };
         var         stringJson = JsonConvert.SerializeObject(elector);
         HttpContent content    = new StringContent(stringJson, Encoding.UTF8, "application/json");
         var         response   = _client.PostAsync("Elector", content).Result;
     }
 }
 public static Resident ToDomain(this Elector elector)
 {
     return(new Resident
     {
         Id = elector.Id,
         Email = elector.Email,
         Nationality = elector.Nationality,
         Title = elector.Title,
         Uprn = elector.ElectorsProperty?.Uprn != null?Convert.ToInt32(elector.ElectorsProperty?.Uprn) : (int?)null,
                    FirstName = elector.FirstName,
                    LastName = elector.LastName,
                    MiddleName = elector.ElectorExtension?.MiddleName,
                    DateOfBirth = elector.ElectorExtension?.DateOfBirth
     });
 }
        public void CanMapAnElectorWithAttachedPropertyToResidentDomainObject()
        {
            var elector = new Elector
            {
                Id = 77,
                ElectorsProperty = new ElectorsProperty
                {
                    Id   = 88,
                    Uprn = "9842274",
                }
            };
            var resident = elector.ToDomain();

            resident.Id.Should().Be(77);
            resident.Uprn.Should().Be(9842274);
        }
Esempio n. 10
0
        public void UpdateElectorList(Club mainClub)
        {
            int term1index, term2index;
            bool term1okay, term2okay;
            for (short i = 0; i < mainClub.iMember; i++)
            {
                term2index = -1;
                term2okay = true;
                term1index = mainClub.listTerms[termIndex].memberSearch(i);
                term1okay = (term1index == -1) ||
                    mainClub.listTerms[termIndex].limboMembers[term1index] ||
                    mainClub.listTerms[termIndex].feesPaid[term1index, 0] > 0;

                // There are two terms to go back to
                if (termIndex != 0)
                {
                    term2index = mainClub.listTerms[termIndex - 1].memberSearch(i);
                    term2okay = (term2index == -1) || mainClub.listTerms[termIndex - 1].limboMembers[term2index] ||
                        (mainClub.listTerms[termIndex - 1].feesPaid[term2index, 0] > 0);
                }

                if (((term1index != -1 && !mainClub.listTerms[termIndex].limboMembers[term1index]) ||
                    (term2index != -1 && !mainClub.listTerms[termIndex - 1].limboMembers[term2index]))
                    && term1okay && term2okay && (ClsStorage.currentClub.members[i].type == Member.MemberType.UWUnderGrad || ClsStorage.currentClub.members[i].type == Member.MemberType.UWGrad))
                {
                    Elector temp = new Elector();

                    temp.strName = mainClub.GetFormattedName(i);
                    temp.strEmail = mainClub.members[i].email;
                    temp.id = i;

                    electorList.Add(temp);
                }
                else if ((ClsStorage.currentClub.members[i].type == Member.MemberType.UWUnderGrad || ClsStorage.currentClub.members[i].type == Member.MemberType.UWGrad) &&
                    ((term1index != -1 && !mainClub.listTerms[termIndex].limboMembers[term1index]) || (term2index != -1 && !mainClub.listTerms[termIndex - 1].limboMembers[term2index])))
                {
                    Elector temp = new Elector();
                    temp.strName = mainClub.GetFormattedName(i);
                    temp.strEmail = mainClub.members[i].email;
                    temp.id = i;

                    this.almostElector.Add(temp);
                }
            }
        }
Esempio n. 11
0
        public void InitializeElector(Dictionary <string, object> validatorKey)
        {
            var checkCrypto = false;
            var i           = 0;

            while (!checkCrypto)
            {
                Elector = new Elector(CryptographyProvider, validatorKey);
                Elector.CreateNewKeys();
                var blindedSigned = Elector.CreateBlindedSignedMessage(0);
                var blinded       = Elector.CreateBlindedMessage(0);
                checkCrypto = CryptographyProvider.VerifyData(Elector.PublicSignKey.GetCopy(), blinded, blindedSigned);
                i++;
            }

            LogIn();
            Debug.Log("Elector created");
        }
        public void CanMapAnElectorWithAttachedElectorExtensionToResidentDomain()
        {
            var electorExtension = new Elector
            {
                Id = 83,
                ElectorExtension = new ElectorExtension
                {
                    Id          = 77,
                    MiddleName  = "John",
                    DateOfBirth = new DateTime(2001, 04, 05)
                }
            };
            var resident = electorExtension.ToDomain();

            resident.Id.Should().Be(83);
            resident.MiddleName.Should().Be("John");
            resident.DateOfBirth.Should().Be(new DateTime(2001, 04, 05));
        }
Esempio n. 13
0
        private void CreateValidator()
        {
            var checkCrypto = false;
            var i           = 0;

            while (!checkCrypto)
            {
                Validator = new Validator(CryptographyProvider);
                Validator.CreateKeys();
                var validatorKey = Validator.PublicKey.GetChangeableCopy();
                var elector      = new Elector(CryptographyProvider, validatorKey);
                elector.CreateNewKeys();
                var blindedSigned = elector.CreateBlindedSignedMessage(0);
                var blinded       = elector.CreateBlindedMessage(0);
                checkCrypto = CryptographyProvider.VerifyData(elector.PublicSignKey.GetChangeableCopy(), blinded, blindedSigned);
                i++;
            }
        }
        public void CanMapAnElectorEntityToAResidentDomainObject()
        {
            var elector = new Elector
            {
                Id          = 77,
                Email       = "*****@*****.**",
                Nationality = "Russian",
                Title       = "Prof.",
                FirstName   = "Green",
                LastName    = "White",
            };
            var resident = elector.ToDomain();

            resident.Id.Should().Be(77);
            resident.Email.Should().Be("*****@*****.**");
            resident.Nationality.Should().Be("Russian");
            resident.Title.Should().Be("Prof.");
            resident.FirstName.Should().Be("Green");
            resident.LastName.Should().Be("White");
        }
        public override int GetHashCode()
        {
            int hashcode = 157;

            unchecked {
                hashcode = (hashcode * 397) + Term.GetHashCode();
                hashcode = (hashcode * 397) + LastLogTerm.GetHashCode();
                hashcode = (hashcode * 397) + LastLogIndex.GetHashCode();
                hashcode = (hashcode * 397) + Elector.GetHashCode();
                if (__isset.header)
                {
                    hashcode = (hashcode * 397) + Header.GetHashCode();
                }
                if (__isset.dataLogLastIndex)
                {
                    hashcode = (hashcode * 397) + DataLogLastIndex.GetHashCode();
                }
                if (__isset.dataLogLastTerm)
                {
                    hashcode = (hashcode * 397) + DataLogLastTerm.GetHashCode();
                }
            }
            return(hashcode);
        }
 public void Post([FromBody] Elector elector)
 {
     _electorRepository.RegisterElector(elector);
 }
        public async Task WriteAsync(TProtocol oprot, CancellationToken cancellationToken)
        {
            oprot.IncrementRecursionDepth();
            try
            {
                var struc = new TStruct("ElectionRequest");
                await oprot.WriteStructBeginAsync(struc, cancellationToken);

                var field = new TField();
                field.Name = "term";
                field.Type = TType.I64;
                field.ID   = 1;
                await oprot.WriteFieldBeginAsync(field, cancellationToken);

                await oprot.WriteI64Async(Term, cancellationToken);

                await oprot.WriteFieldEndAsync(cancellationToken);

                field.Name = "lastLogTerm";
                field.Type = TType.I64;
                field.ID   = 2;
                await oprot.WriteFieldBeginAsync(field, cancellationToken);

                await oprot.WriteI64Async(LastLogTerm, cancellationToken);

                await oprot.WriteFieldEndAsync(cancellationToken);

                field.Name = "lastLogIndex";
                field.Type = TType.I64;
                field.ID   = 3;
                await oprot.WriteFieldBeginAsync(field, cancellationToken);

                await oprot.WriteI64Async(LastLogIndex, cancellationToken);

                await oprot.WriteFieldEndAsync(cancellationToken);

                field.Name = "elector";
                field.Type = TType.Struct;
                field.ID   = 4;
                await oprot.WriteFieldBeginAsync(field, cancellationToken);

                await Elector.WriteAsync(oprot, cancellationToken);

                await oprot.WriteFieldEndAsync(cancellationToken);

                if (Header != null && __isset.header)
                {
                    field.Name = "header";
                    field.Type = TType.Struct;
                    field.ID   = 5;
                    await oprot.WriteFieldBeginAsync(field, cancellationToken);

                    await Header.WriteAsync(oprot, cancellationToken);

                    await oprot.WriteFieldEndAsync(cancellationToken);
                }
                if (__isset.dataLogLastIndex)
                {
                    field.Name = "dataLogLastIndex";
                    field.Type = TType.I64;
                    field.ID   = 6;
                    await oprot.WriteFieldBeginAsync(field, cancellationToken);

                    await oprot.WriteI64Async(DataLogLastIndex, cancellationToken);

                    await oprot.WriteFieldEndAsync(cancellationToken);
                }
                if (__isset.dataLogLastTerm)
                {
                    field.Name = "dataLogLastTerm";
                    field.Type = TType.I64;
                    field.ID   = 7;
                    await oprot.WriteFieldBeginAsync(field, cancellationToken);

                    await oprot.WriteI64Async(DataLogLastTerm, cancellationToken);

                    await oprot.WriteFieldEndAsync(cancellationToken);
                }
                await oprot.WriteFieldStopAsync(cancellationToken);

                await oprot.WriteStructEndAsync(cancellationToken);
            }
            finally
            {
                oprot.DecrementRecursionDepth();
            }
        }