public async Task <GenericPager <StateDto> > GetAllStates(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <StateDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;

            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await
                                      (
                    from s in _context.States
                    join c in _context.Countries
                    on s.CountryId equals c.Id
                    select new StateDto
                {
                    StateName   = s.StateName,
                    StateId     = s.Id,
                    CountryId   = c.Id,
                    CountryName = c.CountryName
                })
                                      .Skip((page - 1) * recordsByPage)
                                      .Take(recordsByPage)
                                      .ToListAsync();

                information.TotalRecords = _context.States.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await
                                      (
                    from s in _context.States
                    join c in _context.Countries
                    on s.CountryId equals c.Id
                    where s.StateName.Contains(filterBy)
                    select new StateDto
                {
                    StateName   = s.StateName,
                    StateId     = s.Id,
                    CountryId   = c.Id,
                    CountryName = c.CountryName
                })
                                      .ToListAsync();

                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }

            return(information);
        }
        public async Task <GenericPager <PoliticalPartyDto> > GetAllPoliticalParties(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <PoliticalPartyDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;


            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await _context.PoliticalParties
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Select(p => new PoliticalPartyDto
                {
                    Abreviation        = p.Abreviation,
                    Id                 = p.Id,
                    PoliticalPartyName = p.PoliticalPartyName,
                    ImageUrl           = p.ImageUrl
                })
                                      .ToListAsync();

                information.TotalRecords = _context.PoliticalParties.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await _context.PoliticalParties
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Where(u => u.Abreviation.Contains(filterBy) ||
                                             u.PoliticalPartyName.Contains(filterBy))
                                      .Select(p => new PoliticalPartyDto
                {
                    Abreviation        = p.Abreviation,
                    Id                 = p.Id,
                    PoliticalPartyName = p.PoliticalPartyName,
                    ImageUrl           = p.ImageUrl
                })
                                      .ToListAsync();

                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }

            return(information);
        }
Пример #3
0
        public async Task <GenericPager <OptionDto> > GetAllOptions(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <OptionDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;


            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await _context.Options
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Select(o => new OptionDto
                {
                    OptionDescription = o.OptionDescription,
                    OptionName        = o.OptionName,
                    Id = o.Id
                })
                                      .ToListAsync();

                information.TotalRecords = _context.Options.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await _context.Options
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Where(o => (o.OptionName.Contains(filterBy) ||
                                                   o.OptionDescription.Contains(filterBy)))
                                      .Select(o => new OptionDto
                {
                    OptionDescription = o.OptionDescription,
                    OptionName        = o.OptionName,
                    Id = o.Id
                })
                                      .ToListAsync();

                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }

            return(information);
        }
Пример #4
0
        public async Task <GenericPager <CandidateDto> > GetAllCandidates(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <CandidateDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;


            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await
                                      (
                    from c in _context.Candidates
                    join p in _context.PoliticalParties
                    on c.PoliticalPartyId equals p.Id
                    where c.Status == true
                    select new CandidateDto
                {
                    FirstName          = c.FirstName,
                    Surname            = c.Surname,
                    LastName           = c.LastName,
                    MiddleName         = c.MiddleName,
                    PoliticalPartyId   = c.PoliticalPartyId,
                    PoliticalPartyName = p.PoliticalPartyName,
                    Id = c.Id,
                })
                                      .Skip((page - 1) * recordsByPage)
                                      .Take(recordsByPage)
                                      .ToListAsync();

                information.TotalRecords = _context.Candidates.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await
                                      (
                    from c in _context.Candidates
                    join p in _context.PoliticalParties
                    on c.PoliticalPartyId equals p.Id
                    where c.FirstName.Contains(filterBy) || c.LastName.Contains(filterBy) ||
                    c.MiddleName.Contains(filterBy) || c.Surname.Contains(filterBy) && c.Status == true
                    select new CandidateDto
                {
                    FirstName          = c.FirstName,
                    Surname            = c.Surname,
                    LastName           = c.LastName,
                    MiddleName         = c.MiddleName,
                    PoliticalPartyId   = c.PoliticalPartyId,
                    PoliticalPartyName = p.PoliticalPartyName,
                    Id = c.Id,
                })
                                      .ToListAsync();


                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }

            return(information);
        }
        public async Task <GenericPager <VotationDto> > GetAllVotation(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <VotationDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;


            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await(from v in _context.Votations
                                            join t in _context.VotationTypes
                                            on v.VotationTypeId equals t.Id
                                            join c in _context.Cities
                                            on v.CityId equals c.Id
                                            select new VotationDto
                {
                    Id = v.Id,
                    VotationDescription = v.VotationDescription,
                    VotationTypeId      = t.Id,
                    VotationTypeName    = t.VotationTypeName,
                    VotationEndDate     = v.VotationEndDate,
                    VotationStartDate   = v.VotationStartDate,
                    VotationStatus      = v.VotationStatus,
                    CityId   = c.Id,
                    CityName = c.CityName
                })
                                      .Skip((page - 1) * recordsByPage)
                                      .Take(recordsByPage)
                                      .ToListAsync();

                information.TotalRecords = _context.Votations.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await(from v in _context.Votations
                                            join t in _context.VotationTypes
                                            on v.VotationTypeId equals t.Id
                                            join c in _context.Cities
                                            on v.CityId equals c.Id
                                            where v.VotationDescription.Contains(filterBy)
                                            select new VotationDto
                {
                    Id = v.Id,
                    VotationDescription = v.VotationDescription,
                    VotationTypeId      = t.Id,
                    VotationTypeName    = t.VotationTypeName,
                    VotationEndDate     = v.VotationEndDate,
                    VotationStartDate   = v.VotationStartDate,
                    VotationStatus      = v.VotationStatus,
                    CityId   = c.Id,
                    CityName = c.CityName
                })
                                      .Skip((page - 1) * recordsByPage)
                                      .Take(recordsByPage)
                                      .ToListAsync();

                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            // para agregar los candidatos a cada votacion de la lista
            if (information.Results != null || information.Results.Count == 0)
            {
                for (int i = 0; i < information.Results.Count; i++)
                {
                    information.Results[i].Candidates = (from vd in _context.VotationDetail
                                                         join c in _context.Candidates
                                                         on vd.CandidateId equals c.Id
                                                         join p in _context.PoliticalParties
                                                         on c.PoliticalPartyId equals p.Id
                                                         where vd.VotationId == information.Results[i].Id
                                                         select new CandidateDto
                    {
                        FirstName = c.FirstName,
                        Surname = c.Surname,
                        LastName = c.LastName,
                        MiddleName = c.MiddleName,
                        PoliticalPartyId = c.PoliticalPartyId,
                        PoliticalPartyName = p.PoliticalPartyName,
                        Id = c.Id,
                        PoliticalPartyImageUrl = p.ImageUrl
                    }).ToList();
                }
            }


            return(information);
        }
        public async Task <GenericPager <UserDto> > GetAllUser(string filterBy, int page, int recordsByPage)
        {
            var information = new GenericPager <UserDto>();

            information.ActualPage    = page;
            information.RecordsByPage = recordsByPage;


            if (string.IsNullOrEmpty(filterBy))
            {
                information.Results = await _context.Users
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Where(u => u.Status == true)
                                      .Select(u => new UserDto
                {
                    Email          = u.Email,
                    Names          = u.Names,
                    Identification = u.Identification,
                    LastNames      = u.LastNames,
                    Status         = u.Status,
                    Id             = u.Id
                })
                                      .ToListAsync();

                information.TotalRecords = _context.Users.Count();
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }
            else
            {
                information.Results = await _context.Users
                                      .Skip((page - 1) *recordsByPage)
                                      .Take(recordsByPage)
                                      .Where(u => (u.Names.Contains(filterBy) ||
                                                   u.LastNames.Contains(filterBy) ||
                                                   u.Identification.Contains(filterBy)) &&
                                             u.Status == true)
                                      .Select(u => new UserDto
                {
                    Email          = u.Email,
                    Names          = u.Names,
                    Identification = u.Identification,
                    LastNames      = u.LastNames,
                    Status         = u.Status,
                    Id             = u.Id
                })
                                      .ToListAsync();

                information.TotalRecords = information.Results.Count();
                information.Results      = information.Results.Skip((page - 1) * recordsByPage).Take(recordsByPage).ToList(); // para la paginacion
                information.TotalPages   = information.TotalRecords != 0 ? (int)Math.Ceiling((double)information.TotalRecords / recordsByPage) : 0;

                information.Next     = page < information.TotalPages;
                information.Previous = page > 1;
            }

            return(information);
        }