private void LoadHistory() { StudyHistoryeAdaptor adaptor = new StudyHistoryeAdaptor(); StudyHistorySelectCriteria criteria = new StudyHistorySelectCriteria(); criteria.DestStudyStorageKey.EqualTo(TheStudySummary.TheStudyStorage.GetKey()); criteria.InsertTime.SortDesc(0); _historyList = CollectionUtils.Select(adaptor.Get(criteria), delegate(StudyHistory history) { // only include reconciliation records that result in updating the current study if (history.StudyHistoryTypeEnum == StudyHistoryTypeEnum.StudyReconciled) { ReconcileHistoryRecord desc = StudyHistoryRecordDecoder.ReadReconcileRecord(history); switch (desc.UpdateDescription.Action) { case StudyReconcileAction.CreateNewStudy: case StudyReconcileAction.Merge: case StudyReconcileAction.ProcessAsIs: return(true); } return(false); } return(true); }); }
/// <summary> /// Finds a list of <see cref="StudyHistory"/> records of the specified <see cref="StudyHistoryTypeEnum"/> /// for the specified <see cref="StudyStorage"/>. /// </summary> /// <param name="studyStorage"></param> /// <returns></returns> /// <param name="types"></param> static public IList <StudyHistory> FindStudyHistories(StudyStorage studyStorage, IEnumerable <StudyHistoryTypeEnum> types) { // Use of ExecutionContext to re-use db connection if possible using (ServerExecutionContext scope = new ServerExecutionContext()) { IStudyHistoryEntityBroker broker = scope.PersistenceContext.GetBroker <IStudyHistoryEntityBroker>(); StudyHistorySelectCriteria criteria = new StudyHistorySelectCriteria(); criteria.StudyStorageKey.EqualTo(studyStorage.Key); criteria.StudyHistoryTypeEnum.EqualTo(StudyHistoryTypeEnum.StudyReconciled); if (types != null) { criteria.StudyHistoryTypeEnum.In(types); } criteria.InsertTime.SortAsc(0); IList <StudyHistory> historyList = broker.Find(criteria); return(historyList); } }