public async Task <List <EventoDtoOutput> > GetEventiByidUtente(int pageNumber, int pageSize, string IdUtente = null, string IdCategoria = null) { //Ottengo la lista degli amici List <Guid> idAmici = await AmiciUtility.GetIdAmiciOfUser(new Guid(User.Identity.GetUserId())); //Ottengo gli eventi //List<Evento> eventi = await dbDataContext.Evento // .Include(x => x.ImmagineEvento) // .Where(x => (idAmici.Contains(x.IdUtenteCreazione) // & (IdUtente == null || x.IdUtenteCreazione.ToString() == IdUtente)) // & (IdCategoria == null || x.IdCategoriaEvento.ToString() == IdCategoria)) // .OrderBy(x => x.DataEvento) // //.Skip(pageSize * (pageNumber - 1)) // //.Take(pageSize) // .ToListAsync(); //return EventoMapper.EventoToEventoDtoList(eventi); //Ottengo gli eventi //List<Evento> eventi List <EventoDtoOutput> eventiDto = await dbDataContext.Evento .Join(dbDataContext.UserInfo, // the source table of the inner join evento => evento.IdUtenteCreazione, // Select the primary key (the first part of the "on" clause in an sql "join" statement) userInfo => userInfo.IdAspNetUser, // Select the foreign key (the second part of the "on" clause) (evento, userInfo) => new { Evento = evento, UserInfo = userInfo }) // selection .Where(eventoAndUserInfo => (idAmici.Contains(eventoAndUserInfo.Evento.IdUtenteCreazione) & (IdUtente == null || eventoAndUserInfo.Evento.IdUtenteCreazione.ToString() == IdUtente) & (IdCategoria == null || eventoAndUserInfo.Evento.IdCategoriaEvento.ToString() == IdCategoria) & (eventoAndUserInfo.Evento.DataEvento >= DateTime.Today)) //PER ORA SI VISUALIZZANO SOLO EVENTI FUTURI ) // where statement .Include(eventoAndUserInfo => eventoAndUserInfo.Evento.ImmagineEvento) .Include(eventoAndUserInfo => eventoAndUserInfo.Evento.EventoCategoria) //.OrderBy(eventoAndUserInfo => eventoAndUserInfo.Evento.DataEvento) .OrderByDescending(eventoAndUserInfo => eventoAndUserInfo.Evento.DataCreazione) .Skip(pageSize * (pageNumber - 1)) .Take(pageSize) .Select(join => new EventoDtoOutput() { Id = join.Evento.Id.ToString(), Cancellato = join.Evento.Cancellato, DataEvento = join.Evento.DataEvento, Descrizione = join.Evento.Descrizione, IdCategoriaEvento = join.Evento.IdCategoriaEvento, DataCreazione = join.Evento.DataCreazione, DataModifica = join.Evento.DataModifica, IdImmagineEvento = join.Evento.IdImmagineEvento.ToString(), Titolo = join.Evento.Titolo, ImmagineEvento = join.Evento.ImmagineEvento.Immagine, NomeUserCreatoreEvento = join.UserInfo.Nome, CognomeUserCreatoreEvento = join.UserInfo.Cognome, ImmagineUserCreatoreEvento = join.UserInfo.FotoProfilo, CodiceCategoriaEvento = join.Evento.EventoCategoria.Codice }) .ToListAsync(); //return EventoMapper.EventoToEventoDtoList(eventi); return(eventiDto); }
public async Task <List <UserInfoDto> > GetRichiesteAmiciziaOfCurrentUser() { Guid currentUserId = new Guid(User.Identity.GetUserId()); List <Guid> idRichieste = await AmiciUtility.GedIdRichiesteOfUser(currentUserId); List <UserInfo> utentiRichieste = await dbDataContext.UserInfo.Where(x => idRichieste.Contains(x.IdAspNetUser)).ToListAsync(); return(UserInfoMapper.UserInfoToUserInfoDtoList(utentiRichieste)); }
public async Task <List <UserInfoDto> > GetAmiciOfCurrentUser() { Guid currentUserId = new Guid(User.Identity.GetUserId()); List <Guid> idAmici = await AmiciUtility.GetIdAmiciOfUser(currentUserId); List <UserInfo> amici = await dbDataContext.UserInfo.Where(x => idAmici.Contains(x.IdAspNetUser)).ToListAsync(); //var query = // from info in dbDataContext.UserInfo // join user in dbContext.Users on info.IdAspNetUser equals user.Id // where idAmici.Contains(info.IdAspNetUser) // select new UserInfoDto { Nome = info.Nome, // Cognome = info.Cognome, // FotoProfilo = info.FotoProfilo, // Email = user.Email}; return(UserInfoMapper.UserInfoToUserInfoDtoList(amici)); }