public JsonResult DatasByDevice(int DeviceId, DataTableAjaxPostModel model, string minDateStr = null, string maxDateStr = null)
        {
            var predicateMain = InitDateRange <Data>(minDateStr, maxDateStr, d => d.Timestamp);

            var dbSet0 = db.Datas
                         .Where(d => d.DeviceAttributesId == DeviceId);

            var fullCount = dbSet0.Count();

            var dbSet = dbSet0
                        .Where(predicateMain)
                        .Include(d => d.DeviceAttributes)
                        .Select(d => new DataSelect
            {
                Id           = d.Id,
                BatteryLevel = d.BatteryLevel,
                SMSId        = d.SMSId,
                Timestamp    = d.Timestamp,
                WaterLevel   = d.WaterLevel
            });

            var res = new DataTablesParser <DataSelect>(Request, dbSet)
                      .Parse();

            res.recordsTotal = fullCount;

            return(Json(res));
        }
        public JsonResult DiagnosticByDevice(int DeviceId, DataTableAjaxPostModel model, string minDateStr = null, string maxDateStr = null)
        {
            var predicateMain = InitDateRange <Diagnostics>(minDateStr, maxDateStr, d => d.ReportTime);

            var dbSet0 = db.Diagnostics
                         .Where(d => d.DeviceAttributesId == DeviceId);

            var fullCount = dbSet0.Count();

            var dbSet = dbSet0
                        .Where(predicateMain)
                        .Include(d => d.DeviceAttributes)
                        .Select(d => new DiagnosticsSelect
            {
                Id = d.Id,
                GraceWindowExceeded = d.GraceWindowExceeded,
                LowBattery          = d.LowBattery,
                LowLevel            = d.LowLevel,
                SMSId = d.SMSId,
                TimeDifferenceFromDesiredLocalReportTime = d.TimeDifferenceFromDesiredLocalReportTime,
                UptimeCount = d.UptimeCount,
                Zeros       = d.Zeros,
                ReportTime  = d.ReportTime
            });

            var res = new DataTablesParser <DiagnosticsSelect>(Request, dbSet)
                      .Parse();

            res.recordsTotal = fullCount;

            return(Json(res));
        }
Esempio n. 3
0
        public JsonResult Data(DataTablesRequest model)
        {
            var data            = _menuServices.GetAll().Data.AsQueryable();
            var dataTableParser = new DataTablesParser <Menu>(model, data);
            var formattedList   = dataTableParser.Process();

            return(Json(formattedList, JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public JsonResult Data(DataTablesRequest model)
        {
            var data            = _roleManager.Roles.AsQueryable();
            var dataTableParser = new DataTablesParser <ApplicationRole>(model, data);
            var formattedList   = dataTableParser.Process();

            return(Json(formattedList, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        public JsonResult List()
        {
            IQueryable <DocFile>       docfiles = context.DocFile;
            DataTablesParser <DocFile> parser   = new DataTablesParser <DocFile>(Request, docfiles);
            FormatedList <DocFile>     list     = parser.Parse();

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
        public JsonResult DeviceAttributes(DataTableAjaxPostModel model)
        {
            var dbSet = db.DeviceAttributes;

            var res = new DataTablesParser <DeviceAttributes>(Request, dbSet)
                      .Parse();

            return(Json(res));
        }
Esempio n. 7
0
        public JsonResult GetUsers(DataTablesRequest model)
        {
            string dataPath        = ConfigurationManager.AppSettings["UsersPath"];
            var    repo            = new UserRepository(dataPath);
            var    data            = repo.GetAll().AsQueryable();
            var    dataTableParser = new DataTablesParser <User>(model, data);
            var    formattedList   = dataTableParser.Process();

            return(Json(formattedList, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetUsers(DataTablesRequest model)
        {
            string dataPath = ConfigurationManager.AppSettings["UsersPath"];
            var repo = new UserRepository(dataPath);
            var data = repo.GetAll().AsQueryable();
            var dataTableParser = new DataTablesParser<User>(model, data);
            var formattedList = dataTableParser.Process();

            return Json(formattedList, JsonRequestBehavior.AllowGet);
        }
        public JsonResult List()
        {
            var data    = _menuService.GetForDataTable();
            var parser  = new DataTablesParser <MenuDataTableModel>(Request, data);
            var counter = 1;
            var result  = parser.Parse();

            foreach (var item in result.data)
            {
                item.Row = counter++;
            }
            return(Json(result));
        }
        public virtual FormatedList <T> DataTables()
        {
            IQueryable <T> queryable;
            var            dbQuery = ctx.Set <T>();

            queryable = dbQuery.AsQueryable();

            var request   = HttpContext.Current.Request;
            var wrapper   = new HttpRequestWrapper(request);
            var parser    = new DataTablesParser <T>(wrapper, queryable);
            var datatable = parser.Parse();

            return(datatable);
        }
        public void TotalRecordsTest()
        {
            var r = new MockHttpRequest();
            var total = 6;
            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();
            r.Add(nvparams);

            var result = new DataTablesParser<Person>(r, context.People).Parse();

            Console.WriteLine(result.GetQuery());

            Assert.AreEqual(total, result.iTotalRecords);
        }
Esempio n. 12
0
        public void TotalRecordsTest()
        {
            var r     = new MockHttpRequest();
            var total = 6;
            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            r.Add(nvparams);

            var result = new DataTablesParser <Person>(r, context.People).Parse();

            Console.WriteLine(result.GetQuery());

            Assert.AreEqual(total, result.iTotalRecords);
        }
Esempio n. 13
0
        public JsonResult DeviceAttributesLogs(DataTableAjaxPostModel model, string minDateStr = null, string maxDateStr = null)
        {
            var predicateMain = InitDateRange <DeviceAttributesLog>(minDateStr, maxDateStr, d => d.UpdateDate);
            var fullCount     = db.DeviceAttributesLogs.Count();

            var dbSet = db.DeviceAttributesLogs
                        .Where(predicateMain);

            var res = new DataTablesParser <DeviceAttributesLog>(Request, dbSet)
                      .Parse();

            res.recordsTotal = fullCount;

            return(Json(res));
        }
Esempio n. 14
0
        public JsonResult SMS(DataTableAjaxPostModel model, string minDateStr = null, string maxDateStr = null)
        {
            var predicateMain = InitDateRange <SMS>(minDateStr, maxDateStr, d => d.DateReceiving);
            var fullCount     = db.SMS.Count();

            var dbSet = db.SMS
                        .Where(predicateMain);

            var res = new DataTablesParser <SMS>(Request, dbSet)
                      .Parse();

            res.recordsTotal = fullCount;

            return(Json(res));
        }
        public void TotalRecordsTest()
        {
            var r = new MockHttpRequest();

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();
            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser<MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(people.Count,parser.Parse().iTotalRecords);
        }
Esempio n. 16
0
        public JsonResult List(bool isExpired)
        {
            IQueryable <PurchasedProducts> productList = null;

            if (isExpired)
            {
                productList = context.PurchasedProducts.Where(q => q.PurchasedDueDate < DateTime.Today).OrderByDescending(q => q.PurchasedDate);
            }
            else
            {
                productList = context.PurchasedProducts.Where(q => q.PurchasedDueDate == null || q.PurchasedDueDate >= DateTime.Today).OrderByDescending(q => q.PurchasedDate);
            }
            DataTablesParser <PurchasedProducts> parser = new DataTablesParser <PurchasedProducts>(Request, productList);
            FormatedList <PurchasedProducts>     list   = parser.Parse();

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
        public void TotalRecordsTest()
        {
            var r = new MockHttpRequest();

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser <MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(people.Count, parser.Parse().iTotalRecords);
        }
        public void TotalDisplayTest()
        {
            var r = new MockHttpRequest();
            var displayLength = 1;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //Set filter parameter
            nvparams["sSearch"] = "Cromie";

            r.Add(nvparams);

            var parser = new DataTablesParser<Person>(r, context.People);

            Assert.AreEqual(displayLength, parser.Parse().iTotalDisplayRecords);
        }
Esempio n. 19
0
        public void TotalDisplayTest()
        {
            var r             = new MockHttpRequest();
            var displayLength = 1;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //Set filter parameter
            nvparams["sSearch"] = "Cromie";

            r.Add(nvparams);

            var parser = new DataTablesParser <Person>(r, context.People);

            Assert.AreEqual(displayLength, parser.Parse().iTotalDisplayRecords);
        }
Esempio n. 20
0
        protected virtual HttpResponseMessage DataTables(IQueryable <T> queryable)
        {
            try
            {
                var request = HttpContext.Current.Request;
                var wrapper = new HttpRequestWrapper(request);
                var parser  = new DataTablesParser <T>(wrapper, queryable);
                var result  = Request.CreateResponse(System.Net.HttpStatusCode.OK, parser.Parse());

                return(result);
            }
            catch (Exception ex)
            {
                var result = Request.CreateResponse(System.Net.HttpStatusCode.NoContent, ex.Message);

                return(result);
            }
        }
Esempio n. 21
0
        public void TotalResultsTest()
        {
            var r            = new MockHttpRequest();
            var resultLength = 3;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //override display length
            nvparams["iDisplayLength"] = Convert.ToString(resultLength);

            r.Add(nvparams);

            var result = new DataTablesParser <Person>(r, context.People).Parse();

            Console.WriteLine(result.GetQuery());

            Assert.AreEqual(resultLength, result.aaData.Count);
        }
Esempio n. 22
0
        public JsonResult SMSByDevice(int DeviceId, DataTableAjaxPostModel model, string minDateStr = null, string maxDateStr = null)
        {
            var predicateMain = InitDateRange <SMS>(minDateStr, maxDateStr, d => d.DateReceiving);
            var device        = db.DeviceAttributes
                                .Where(d => d.Id == DeviceId)
                                .FirstOrDefault();

            var dbSet0 = db.SMS
                         .Where(d => d.From == device.CellNumber);

            var fullCount = dbSet0.Count();
            var dbSet     = dbSet0.Where(predicateMain);

            var res = new DataTablesParser <SMS>(Request, dbSet)
                      .Parse();

            res.recordsTotal = fullCount;

            return(Json(res));
        }
        public void TotalResultsTest()
        {
            var r            = new MockHttpRequest();
            var resultLength = 3;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //override display length
            nvparams[Constants.DISPLAY_LENGTH] = Convert.ToString(resultLength);

            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser <MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(resultLength, parser.Parse().data.Count);
        }
        public void TotalResultsTest()
        {
            var r = new MockHttpRequest();
            var resultLength = 3;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //override display length
            nvparams["iDisplayLength"] = Convert.ToString(resultLength);

            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser<MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(resultLength, parser.Parse().aaData.Count);
        }
        public void TotalDisplayTest()
        {
            var r = new MockHttpRequest();
            var displayLength = 1;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //Set filter parameter
            nvparams["sSearch"] = "Cromie";

            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser<MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(displayLength, parser.Parse().iTotalDisplayRecords);
        }
        public void TotalDisplayTest()
        {
            var r             = new MockHttpRequest();
            var displayLength = 1;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //Set filter parameter
            nvparams["sSearch"] = "Cromie";

            r.Add(nvparams);

            var people = TestSupport.CreateData();

            var parser = new DataTablesParser <MockPerson>(r, people.AsQueryable());

            Console.WriteLine(people.Count);

            Assert.AreEqual(displayLength, parser.Parse().iTotalDisplayRecords);
        }
        public JsonResult All()
        {
            var parser = new DataTablesParser <Person>(Request, context.People);

            return(Json(parser.Parse()));
        }
Esempio n. 28
0
        public JsonResult Main(DataTableAjaxPostModel model, bool selectProblemDevice = false)
        {
            var maxT = DateTime.UtcNow.AddHours(-48);

            var devices = db.DeviceAttributes
                          .Where(d => d.Status == "active")
                          .Select(d => new
            {
                d.Id,
                d.CurrentLocationTimeZone,
                d.CellNumber,
                d.Name
            })
                          .ToList();

            var dataBD = db.Datas
                         .Where(d => d.Timestamp >= maxT)
                         .GroupBy(d => d.DeviceAttributesId)
                         .Select(g => new
            {
                key  = g.Key,
                data = g.OrderByDescending(d => d.Timestamp)
                       .Select(d => new
                {
                    d.DeviceAttributesId,
                    d.Timestamp,
                    d.WaterLevel,
                    d.BatteryLevel
                })
                       .FirstOrDefault()
            })
                         .ToList();

            var diagnosticBD = db.Diagnostics
                               .Where(d => d.ReportTime >= maxT)
                               .Select(d => new
            {
                d.DeviceAttributesId,
                d.ReportTime,
                d.GraceWindowExceeded,
                d.LowBattery,
                d.LowLevel,
                d.Zeros
            })
                               .ToList();

            var smsMaxT = DateTime.UtcNow.AddHours(-36);
            var smsBD   = db.SMS
                          .Where(d => d.DateReceiving >= smsMaxT)
                          .GroupBy(s => s.From)
                          .Select(g => new {
                g.Key
            })
                          .ToList();

            List <MainTable> mainTableList = new List <MainTable>();
            var DTnow = DateTime.UtcNow.AddHours(-24);

            foreach (var device in devices)
            {
                int.TryParse(device.CurrentLocationTimeZone, out int timeZone);
                var deviceMaxT = DTnow.AddHours(timeZone);

                var dataObj = dataBD
                              .Where(d => d.data.Timestamp >= deviceMaxT && d.key == device.Id)
                              .FirstOrDefault();
                var data = dataObj?.data;

                var diagnostic = diagnosticBD
                                 .Where(d => d.ReportTime >= deviceMaxT && d.DeviceAttributesId == device.Id)
                                 .OrderByDescending(d => d.ReportTime)
                                 .ToList();

                string alertGraceWindowExceeded = "",
                       alertLowBattery          = "",
                       alertLowLevel            = "",
                       alertZeros = "";

                foreach (var diagns in diagnostic)
                {
                    if (!string.IsNullOrWhiteSpace(diagns.GraceWindowExceeded))
                    {
                        alertGraceWindowExceeded = diagns.GraceWindowExceeded;
                    }

                    if (!string.IsNullOrWhiteSpace(diagns.LowBattery))
                    {
                        alertLowBattery = diagns.LowBattery;
                    }

                    if (!string.IsNullOrWhiteSpace(diagns.LowLevel))
                    {
                        alertLowLevel = diagns.LowLevel;
                    }

                    if (!string.IsNullOrWhiteSpace(diagns.Zeros))
                    {
                        alertZeros = diagns.Zeros;
                    }
                }

                var smsExist = smsBD.Exists(d => d.Key == device.CellNumber);

                var mainTable = new MainTable()
                {
                    DeviceId            = device.Id,
                    DeviceName          = device.Name,
                    MissingReport       = smsExist ? "" : "!",
                    GraceWindowExceeded = alertGraceWindowExceeded,
                    LowBattery          = alertLowBattery,
                    LowLevel            = alertLowLevel,
                    Zeros = alertZeros
                };

                if (data != null)
                {
                    mainTable.BatteryLevel = data.BatteryLevel;
                    mainTable.Timestamp    = data.Timestamp;
                    mainTable.WaterLevel   = data.WaterLevel;
                }

                if (selectProblemDevice)
                {
                    if (!(String.IsNullOrWhiteSpace(alertGraceWindowExceeded) &&
                          String.IsNullOrWhiteSpace(alertLowBattery) &&
                          String.IsNullOrWhiteSpace(alertLowLevel) &&
                          String.IsNullOrWhiteSpace(alertZeros) &&
                          String.IsNullOrWhiteSpace(mainTable.MissingReport)))
                    {
                        mainTableList.Add(mainTable);
                    }
                }
                else
                {
                    mainTableList.Add(mainTable);
                }
            }

            var res = new DataTablesParser <MainTable>(Request, mainTableList.AsQueryable())
                      .Parse();

            return(Json(res));
        }
        public JsonResult All()
        {
            var parser = new DataTablesParser<Person>(Request, context.People);

            return Json(parser.Parse());
        }
        public void TotalResultsTest()
        {
            var r = new MockHttpRequest();
            var resultLength = 3;

            //Not all params below are used by the parser. We may support them later
            var nvparams = TestSupport.CreateParams();

            //override display length
            nvparams[Constants.DISPLAY_LENGTH] = Convert.ToString(resultLength);

            r.Add(nvparams);

            var result = new DataTablesParser<Person>(r, context.People).Parse();

            Console.WriteLine(result.GetQuery());

            Assert.AreEqual(resultLength, result.data.Count);
        }