public async Task <IHttpActionResult> GetNameById(string Id) { try { log.Info(new MDCSet(this.ControllerContext.RouteData), new InfoException(Id)); var campo = await _repository.GetNameById(Id); return(Ok(campo)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IEnumerable <SoftwarePersonal> > getData(DataServerSide ss) { UORepository uo = new UORepository(); try { var v = (from a in _db.dbSetSoftwarePersonal .Include(x => x.Proyecto) .Include(x => x.TipoSoftware) .Include(x => x.Autores) .Include(x => x.DerechosAutor) .Where(x => x.EstadoFlujoId == 3) select a); ss.recordsTotal = v.Count(); if (!string.IsNullOrEmpty(ss.ClaveUnidad)) { //var uni = await uo.GetByIdWithChildren(ss.ClaveUnidad); //HashSet<String> clavesUnidad = null; //if (uni.tipoO < 3) //{ // var unidades = uni.Children.Select(x => x.ClaveUnidad).ToList(); // clavesUnidad = new HashSet<String>(unidades); //} //else //{ // clavesUnidad = new HashSet<String>(); // clavesUnidad.Add(ss.ClaveUnidad); //} v = v.Where(x => x.GerenciaClave == ss.ClaveUnidad); //v = v.Where(e => clavesUnidad.Contains(e.Proyecto.UnidadOrganizacionalId)); } if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo { var listaDA = await GetPKTitulo(ss.Titulo); v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId)); } if (!String.IsNullOrEmpty(ss.proyectoId)) { var listaDA = await GetDALikeProyecto(ss.proyectoId); v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId)); } //if (!String.IsNullOrEmpty(ss.DerechoAutor)) //{ // var listaDA = await GetPKDerechoAutor(ss.DerechoAutor); // v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId)); //} if (ss.DerechosAutorId != null) { v = v.Where(x => x.DerechosAutorId == ss.DerechosAutorId); } if (!String.IsNullOrEmpty(ss.Tipo)) { v = v.Where(e => e.TipoSoftwareId.ToString().Equals(ss.Tipo)); } if (!String.IsNullOrEmpty(ss.Autor)) { var listaDA = await GetPKAutor(ss.Autor); v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId)); } if (!String.IsNullOrEmpty(ss.searchValue)) { PersonasRepository rp = new PersonasRepository(); var clavesPer = await rp.GetAllClavesByLikeNombreLatin1(ss.searchValue); //var autor= await var softwares = await _db.dbSetAutorSoftware.AsNoTracking() .Where(x => clavesPer.Contains(x.ClaveAutor)) .Select(x => x.SoftwarePersonalId) .ToListAsync(); var listaUnidades = await uo.GetPorNombreUnidad(ss.searchValue); var titulo = await GetPKTitulo(ss.searchValue); var tipoSoftware = await GetPKTipoSoftware(ss.searchValue); var proyecto = await GetProyectos(ss.searchValue); var proyecto2 = await GetProyectos2(ss.searchValue); var listaDA = await GetDerechosAutorByCollate(ss.searchValue); //var listaAutor = await GetProyectos(ss.searchValue); v = v.Where(e => titulo.Contains(e.SoftwarePersonalId) || listaDA.Contains(e.DerechosAutorId) || softwares.Contains(e.SoftwarePersonalId) || listaUnidades.Contains(e.GerenciaClave) || proyecto.Contains(e.ProyectoId) || proyecto2.Contains(e.ProyectoId) || tipoSoftware.Contains(e.TipoSoftwareId) ); } //sort if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir))) { //for make sort simpler we will add Syste.Linq.Dynamic reference v = v.OrderBy(ss.sortColumn + " " + ss.sortColumnDir); } ss.recordsFiltered = v.Count(); var entities = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync(); if (entities != null && entities.Count > 0) { AutorSoftwareRepository aut = new AutorSoftwareRepository(_db); var listaSW = entities.Select(x => x.SoftwarePersonalId).ToList(); var clavesAutores = await aut.GetClavesAutorBySoftwarsIdCollection(listaSW); HashSet <String> clavesEmpleado = new HashSet <string>(clavesAutores); PersonasRepository p = new PersonasRepository(); var personas = await p.GetAllCollectionMAXTodos(clavesEmpleado); List <Personas> pers = personas.ToList(); //var unidadesOrgs = (await uo.GetAllCollectionMAX(entities.Where(x => x.Proyecto != null).Select(x => x.Proyecto.UnidadOrganizacionalId).ToList())).ToList(); foreach (var e in entities) { foreach (var a in e.Autores) { try { string cad = a.ClaveAutor.Trim(); a.ClaveAutor = a.ClaveAutor.Trim(); a.NombreCompleto = pers.Find(x => x.ClavePersona == cad).NombreCompleto; } catch (Exception ex) { } } if (e.GerenciaClave != null) { e.NombreUnidadOrganizacional = await uo.GetNameById(e.GerenciaClave); } } } return(entities); } catch (Exception e) { throw new Exception(e.Message, e); } }