Пример #1
0
        public async Task <IHttpActionResult> Delete(Guid id)
        {
            var esClient = new ESClient.Client( );
            var result   = await esClient.Delete(id);

            return(Ok(result));
        }
Пример #2
0
        public async Task <IHttpActionResult> Put(Models.Quest quest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var esClient = new ESClient.Client( );
            var result   = await esClient.Update(quest);

            return(Ok(result));
        }
Пример #3
0
        public async Task <IHttpActionResult> SearchDateRange(DateTime start, DateTime end)
        {
            var esClient = new ESClient.Client();

            var results = await esClient.FilterQuestViaDateTime(start, end);

            if (results == null)
            {
                return(NotFound( ));
            }

            return(Ok(new { count = results.Count( ), data = results }));
        }
Пример #4
0
        public async Task <IHttpActionResult> SearchGeoDistance(long latitude, long longitude, int radius)
        {
            var esClient = new ESClient.Client();

            var results = await esClient.FilterQuestViaGeoDistance(radius, latitude, longitude);

            if (results == null)
            {
                return(NotFound( ));
            }

            return(Ok(new { count = results.Count( ), data = results }));
        }
Пример #5
0
        public async Task <IHttpActionResult> Search(string query)
        {
            var esClient = new ESClient.Client();

            var results = await esClient.SearchQueryViaQuery(query);

            if (results == null)
            {
                return(NotFound( ));
            }

            return(Ok(new { count = results.Count(), data = results }));
        }
Пример #6
0
        public async Task <IHttpActionResult> Raw(string json)
        {
            var esClient = new ESClient.Client();

            var result = await esClient.Raw(json);

            if (result == null)
            {
                return(NotFound( ));
            }

            return(Ok(result));
        }
Пример #7
0
        public async Task <IHttpActionResult> Post(Models.Quest quest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest( ));
            }

            if (quest.Id == Guid.Empty)
            {
                quest.Id = Guid.NewGuid( );
            }

            var esClient = new ESClient.Client();
            var result   = await esClient.Add(quest);

            return(Ok(result));
        }
Пример #8
0
        public async Task <IHttpActionResult> Migrate( )
        {
            var  esClient = new ESClient.Client();
            bool success  = true;

            using (var context = new Context( ))
            {
                var toIndex = context.Quests.Include(q => q.Treasures).Select(q =>
                                                                              new Models.Quest
                {
                    BeginDate = q.BeginDate,
                    CoordEnd  = new Models.Geo
                    {
                        Lat = q.EndLat,
                        Lon = q.EndLong
                    },
                    CoordStart = new Models.Geo
                    {
                        Lat = q.StartLat,
                        Lon = q.StartLong
                    },
                    Description = q.Description,
                    Difficulty  = q.Difficulty,
                    EndDate     = q.EndDate,
                    Id          = q.Id,
                    Name        = q.Name,
                    Treasures   = q.Treasures.Select(t => new Models.Treasure
                    {
                        Id          = t.Id,
                        Description = t.Description,
                        Name        = t.Name,
                        Value       = t.Value
                    }).ToList( )
                });
                foreach (var i in toIndex)
                {
                    success &= await esClient.Add(i);
                }
            }
            return(Ok(success));
        }