Beispiel #1
0
 public static DashboardVM ToVM(this IEnumerable <Permuta> permutas, FuncionarioOnline user)
 {
     return(new DashboardVM
     {
         Permutas = permutas.Take(10).ToListVM(user)
     });
 }
Beispiel #2
0
        public static PermutaIndexVM ToIndexView(this IEnumerable <Permuta> models, FuncionarioOnline user, PermutaListFilter filter = null)
        {
            var current   = models.SingleOrDefault(a => a.FuncionarioId == user.Id && !a.DtExclusao.HasValue);
            var pagedList = models.Where(a => a.Funcionario.CargoId == user.CargoId).ToPagedList(user, filter);

            return(new PermutaIndexVM
            {
                Permuta = current.ToGetVM(),
                Permutas = pagedList
            });
        }
Beispiel #3
0
        public static PermutaGetVM ToGetVM(this Permuta model, FuncionarioOnline user = null)
        {
            var vm = model.ConvertTo <PermutaGetVM>();

            if (model != null)
            {
                vm.FuncionarioNome     = model.Funcionario.Nome;
                vm.FuncionarioEmail    = model.Funcionario.Usuario.Email;
                vm.FuncionarioTelefone = model.Funcionario.Telefone;
                vm.FuncionarioCelular  = model.Funcionario.Celular;

                vm.Unidade = model.Funcionario.UnidadeTrabalho.ToGetVM(user);

                vm.Regioes      = model.Regioes.Select(a => a.RegiaoUnidade.Regiao);
                vm.TiposUnidade = model.TiposUnidade.Select(a => a.TipoUnidade.Descricao);

                vm.Avaliacoes = model.Funcionario.UnidadeTrabalho.Avaliacoes.ToListVM();
            }

            return(vm);
        }
Beispiel #4
0
 public static VagaRemocaoVM ToVM(this IQueryable <VagaRemocao> singleModel, FuncionarioOnline user)
 {
     return(singleModel.Select(a => new VagaRemocaoVM
     {
         CargoId = a.CargoId,
         DificilAcesso = a.Unidade.DificilAcesso,
         Endereco = a.Unidade.Endereco.EnderecoCompleto,
         UnidadeId = a.UnidadeId,
         Id = a.Id,
         Unidade = a.Unidade.Nome,
         Distancia =
             (
                 SqlFunctions.Acos(
                     SqlFunctions.Sin(SqlFunctions.Radians(a.Unidade.Endereco.Latitude)) * SqlFunctions.Sin(SqlFunctions.Radians(user.Latitude))
                     +
                     SqlFunctions.Cos(SqlFunctions.Radians(a.Unidade.Endereco.Latitude)) * SqlFunctions.Cos(SqlFunctions.Radians(user.Latitude))
                     *
                     SqlFunctions.Cos(SqlFunctions.Radians(a.Unidade.Endereco.Longitude) - SqlFunctions.Radians(user.Longitude))
                     ) * 6378
             )
     }).Single());
 }
        public static UnidadeGetVM ToGetVM(this Unidade model, FuncionarioOnline user = null)
        {
            var vm = model.ConvertTo <UnidadeGetVM>();

            vm.Endereco      = model.Endereco.EnderecoCompleto;
            vm.Latitude      = model.Endereco.Latitude;
            vm.Longitude     = model.Endereco.Longitude;
            vm.Tipo          = model.TipoUnidade.Tipo;
            vm.TipoDescricao = model.TipoUnidade.Descricao;

            if (model.Endereco.Latitude.HasValue && model.Endereco.Longitude.HasValue &&
                user != null && user.Latitude.HasValue && user.Longitude.HasValue)
            {
                vm.Distancia = Math.Acos(
                    Math.Sin(model.Endereco.Latitude.Value.ToRadians()) * Math.Sin(user.Latitude.Value.ToRadians())
                    + Math.Cos(model.Endereco.Latitude.Value.ToRadians()) * Math.Cos(user.Latitude.Value.ToRadians())
                    * Math.Cos(model.Endereco.Longitude.Value.ToRadians() - user.Longitude.Value.ToRadians())
                    ) * 6378;
            }

            return(vm);
        }
Beispiel #6
0
 public static async Task <List <VagaRemocaoVM> > ToListAsync(this IQueryable <VagaRemocao> models, FuncionarioOnline user, RemocaoListFilter filter = null)
 {
     return(await models.ToList(user, filter).ToListAsync());
 }
Beispiel #7
0
        public static IQueryable <VagaRemocaoVM> ToList(this IQueryable <VagaRemocao> models, FuncionarioOnline user, RemocaoListFilter filter = null)
        {
            if (filter != null && filter.Tipos != null && filter.Tipos.Any())
            {
                models = models.Where(a => filter.Tipos.Contains(a.Unidade.TipoUnidadeId));
            }
            var vms = models.Where(a => a.CargoId == user.CargoId && a.Data.Year == DateTime.Now.Year).ToVagaRemocaoVM(user);

            if (filter != null)
            {
                if (filter.DificilAcessos != null && filter.DificilAcessos.Any(a => a.HasValue))
                {
                    if (filter.DificilAcessos.Contains(0))
                    {
                        vms = vms.Where(a => !a.DificilAcesso.HasValue || filter.DificilAcessos.Contains(a.DificilAcesso.Value));
                    }
                    else
                    {
                        vms = vms.Where(a => filter.DificilAcessos.Contains(a.DificilAcesso.Value));
                    }
                }

                if (filter.Distancia.HasValue)
                {
                    vms = vms.Where(a => a.Distancia <= filter.Distancia);
                }
            }

            return(vms.OrderBy(filter?.Ordenacao ?? "Distancia").Take(filter?.Linhas ?? 10));
        }
Beispiel #8
0
 public static async Task <List <VagaRemocaoVM> > ToListAsync(this IQueryable <Remocao> models, FuncionarioOnline user)
 {
     return(await models.OrderBy(a => a.Preferencia).Select(a => a.VagaRemocao).ToVagaRemocaoVM(user).ToListAsync());
 }
        public static IPagedList ToPagedList(this IEnumerable <Unidade> models, UnidadeListFilter filter = null, FuncionarioOnline user = null)
        {
            if (user == null)
            {
                return(models.ToListVM(filter, user)
                       .OrderByDescending(a => a.DificilAcesso)
                       .ToPagedList(filter?.Page ?? 1, 10));
            }

            return(models.ToListVM(filter, user)
                   .OrderBy(a => a.Distancia)
                   .ToPagedList(filter?.Page ?? 1, 10));
        }
        public static IEnumerable <UnidadeListVM> ToListVM(this IEnumerable <Unidade> models, UnidadeListFilter filter = null, FuncionarioOnline user = null)
        {
            if (filter != null)
            {
                if (filter.Tipos.Any())
                {
                    models = models.Where(a => filter.Tipos.Any(b => b == a.TipoUnidadeId));
                }

                if (!string.IsNullOrWhiteSpace(filter.Filtro))
                {
                    models = models.Where(a => a.Nome.ToUpper().Contains(filter.Filtro.ToUpper()));
                }

                if (filter.Distancia.HasValue && user?.Latitude != null)
                {
                    models = models
                             .Where(model =>
                                    (
                                        Math.Acos(
                                            Math.Sin(model.Endereco.Latitude.Value.ToRadians()) * Math.Sin(user.Latitude.Value.ToRadians())
                                            + Math.Cos(model.Endereco.Latitude.Value.ToRadians()) * Math.Cos(user.Latitude.Value.ToRadians())
                                            * Math.Cos(model.Endereco.Longitude.Value.ToRadians() - user.Longitude.Value.ToRadians())
                                            ) * 6378) < filter.Distancia);
                }
            }

            if (user != null)
            {
                return(models.Select(model => new UnidadeListVM
                {
                    Id = model.Id,
                    Nome = model.Nome,
                    Tipo = model.TipoUnidade.Tipo,
                    Endereco = model.Endereco.EnderecoCompleto,
                    DificilAcesso = model.DificilAcesso,
                    Distancia =
                        (
                            Math.Acos(
                                Math.Sin(model.Endereco.Latitude.Value.ToRadians()) * Math.Sin(user.Latitude.Value.ToRadians())
                                + Math.Cos(model.Endereco.Latitude.Value.ToRadians()) * Math.Cos(user.Latitude.Value.ToRadians())
                                * Math.Cos(model.Endereco.Longitude.Value.ToRadians() - user.Longitude.Value.ToRadians())
                                ) * 6378
                        )
                }));
            }

            return(models.Select(a => new UnidadeListVM
            {
                Id = a.Id,
                Nome = a.Nome,
                Tipo = a.TipoUnidade.Tipo,
                Endereco = a.Endereco.EnderecoCompleto,
                DificilAcesso = a.DificilAcesso
            }));
        }
Beispiel #11
0
 public static IPagedList <PermutaListVM> ToPagedList(this IEnumerable <Permuta> models, FuncionarioOnline user, PermutaListFilter filter = null)
 {
     return(models.ToListVM(user, filter)
            .OrderByDescending(a => a.DtPublicacao)
            .ToPagedList(filter?.Page ?? 1, 10));
 }
Beispiel #12
0
        public static IEnumerable <PermutaListVM> ToListVM(this IEnumerable <Permuta> models, FuncionarioOnline user, PermutaListFilter filter = null)
        {
            if (filter != null)
            {
                if (filter.Tipos.Any())
                {
                    models = models.Where(a => filter.Tipos.Any(b => b == a.Funcionario.UnidadeTrabalho.TipoUnidadeId));
                }

                if (filter.Regioes.Any())
                {
                    models = models.Where(a => filter.Regioes.Any(b => b == a.Funcionario.UnidadeTrabalho.RegiaoUnidadeId));
                }
            }

            return(models.Where(a => !a.DtExclusao.HasValue &&
                                a.TiposUnidade.Any(b => b.TipoUnidadeId == user.TipoUnidadeId) &&
                                a.Regioes.Any(b => b.RegiaoUnidadeId == user.RegiaoUnidadeId))
                   .Select(model => new PermutaListVM
            {
                Id = model.Id,
                ObservacaoFuncionario = model.ObservacaoFuncionario,
                ObservacaoPermuta = model.ObservacaoPermuta,
                DtPublicacao = model.DtPublicacao,
                Regiao = model.Funcionario.UnidadeTrabalho.RegiaoUnidade.Regiao,
                Unidade = model.Funcionario.UnidadeTrabalho.Nome
            }).ToList());
        }