public override async Task <IEnumerable <Candidate> > GetByFilterAsync(BaseEntityFilter filter, ISorter <Candidate> sorter = null)
        {
            return(await databaseExecuterService.RunStoredProcedureAsync(GetByFilterProc, (reader) =>
            {
                var filteredList = new List <Candidate>();

                do
                {
                    if (reader.HasRows)
                    {
                        var entity = new CandidateRegister();

                        entity.ParseData(reader);

                        filteredList.Add(entity);
                    }

                    if (sorter != null)
                    {
                        filteredList = new List <Candidate>(sorter.Sort(filteredList));
                    }
                } while (reader.Reader.Read()); //we activate the read after as the first one is done in the base DB class
                return filteredList;
            }, GetEntityProperties(filter)));
        }