Example #1
0
        /// <summary>
        /// 根据日期删除对应的数据,修改只反应在dbcontext中,还没有提交到数据库中
        /// </summary>
        /// <param name="date"></param>
        internal void DeleteValuesByDate(DateTimeOffset date)
        {
            var delMesValues  = this.MesValues.FindAll(s => s.Date == date);
            var delCalcValues = this.CalcValues.FindAll(s => s.Date == date);

            foreach (var item in delMesValues)
            {
                MesValues.Remove(item);
                this.DbContext.DeleteObject(item);
            }

            foreach (var item in delCalcValues)
            {
                CalcValues.Remove(item);
                this.DbContext.DeleteObject(item);
            }
        }
Example #2
0
        /// <summary>
        /// 根据AppIntegratedInfo的信息生成组合表,包括测量数据、计算数据、备注
        /// </summary>
        /// <param name="num">需要显示数据的个数</param>
        /// <returns></returns>
        public DataTable ConstructTable()
        {
            DataTable dt = null;

            if (CalcParams.Count > 0)
            {
                List <DateTimeOffset> timeList = null;
                //必须具有计算参数
                if (MesParams.Count > 0)
                {
                    timeList = (from i in MesValues
                                select i.Date).Distinct().ToList();
                }
                else
                {
                    //没有测量参数的情况
                    timeList = (from i in CalcValues
                                select i.Date).Distinct().ToList();
                }

                int temp = int.MaxValue;
                if (_topNum > 0)
                {
                    temp = _topNum;
                }

                dt = createDataTableSchema();

                for (int index = 0; index < timeList.Count && index < temp; index++)
                {
                    DataRow row = dt.NewRow();

                    DateTimeOffset date = timeList[index];
                    row[PubConstant.timeColumnName] = date;



                    foreach (MessureValue mv in MesValues.Where(s => s.Date == date))
                    {
                        string aParamName = MesParams.First(s => s.Id == mv.ParamId).ParamName; //mv.messureParam.ParamName;
                        if (mv.Val != null)
                        {
                            row[aParamName] = mv.Val;
                        }
                    }



                    foreach (CalculateValue cv in CalcValues.Where(s => s.Date == date))
                    {
                        string aParamName = CalcParams.First(s => s.Id == cv.ParamId).ParamName; //cv.calculateParam.ParamName;
                        if (cv.Val != null)
                        {
                            row[aParamName] = cv.Val;
                        }
                    }

                    Remark remark = Remarks.FirstOrDefault(s => s.Date == date);
                    if (remark != null)
                    {
                        row[PubConstant.remarkColumnName] = remark.RemarkText;
                    }
                    dt.Rows.Add(row);
                }

                dt.AcceptChanges();
            }

            return(dt);
        }