Exemplo n.º 1
0
        public async Task <IEnumerable <IEmployee> > GetAllAsync(IEmployeeParameters parameters)
        {
            GenericParameters = Mapper.Map <IGenericRepositoryParameters <EmployeeEntity> >(parameters);
            if (GenericParameters.Paged)
            {
                switch (GenericParameters.SortOrder)
                {
                case "Name":
                    GenericParameters.OrderBy = source => source.OrderBy(e => e.Name);
                    break;

                case "name_desc":
                    GenericParameters.OrderBy = source => source.OrderByDescending(e => e.Name);
                    break;

                default:
                    GenericParameters.OrderBy = source => source.OrderBy(e => e.ID);
                    break;
                }
                GenericParameters.Skip = (GenericParameters.PageNumber - 1) * GenericParameters.PageSize;
                GenericParameters.Take = GenericParameters.PageSize;
            }

            if (!String.IsNullOrEmpty(parameters.SearchString))
            {
                GenericParameters.Filter = e => e.Name.Contains(GenericParameters.SearchString);
            }
            var employeeList = (Mapper.Map <List <IEmployee> >(await Repository.GetAllAsync(GenericParameters)));

            return(employeeList);
        }