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)); }
                                                              }
Пример #3
0
                                                    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);
                                                        }
                                                    }