Ejemplo n.º 1
0
        /// <summary>
        /// 获得抓拍记录信息
        /// </summary>
        /// <param name="page">查询的页码</param>
        /// <returns></returns>
        public void GetCaptureRecord(int page)
        {
            try
            {
                List <int> pageSplit = new List <int>();
                int        curpage   = 0;
                int        index     = 0;
                cRQViewModel.LoadingVisiblity = Visibility.Visible;
                List <MyCapFaceLogWithImg> listMyCapFaceLogWithImg = new List <MyCapFaceLogWithImg>();
                List <SCountInfo>          queryCount = new List <SCountInfo>();
                if (GlobalCache.AppType != 1)
                {
                    queryCount = thirft.QueryCapRecordTotalCountH(cRQViewModel.captureRecordQueryValue);
                }
                else
                {
                    if (cRQViewModel.captureRecordQueryValue.ChannelValue != "")
                    {
                        List <string> channelTemp = new List <string>();
                        channelTemp.Add(cRQViewModel.captureRecordQueryValue.ChannelValue);
                        queryCount = thirft.QueryCapRecordTotalCountHSXC(cRQViewModel.captureRecordQueryValue, channelTemp);
                    }
                    else
                    {
                        queryCount = thirft.QueryCapRecordTotalCountHSXC(cRQViewModel.captureRecordQueryValue, cRQViewModel.ChannelId);
                    }
                }

                if (queryCount.Count <= 0)
                {
                    return;
                }
                cRQViewModel.MaxCount = queryCount[0].Count;
                for (int no = queryCount[0].Dayarr.Count - 1; no >= 0; no--)
                {
                    var dayary = queryCount[0].Dayarr[no];
                    curpage += dayary.Count % cRQViewModel.captureRecordQueryValue.PageRowValue != 0 ? dayary.Count / cRQViewModel.captureRecordQueryValue.PageRowValue + 1 : dayary.Count / cRQViewModel.captureRecordQueryValue.PageRowValue;
                    pageSplit.Add(curpage);
                }
                cRQViewModel.MaxPage = curpage;
                //根据页数判断是属于哪一天
                foreach (var dayPage in pageSplit)
                {
                    if (page <= dayPage)
                    {
                        index = pageSplit.IndexOf(dayPage);
                        //修改当前的时间 和 最大的结果数量
                        currDay = queryCount[0].Dayarr[queryCount[0].Dayarr.Count - 1 - index].Daystr;
                        DateTime dt1     = Convert.ToDateTime(queryCount[0].Dayarr[queryCount[0].Dayarr.Count - 1 - index].Daystr.Insert(6, "/").Insert(4, "/"));
                        TimeSpan dt1Span = new TimeSpan(dt1.Ticks);
                        DateTime dt2     = new DateTime(1970, 1, 1);
                        TimeSpan dt2Span = new TimeSpan(dt2.Ticks);
                        long     longdtPkCompRecordStarTime = Convert.ToInt64(dt1Span.TotalSeconds - dt2Span.TotalSeconds);
                        if (longdtPkCompRecordStarTime > cRQViewModel.captureRecordQueryValue.StartDayValue)
                        {
                            cRQViewModel.captureRecordQueryValue.StartDayValue = longdtPkCompRecordStarTime;
                        }
                        if (page != cRQViewModel.MaxPage)
                        {
                            long longdtPkCompRecordEndTime = Convert.ToInt64(dt1Span.TotalSeconds - dt2Span.TotalSeconds) + 24 * 60 * 60;
                            var  todayEndtime = Convert.ToInt64(new TimeSpan(dt1.AddDays(1).Ticks).TotalSeconds - dt2Span.TotalSeconds);
                            if (longdtPkCompRecordEndTime > todayEndtime)
                            {
                                longdtPkCompRecordEndTime = todayEndtime;
                            }
                            cRQViewModel.captureRecordQueryValue.EndDayValue = longdtPkCompRecordEndTime;
                        }
                        cRQViewModel.captureRecordQueryValue.MaxCount = queryCount[0].Dayarr[queryCount[0].Dayarr.Count - 1 - index].Count;
                        break;
                    }
                }
                if (page > 1)
                {
                    int pageTem = 0;
                    if (index == 0)
                    {
                        pageTem = 0;
                    }
                    else
                    {
                        pageTem = pageSplit[index - 1];
                    }
                    cRQViewModel.captureRecordQueryValue.StartRowValue = cRQViewModel.captureRecordQueryValue.MaxCount - ((page - pageTem) * cRQViewModel.captureRecordQueryValue.PageRowValue);
                    if (cRQViewModel.captureRecordQueryValue.StartRowValue < 0)
                    {
                        cRQViewModel.captureRecordQueryValue.StartRowValue = 0;
                    }
                }
                else
                {
                    cRQViewModel.captureRecordQueryValue.StartRowValue = cRQViewModel.captureRecordQueryValue.MaxCount - (cRQViewModel.captureRecordQueryValue.PageRowValue);
                    if (cRQViewModel.captureRecordQueryValue.StartRowValue < 0)
                    {
                        cRQViewModel.captureRecordQueryValue.StartRowValue = 0;
                    }
                }
                cRQViewModel.CurrPage = page;
                int countTem = 0;
                for (int n = 0; n <= index; n++)
                {
                    var dayary = queryCount[0].Dayarr[queryCount[0].Dayarr.Count - 1 - n].Count;
                    countTem += dayary;
                }
                cRQViewModel.captureRecordQueryValue.MaxCount = countTem;

                if (GlobalCache.AppType != 1)
                {
                    cRQViewModel.ListMyCapFaceLogWithImg = thirft.QueryCapLog(cRQViewModel.captureRecordQueryValue);
                }
                else
                {
                    if (cRQViewModel.captureRecordQueryValue.ChannelValue != "")
                    {
                        List <string> channelTemp = new List <string>();
                        channelTemp.Add(cRQViewModel.captureRecordQueryValue.ChannelValue);
                        cRQViewModel.ListMyCapFaceLogWithImg = thirft.QueryCapLogSXC(cRQViewModel.captureRecordQueryValue, channelTemp);
                    }
                    else
                    {
                        cRQViewModel.ListMyCapFaceLogWithImg = thirft.QueryCapLogSXC(cRQViewModel.captureRecordQueryValue, cRQViewModel.ChannelId);
                    }
                }
                cRQViewModel.LoadingVisiblity = Visibility.Collapsed;
                this.Dispatcher.BeginInvoke(
                    new Action(() =>
                {
                    if (listViewCaptureRecord.Items.Count > 0)
                    {
                        listViewCaptureRecord.ScrollIntoView(listViewCaptureRecord.Items[0]);
                    }
                }));
            }
            catch (Exception ex)
            {
                MB_MODULES.Views.MyMessage.showYes(ex.Message);
                Logger <OperaExcel> .Log.Error("GetCaptureRecord", ex);
            }
            finally
            {
                cRQViewModel.LoadingVisiblity = Visibility.Collapsed;
            }
        }