示例#1
0
        public async Task <IActionResult> All()
        {
            var items = await UnitOfWork.Repository <GeoData>()
                        .GetListAsync();

            return(Ok(items.Select(obj => GeoResult.Create(obj))));
        }
示例#2
0
        public async Task <IActionResult> Get(string id)
        {
            if (ObjectId.TryParse(id, out ObjectId oid))
            {
                var item = await UnitOfWork.Repository <GeoData>()
                           .GetByIdAsync(oid);

                if (item == null)
                {
                    return(NotFound(id));
                }

                return(Ok(GeoResult.Create(item)));
            }

            return(BadRequest());
        }
示例#3
0
        public async Task <IActionResult> List()
        {
            var oid = GetUserId();

            if (oid.HasValue)
            {
                var items = await UnitOfWork.Repository <GeoData>()
                            .GetListAsync(o => o.UserId == oid.Value);

                if (items.Count() == 0)
                {
                    return(NotFound());
                }

                var result = items.Select(obj => GeoResult.Create(obj));

                return(Ok(result));
            }

            return(BadRequest());
        }
示例#4
0
        public async Task <IActionResult> GetByLocation(double lon, double lat, double distance, string[] tag = null)
        {
            var oid = GetUserId();

            if (!oid.HasValue)
            {
                return(BadRequest());
            }

            var repository = UnitOfWork.GeoRepository <GeoData>();

            var items = await repository.GetByLocationAsync(oid.Value, lon, lat, distance, tag);

            if (items.Count() == 0)
            {
                return(NotFound());
            }

            var result = items.Select(obj => GeoResult.Create(obj));

            return(Ok(result));
        }