public async Task <List <Dictionary <string, object> > > Handle(GetPetsQuery request, CancellationToken cancellationToken) { var response = new List <Dictionary <string, object> >(); var pets = PetContext.Pets.ToList(); foreach (Pet pet in pets) { var entity = new Dictionary <string, object>(); var location = PetContext.Locations.Where(l => l.Id == pet.LocationId).Select(l => Coordinate.Create(l.Latitude, l.Longitude)).FirstOrDefault(); var image = ""; try { image = Convert.ToBase64String(File.ReadAllBytes(pet.ImagePath)); }catch (Exception) { } entity.Add("pet", pet); entity.Add("location", location); entity.Add("image", image); response.Add(entity); } return(response); }
async Task <Page <PetView> > IQueryHandler <GetPetsQuery, Page <PetView> > .Handle(GetPetsQuery query, CancellationToken cancellationToken) { var pets = await _db.QueryMultipleAsync( new CommandDefinition( commandText : Entity.Pets.PetsView.Sql, parameters : new { Limit = query.Limit, Offset = query.Offset, OrganisationId = query.OrganisationId, PetId = query.PetId, Status = (query.PetStatuses.Any() ? query.PetStatuses : DefaultPetStatuses).Select(_ => _.ToString()), Genders = (query.Genders.Any() ? query.Genders : DefaultPetGenders).Select(_ => _.ToString()), Filter = query.Filter == null ? null : $"%{query.Filter}%", }, commandType : CommandType.Text, cancellationToken : cancellationToken )); return(new Page <PetView> { Limit = query.Limit, Offset = query.Offset, Total = await pets.ReadSingleAsync <Int64>(), Items = (await pets.ReadAsync <Entity.Pets.PetsView>()).Select(_ => new PetView( id: _.Id, name: _.Name, beforePhotoLink: _.BeforePhotoLink, afterPhotoLink: _.AfterPhotoLink, petState: _.PetState, mdShortBody: _.MdShortBody, mdBody: _.MdBody, type: _.Type, gender: _.Gender, updateDate: _.UpdateDate )) }); }