// GET: PulseRate
        public ActionResult Index()
        {
            var model = new AnalyseViewModel();

            model.SelectDate = DateTime.Now;
            return(View(model));
        }
Beispiel #2
0
        public IEnumerable <BloodPressureViewModel> MonthAnalyse(AnalyseViewModel data)
        {
            using (var ctx = new DensoEntities())
            {
                var dateStart  = data.SelectDate.Date;
                var dateMonth  = data.SelectDate.Date.AddMonths(1);
                var monthRange = TimeHelper.DateRange(dateStart, dateMonth);

                var model = ctx.Analyses.Where(x => DbFunctions.TruncateTime(x.CreateDate) >= dateStart && DbFunctions.TruncateTime(x.CreateDate) <= dateMonth)
                            .Select(s => new BloodPressureViewModel
                {
                    Date      = s.CreateDate.Value,
                    Systolic  = s.Systolic,
                    Diastolic = s.Diastolic
                }).OrderBy(c => c.Date).ToList();
                var list = monthRange.GroupJoin(model, r => r.Date, m => m.Date.Date, (r, m) => new { r, m })
                           .SelectMany(x => x.m.DefaultIfEmpty(), (x, m) => new BloodPressureViewModel
                {
                    Date      = m == null ? x.r : m.Date,
                    Systolic  = m == null ? 0 : m.Systolic,
                    Diastolic = m == null ? 0 : m.Diastolic
                }).OrderBy(o => o.Date).ToList();

                return(list);
            }
        }
        public ActionResult MonthAnalyse(AnalyseViewModel data)
        {
            using (var ctx = new DensoEntities())
            {
                var dateStart = data.SelectDate.Date.AddMonths(-1);
                var dateEnd   = data.SelectDate.Date;
                var model     = ctx.Analyses.Where(x => DbFunctions.TruncateTime(x.CreateDate) >= dateStart && DbFunctions.TruncateTime(x.CreateDate) <= dateEnd)
                                .Select(s => new PulseRateViewModel
                {
                    Date      = s.CreateDate.Value,
                    PulseRate = s.PulseRate
                }).ToList();

                return(PartialView("Analyse", model));
            }
        }
        public ActionResult Generate(AnalyseViewModel data)
        {
            switch (data.Chart)
            {
            case ChartType.DayAnalyse:
                return(RedirectToAction("DayAnalyse", data));

            case ChartType.WeekAnalyse:
                return(RedirectToAction("WeekAnalyse", data));

            case ChartType.MonthAnalyse:
                return(RedirectToAction("MonthAnalyse", data));

            default:
                return(Content("not founded"));
            }
        }
        public ActionResult Generate(AnalyseViewModel data)
        {
            switch (data.Chart)
            {
            case ChartType.DayAnalyse:
                return(PartialView("PulseRate", DayAnalyse(data)));

            case ChartType.WeekAnalyse:
                return(PartialView("PulseRate", WeekAnalyse(data)));

            case ChartType.MonthAnalyse:
                return(PartialView("PulseRate", MonthAnalyse(data)));

            default:
                return(Content("Chart type Not founded"));
            }
        }
        public ActionResult DayAnalyse(AnalyseViewModel data)
        {
            using (var ctx = new DensoEntities())
            {
                var dateStartw = data.SelectDate.Date.AddDays(-7);
                var dateStartm = data.SelectDate.Date.AddMonths(-1);
                var dateEnd    = data.SelectDate.Date;
                Debug.WriteLine($"start week { dateStartw }, month { dateStartm } <= end { dateEnd }");
                var model = ctx.Analyses.Where(x => DbFunctions.TruncateTime(x.CreateDate) == data.SelectDate.Date)
                            .Select(s => new PulseRateViewModel
                {
                    Date      = s.CreateDate.Value,
                    PulseRate = s.PulseRate
                }).ToList();

                return(PartialView("Analyse", model));
            }
        }
        public IEnumerable <PulseRateViewModel> DayAnalyse(AnalyseViewModel data)
        {
            using (var ctx = new DensoEntities())
            {
                var dateStart = data.SelectDate.Date;
                var timeRange = TimeHelper.TimeRange(dateStart);

                var model = ctx.Analyses.Where(x => DbFunctions.TruncateTime(x.CreateDate) == dateStart)
                            .Select(s => new PulseRateViewModel
                {
                    Date      = s.CreateDate.Value,
                    PulseRate = s.PulseRate
                }).OrderBy(c => c.Date).ToList();
                var list = timeRange.GroupJoin(model, r => r.Hour, m => m.Date.Hour, (r, m) => new { r, m })
                           .SelectMany(x => x.m.DefaultIfEmpty(), (x, m) => new PulseRateViewModel
                {
                    Date      = m == null ? x.r : m.Date,
                    PulseRate = m == null ? 0.0 : m.PulseRate,
                }).OrderBy(o => o.Date).ToList();

                return(list);
            }
        }