public HttpResponseMessage getAllPosition(string deviceId, DateTime startDate, DateTime endDate)
        {
            IDeviceService deviceService = this.Service <IDeviceService>();
            Device         device        = deviceService.GetById(deviceId);

            if (device != null)
            {
                IProduct_positionService productPositionService = this.Service <IProduct_positionService>();
                List <Product_position>  positions = productPositionService.getListById(deviceId, startDate, endDate).ToList();
                if (positions != null)
                {
                    positions = positions.Select(q => new Product_position()
                    {
                        Id          = q.Id,
                        DeviceId    = q.DeviceId,
                        Altitude    = q.Altitude,
                        Latitude    = q.Latitude,
                        Longitude   = q.Longitude,
                        CreatedDate = q.CreatedDate,
                        Active      = q.Active,
                    }).ToList();
                    return(new HttpResponseMessage()
                    {
                        StatusCode = System.Net.HttpStatusCode.OK,
                        Content = new JsonContent(positions)
                    });
                }
                else
                {
                    return(new HttpResponseMessage()
                    {
                        StatusCode = System.Net.HttpStatusCode.NotFound,
                        Content = new JsonContent("Can not find device")
                    });
                }
            }
            else
            {
                return(new HttpResponseMessage()
                {
                    StatusCode = System.Net.HttpStatusCode.NotFound,
                    Content = new JsonContent("Device is not exist")
                });
            }
        }
        public JsonResult PositionDatatable(JQueryDataTableParamModel param, string IMEI, DateTime startDate, DateTime endDate)
        {
            try
            {
                var deviceService = this.Service <IDeviceService>();
                var device        = deviceService.GetById(IMEI);

                if (device != null)
                {
                    IProduct_positionService      positionService = this.Service <IProduct_positionService>();
                    IQueryable <Product_position> listPosition    = positionService.getListById(IMEI, startDate, endDate);
                    if (listPosition == null)
                    {
                        return(Json(new
                        {
                            sEcho = param.sEcho,
                            iTotalRecords = 0,
                            iTotalDisplayRecords = 0,
                            aaData = new List <Product_position>()
                        }, JsonRequestBehavior.AllowGet));
                    }
                    var positionList = listPosition.AsEnumerable()
                                       .Where(a => (string.IsNullOrEmpty(param.sSearch) || StringConvert.EscapeName(a.DeviceId).ToLower()
                                                    .Contains(StringConvert.EscapeName(param.sSearch).ToLower())));
                    int count = 1;
                    var rp    = positionList
                                .Skip(param.iDisplayStart).Take(param.iDisplayLength)
                                .Select(p => new IConvertible[]
                    {
                        count++,
                        p.CreatedDate.ToShortDateString() + " " + p.CreatedDate.ToShortTimeString(),
                        p.Id,
                        p.Latitude,
                        p.Longitude,
                        p.Altitude,
                    });
                    var total = positionList.Count();
                    return(Json(new
                    {
                        sEcho = param.sEcho,
                        iTotalRecords = total,
                        iTotalDisplayRecords = total,
                        aaData = rp
                    }, JsonRequestBehavior.AllowGet));
                }
                return(Json(new
                {
                    sEcho = param.sEcho,
                    iTotalRecords = 0,
                    iTotalDisplayRecords = 0,
                    aaData = new List <Product_position>()
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new
                {
                    sEcho = param.sEcho,
                    iTotalRecords = 0,
                    iTotalDisplayRecords = 0,
                    aaData = new List <Product_position>()
                }, JsonRequestBehavior.AllowGet));
            }
        }