예제 #1
0
        /// <summary>
        /// 添加RecordModel到group中;
        /// </summary>
        /// <param name="recordModel"></param>
        /// <param name="group"></param>
        private void AddRecordModelToGroup(IRecentCaseRecord record, RecentCaseRecordGroupModel group)
        {
            RecentCaseRecordModel recordModel = new RecentCaseRecordModel(record);

            group.Items.Add(recordModel);
            //订阅打开事件;
            recordModel.OpenCaseRequired += (sender, e) => {
                try {
                    //如若案件文件不存在,询问是否移除最近案件引用;
                    var csFilePath = $"{recordModel.Record.CasePath}\\{recordModel.Record.CaseName}{Constants.CaseFileExtention}";
                    if (!File.Exists(csFilePath))
                    {
                        if (MsgBoxService.Show(
                                LanguageService.TryGetStringWithFormat(Constants.MsgText_ConfirmToRemoveRecentCaseFormat, csFilePath),
                                MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            RecentCaseRecordManagementService.RemoveRecord(recordModel.Record);
                            InitializeGroups();
                            return;
                        }
                    }

                    CaseService.Current.LoadCase(csFilePath);
                    RegionHelper.RequestNavigate(Contracts.MainPage.Constants.MainPageDocumentRegion, Contracts.MainPage.Constants.WelcomeView);
                }
                catch (Exception ex) {
                    LoggerService.WriteException(ex);
                }
            };
        }
예제 #2
0
        private void InitializeGroups()
        {
            RecordGroups.Clear();
            var records = RecentCaseRecordManagementService.GetAllRecentRecords();


            //根据时间段添加group;
            void AddGroup(string groupName, DateTime latestTime, TimeSpan?lastedTime)
            {
                var thisGroupRecords = records.Where(p => p.LastAccessTime <= latestTime &&
                                                     (lastedTime == null || p.LastAccessTime > latestTime - lastedTime.Value)).ToArray();

                if (thisGroupRecords.Length == 0)
                {
                    return;
                }

                var group = new RecentCaseRecordGroupModel {
                    Header = groupName
                };

                foreach (var record in thisGroupRecords)
                {
                    AddRecordModelToGroup(record, group);
                }
                RecordGroups.Add(group);
            }

            AddGroup(
                LanguageService.FindResourceString(Constants.RecentCaseRecordGroupName_Today),
                DateTime.Now.Date.AddDays(1), TimeSpan.FromDays(1)
                );

            AddGroup(
                LanguageService.FindResourceString(Constants.RecentCaseRecordGroupName_Yesterday),
                DateTime.Now.Date,
                TimeSpan.FromDays(1));

            AddGroup(
                LanguageService.FindResourceString(Constants.RecentCaseRecordGroupName_Earlier),
                DateTime.Now.Date.AddDays(-1),
                null);
        }
예제 #3
0
        public RecentCaseRecordsDesignViewModel()
        {
            void AddGroup(RecentCaseRecordGroupModel groupModel, RecentCaseRecord rRecord)
            {
                var rModel = new RecentCaseRecordModel(rRecord);

                groupModel.Items.Add(rModel);
            }

            var todayGroup = new RecentCaseRecordGroupModel {
                Header = "今天"
            };
            var tItem1 = new RecentCaseRecord {
                CaseName       = "Van VS 魔男",
                CasePath       = "新日暮里2333",
                CaseTime       = "2099/31/13",
                LastAccessTime = new DateTime(2019, 12, 13)
            };

            AddGroup(todayGroup, tItem1);
            AddGroup(todayGroup, tItem1);
            RecordGroups.Add(todayGroup);
        }