public async Task <AutorIIEPonencia> Create(AutorIIEPonencia Obj) { try { var result = _ctx.AutorIIEPonencia.Add(Obj); await _ctx.SaveChangesAsync(); return(result); } catch (Exception e) { throw new Exception(e.Message, e); } }
[Authorize] public async Task <IHttpActionResult> Create(AutorIIEPonencia 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 <IEnumerable <Ponencia> > getData(DataServerSide ss) { List <Ponencia> ListCursoInterno = new List <Ponencia>(); try { var v = (from a in _ctx.Ponencia.Where(e => e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) .Include(e => e.EstadoFlujo) .Include(e => e.congreso) .Include(e => e.Ambito) .Include(e => e.NivelPublicacion) .Include(e => e.EstadoPonencia) .Include(e => e.Pais) select a); ss.recordsTotal = v.Count(); if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo { var listaDA = await GetDALikeTituloPonenciaNuevo(ss.Titulo); v = v.Where(e => listaDA.Contains(e.PonenciaId)); } //Lugar del congreso if (!string.IsNullOrEmpty(ss.Tipo)) { v = v.Where(e => e.PaisID.ToString().Equals(ss.Tipo) && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) ); } if (!String.IsNullOrEmpty(ss.Autor)) //busqueda por titulo { var listaDA = await GetPKAutorExternoByCollateLatin1(ss.Autor); v = v.Where(e => listaDA.Contains(e.PonenciaId) && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)); } if (!string.IsNullOrEmpty(ss.Becario)) //Tomado como autor interno { var entiti = await _ctx.AutorIIEPonencia .Where(e => e.ClavePersona.ToString().Contains(ss.Becario) && (e.Ponencia.EstadoFlujoId == 3 || e.Ponencia.EstadoFlujoId == 11 || e.Ponencia.EstadoFlujoId == 12 || e.Ponencia.EstadoFlujoId == 13)) .Include(e => e.Ponencia) .AsNoTracking().ToListAsync(); if (entiti.Count == 0) { var reg = new AutorIIEPonencia(); reg.PonenciaId = -1; v = v.Where(e => e.PonenciaId == reg.PonenciaId && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) ); } else { HashSet <String> claves = null; var registros = entiti.Select(x => x.PonenciaId.ToString()).ToList(); claves = new HashSet <String>(registros); v = v.Where(e => claves.Contains(e.PonenciaId.ToString()) && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) ); } } //caja if (!string.IsNullOrEmpty(ss.searchValue)) { //var pal = ss.searchValue.Split(' '); //foreach (var pa in pal) //{ var listaDA = await GetDALikeTituloPonenciaNuevo(ss.searchValue); var listaPais = await GetDALikePaises(ss.searchValue); var listaCongresos = await GetDALikeCongresos(ss.searchValue); var p = ss.searchValue.ToLower(); v = v.Where(e => listaDA.Contains(e.PonenciaId) || e.FechaInicio.ToString().Contains(p) || listaCongresos.Contains(e.CongresoId) || listaPais.Contains(e.PaisID) ); //} } if (!string.IsNullOrEmpty(ss.NuevaFechaInicio) || !string.IsNullOrEmpty(ss.NuevaFechaTermino)) { //var listaDA = await GetPorfecha(ss.NuevaFechaInicio, ss.NuevaFechaTermino); //v = v.Where(e => listaDA.Contains(e.PonenciaId)); var fechaInicio = Convert.ToDateTime(ss.NuevaFechaInicio); var fechaFin = Convert.ToDateTime(ss.NuevaFechaTermino); v = v.Where(e => (DbFunctions.TruncateTime(e.FechaInicio) >= DbFunctions.TruncateTime(fechaInicio) && DbFunctions.TruncateTime(e.FechaInicio) <= DbFunctions.TruncateTime(fechaFin))); } //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(); entities = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync(); return(entities.OrderByDescending(e => e.FechaInicio)); } catch (Exception e) { throw new Exception(e.Message, e); } }