예제 #1
0
        public async Task <TransactionResult <IEnumerable <Voter> > > Get(VoterRequest request)
        {
            var result = new TransactionResult <IEnumerable <Voter> >();

            if (request != null)
            {
                try
                {
                    var voters = await((IVoterDao)baseDao).Get(request);
                    result.IsSuccess = true;
                    if (voters != null)
                    {
                        result.Data = voters;
                    }
                    else
                    {
                        result.Data    = new List <Voter>();
                        result.Message = "No data to display.";
                    }
                }
                catch (Exception ex)
                {
                    result.IsSuccess = false;
                    result.Errors.Add(ex.Message);
                }
            }
            else
            {
                result.IsSuccess = false;
                result.Errors.Add("request is invalid.");
            }

            return(result);
        }
        public Voter Vote(VoterRequest voterRequest)
        {
            var       voterData = this.dBContext.voters.FirstOrDefault(linq => linq.UniqueVoterId == voterRequest.UniqueVoterId);
            Candidate candidate = this.dBContext.candidates.FirstOrDefault(linq => linq.CandidateId == voterRequest.CandidateId);

            if (voterData != null)
            {
                return(null);
            }
            else
            {
                Voter voter = new Voter()
                {
                    CandidateId        = voterRequest.CandidateId,
                    VoterFirstName     = voterRequest.VoterFirstName,
                    VoterLastName      = voterRequest.VoterLastName,
                    UniqueVoterId      = voterRequest.UniqueVoterId,
                    VoterContactNUmber = voterRequest.VoterContactNUmber
                };
                this.dBContext.voters.Add(voter);
                this.dBContext.SaveChanges();
                candidate.Votes = candidate.Votes + 1;
                this.dBContext.SaveChanges();
                return(voter);
            }
        }
예제 #3
0
        public IActionResult Vote([FromBody] VoterRequest voterRequest)
        {
            try
            {
                string message;
                bool   status;
                var    voted = this.dBContext.voters.FirstOrDefault(linq => linq.UniqueVoterId == voterRequest.UniqueVoterId);
                if (voted != null)
                {
                    status  = false;
                    message = "Vote already casted";
                    return(this.BadRequest(new { status, message }));
                }


                var data = this.voterBusiness.Vote(voterRequest);
                if (data != null)
                {
                    status  = true;
                    message = "vote registered successfully";
                    return(this.Ok(new { status, message, data }));
                }


                status  = false;
                message = "invalid voter";
                return(this.BadRequest(new { status, message }));
            }
            catch (Exception e)
            {
                return(this.BadRequest(e.Message));
            }
        }
예제 #4
0
 public Voter Vote(VoterRequest voterRequest)
 {
     if (voterRequest != null)
     {
         return(this.voterRepository.Vote(voterRequest));
     }
     return(null);
 }
예제 #5
0
        public async Task <IEnumerable <Voter> > Get(VoterRequest request)
        {
            #region Select Query
            string sql = @"
                           IF(@PrecinctId <=0)
                            SET @PrecinctId = NULL
                                
                           IF(@AccountId <=0)
                            SET @AccountId = NULL
                           
                           IF(@BirthDateFrom <=0)
                            SET @BirthDateFrom = NULL
                            
                           IF(@BirthDateTo <=0)
                            SET @BirthDateTo = NULL
                           
                           SELECT
                                v.[Id]
                               ,p.[Name] PrecinctName
                               ,v.[FirstName]
                               ,v.[MiddleName]
                               ,v.[LastName]
                               ,v.[Race]
                               ,v.[OrigVoter]
                               ,v.[Suffix]
                               ,v.[BirthDate]
                               ,v.[RegisterDate]
                               ,v.[Gender]
                               ,v.[StreetNumber]
                               ,v.[Predirectional]
                               ,v.[StreetName]
                               ,v.[StreetType]
                               ,v.[RESEXT]
                               ,v.[Address2]
                               ,v.[City]
                               ,v.[State]
                               ,v.[Zip]
                               ,v.[PermAvind]
                               ,v.[MailAddress]
                               ,v.[MailAddress2]
                               ,v.[StateSenateCo]
                               ,v.[StateHouseCo]
                               ,v.[USCongress]
                               ,v.[CountyCode]
                               ,v.[SuffDirection]
                           FROM 
                               [dbo].[Voter] v
                             INNER JOIN 
                               [dbo].[Precinct] p ON v.PrecinctId = p.Id
                             LEFT JOIN
                               [dbo].[AccountVoters] av ON av.VoterId = v.Id
                             LEFT JOIN
                            [dbo].[Account] a ON a.AccountId = av.AccountId
                           
                             WHERE
                                  ((av.AccountId = @AccountId AND a.IsActive = 1) OR @AccountId IS NULL) AND
                                  (v.PrecinctId = @PrecinctId OR @PrecinctId IS NULL) AND
                                  ((v.LastName LIKE @LastName + '%' OR NULLIF(@LastName,'') IS NULL) OR
                                  (v.FirstName LIKE @FirstName + '%' OR NULLIF(@FirstName,'') IS NULL) OR
                                  (v.City LIKE @City + '%' OR NULLIF(@City,'') IS NULL) OR
                                  (v.State LIKE @State + '%' OR NULLIF(@State,'') IS NULL) OR
                                  (v.Zip LIKE @zipCode + '%' OR NULLIF(@zipCode,'') IS NULL) OR
                                  (v.CountyCode = @CountyCode OR NULLIF(@CountyCode,'') IS NULL) OR
                                  (v.StreetName LIKE @StreetName + '%' OR NULLIF(@StreetName,'') IS NULL) OR
                                  (v.StreetNumber LIKE @StreetNumber + '%' OR NULLIF(@StreetNumber,'') IS NULL)) AND
                                  (v.Gender = @Gender OR NULLIF(@Gender,'') IS NULL) AND
                                  (v.BirthDate >= @BirthDateFrom OR @BirthDateFrom IS NULL) AND
                                  (v.BirthDate <= @BirthDateTo OR @BirthDateTo IS NULL) AND
                                  (v.RegisterDate >= @RegisterDateFrom OR @RegisterDateFrom IS NULL) AND
                                  (v.RegisterDate <= @RegisterDateTo OR @RegisterDateTo IS NULL)"    ;
            #endregion

            using (var conn = new SqlConnection(this.ConnectionString))
            {
                await conn.OpenAsync();

                var results = await conn.QueryAsync <Voter>(sql,
                                                            new
                {
                    AccountId        = request.AccountId,
                    City             = request.City,
                    FirstName        = request.FirstName,
                    LastName         = request.LastName,
                    PrecinctId       = request.PrecinctId,
                    State            = request.State,
                    ZipCode          = request.ZipCode,
                    BirthDateFrom    = request.BirthDateFrom,
                    BirthDateTo      = request.BirthDateTo,
                    CountyCode       = request.CountyCode,
                    Gender           = request.Gender,
                    RegisterDateFrom = request.RegisterDateFrom,
                    RegisterDateTo   = request.RegisterDateTo,
                    StreetNumber     = request.StreetNumber,
                    StreetName       = request.StreetName
                });

                return(results);
            }
        }
예제 #6
0
 public async Task <TransactionResult <IEnumerable <Voter> > > Post([FromBody] VoterRequest request)
 {
     return(await this.voterManager.Get(request));
 }