Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
                                                                                   ))
            });
        }