Exemplo n.º 1
0
        public ActionResult GetJobWeightData(string year, string month, int userId)
        {
            JobWeightChart chart  = _diaryLogService.FindJobWeightData(year, month, userId);
            string         Series = JsonConvert.SerializeObject(chart.Series);
            string         Legend = JsonConvert.SerializeObject(chart.Legend);

            return(Json(new { isSuccess = chart.Series.Count() > 0, series = Series, legend = Legend }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public ActionResult DiaryChartPost(string year, string month, string userId)
        {
            int searchUserId;

            if (!string.IsNullOrWhiteSpace(userId))
            {
                searchUserId = int.Parse(userId);
            }
            else
            {
                searchUserId = LoginState.LoginUserId;
            }

            JobWeightChart chart  = _DiaryService.FindJobWeightData(year, month, searchUserId);
            string         Series = JsonConvert.SerializeObject(chart.Series);
            string         Legend = JsonConvert.SerializeObject(chart.Legend);

            return(Json(new { isSuccess = chart.Series.Count() > 0, series = Series, legend = Legend }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public JobWeightChart FindJobWeightData(string year, string month, int userId)
        {
            JobWeightChart chart = new JobWeightChart();

            List <DiaryLog> diaryLogs     = GetDiaryLogsByMonth(year, month, userId);
            var             diaryLogGroup = from q in diaryLogs
                                            group q by q.DiaryLogItem into g
                                            select new {
                Item    = g.Key,
                ItemSum = g.Select(x => x.DiaryLogHours).Sum()
            };

            chart.Legend = diaryLogGroup.Select(x => x.Item).ToList();
            chart.Series = diaryLogGroup.Select(x => new Series {
                value = x.ItemSum,
                name  = x.Item
            }).ToList();

            return(chart);
        }
Exemplo n.º 4
0
        //工作統計圖表
        public JobWeightChart FindJobWeightData(string year, string month, int userId)
        {
            JobWeightChart chart   = new JobWeightChart();
            List <string>  items   = _ItemService.FindAll().Select(x => x.ItemName).ToList();
            List <Diary>   diaries = FindByMonth(year, month, userId);

            var diariesGroup = from q in diaries
                               where items.Contains(q.Item)
                               group q by q.Item into g
                               select new
            {
                Item    = g.Key,
                ItemSum = g.Select(x => x.Hours).Sum()
            };

            //沒有在項目資料表中的
            decimal notInItems = diaries.Where(x => !items.Contains(x.Item)).Select(x => x.Hours).Sum();

            if (notInItems > 0)
            {
                //chart.Legend = new List<string>();
                //chart.Series = new List<Series>();

                chart.Legend.Add("其它(未在項目中)");
                chart.Series.Add(new Series {
                    name = "其它(未在項目中)", value = notInItems
                });
            }

            chart.Legend.AddRange(diariesGroup.Select(x => x.Item).ToList());
            chart.Series.AddRange(diariesGroup.Select(x => new Series
            {
                value = x.ItemSum,
                name  = x.Item
            }).ToList());

            return(chart);
        }