public static DashboardVM ToVM(this IEnumerable <Permuta> permutas, FuncionarioOnline user) { return(new DashboardVM { Permutas = permutas.Take(10).ToListVM(user) }); }
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 }); }
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); }
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); }
public static async Task <List <VagaRemocaoVM> > ToListAsync(this IQueryable <VagaRemocao> models, FuncionarioOnline user, RemocaoListFilter filter = null) { return(await models.ToList(user, filter).ToListAsync()); }
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)); }
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 })); }
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)); }
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()); }