public async Task <IEnumerable <Publicacion> > getData(DataServerSide ss) { List <Publicacion> ListPublicacion = new List <Publicacion>(); try { var v = (from a in _ctx.Publicacion.Where(e => e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) .Include(e => e.Revista) .Include(e => e.Ambito) .Include(e => e.NivelPublicacion) .Include(e => e.EstadoPublicacion) .OrderByDescending(e => e.FechaPublicacion) select a); ss.recordsTotal = v.Count(); if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo { var listaDA = await GetDALikeTituloNuevo(ss.Titulo); v = v.Where(e => listaDA.Contains(e.PublicacionId)); } if (!String.IsNullOrEmpty(ss.porContenido)) { v = v.Where(e => e.RevistaId.ToString().Equals(ss.porContenido)); } if (!string.IsNullOrEmpty(ss.Autor)) //Autor externo { var AutoresE = await GetPKAutorExternoByCollateLatin1(ss.Autor); v = v.Where(e => AutoresE.Contains(e.PublicacionId)); } if (!string.IsNullOrEmpty(ss.Becario)) //Tomado como autor interno { var entiti = await _ctx.AutorIIEPublicacion .Where(e => e.ClavePersona.ToString().Contains(ss.Becario) && (e.Publicacion.EstadoFlujoId == 3 || e.Publicacion.EstadoFlujoId == 11 || e.Publicacion.EstadoFlujoId == 12 || e.Publicacion.EstadoFlujoId == 13)) .Include(e => e.Publicacion) .AsNoTracking().ToListAsync(); if (entiti.Count == 0) { var reg = new AutorIIEPublicacion(); reg.PublicacionId = -1; v = v.Where(e => e.PublicacionId == reg.PublicacionId && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) ); } else { HashSet <String> claves = null; var registros = entiti.Select(x => x.PublicacionId.ToString()).ToList(); claves = new HashSet <String>(registros); v = v.Where(e => claves.Contains(e.PublicacionId.ToString()) && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) ); } } if (!string.IsNullOrEmpty(ss.searchValue)) { var p = ss.searchValue.ToLower(); var listaDA = await GetDALikeTituloNuevo(ss.searchValue); var listaDR = await GetDALikeRevista(ss.searchValue); v = v.Where(e => listaDA.Contains(e.PublicacionId) || listaDR.Contains(e.RevistaId) || e.FechaPublicacion.ToString().Contains(p)); } if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir))) { v = v.OrderBy(ss.sortColumn + " " + ss.sortColumnDir); } ss.recordsFiltered = v.Count(); entities = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync(); return(entities.OrderByDescending(e => e.FechaPublicacion)); } catch (Exception e) { throw new Exception(e.Message, e); } }
[Authorize] public async Task <IHttpActionResult> Create(AutorIIEPublicacion Obj) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var result = await _repository.Create(Obj); return(Ok(result)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <AutorIIEPublicacion> Create(AutorIIEPublicacion Obj) { try { var result = _ctx.AutorIIEPublicacion.Add(Obj); await _ctx.SaveChangesAsync(); return(result); } catch (Exception e) { throw new Exception(e.Message, e); } }