public void Initialise() { this.inactivityThresholdPeriod = int.Parse(ConfigurationManager.AppSettings["InactivityThresholdPeriod"]); this.reviewEventyTypeCode = ConfigurationManager.AppSettings["ReviewEventyTypeCode"]; this.inactivityDetectionProcess = ConfigurationManager.AppSettings["InactivityDetectionProcess"]; var container = new UnityContainer(); ObjectFactory.Instance = new ObjectFactory(container); this.inactivityTask = new InactivityDetectionTask(); this.processes = new List<ITaskProcess>(); this.processEvents = new List<IProcessEvent>(); var taskService = MockRepository.GenerateStub<ITaskService>(); container.RegisterInstance(taskService); taskService.Stub(a => a.FindActiveProcesses(null)).IgnoreArguments().Return(this.processes); taskService.Stub(a => a.FindProcessEvents(null, 0, 0)).IgnoreArguments().Return(this.processEvents); this.claimHeader = new BusinessComponentBuilder<ClaimHeader>() .SetProperty(a => a.ClaimReference = "CH Reference") .SetProperty(a => a.CustomCode20 = MaxClaimDetails.ToString()) .Add(new BusinessComponentBuilder<ClaimDetail>() .SetProperty(a => a.ClaimDetailReference = "CD1 Reference")) .Add(new BusinessComponentBuilder<ClaimDetail>() .SetProperty(a => a.ClaimDetailReference = "CD2 Reference")) .Add(new BusinessComponentBuilder<ClaimInvolvement>() .SetProperty(a => a.ClaimInvolvementType = (short)StaticValues.LinkableComponentType.NameInvolvement) .Add(new BusinessComponentBuilder<ClaimNameInvolvement>() .SetProperty(a => a.NameInvolvementType = (short)StaticValues.NameInvolvementType_ClaimNameInvolvement.MainClaimHandler) .SetProperty(a => a.NameInvolvementMaintenanceStatus = (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest) .SetProperty(a => a.NameID = 2))) .Build(); var claimEntities = MockRepository.GenerateStub<IClaimsQuery>(); this.targetClaimEvent = new ClaimEvent(); this.targetUser = new User { UserID = 999}; Func<DateTime, IEnumerable<long>, ILookup<ClaimHeader, ClaimDetail>> returnLookup = (x, y) => this.claimHeader.InternalClaimDetails.ToLookup(a => a.ClaimHeader); claimEntities.Stub(a => a.GetInactiveClaims(DateTime.Now, null)).IgnoreArguments().Do((Func<DateTime, IEnumerable<long>, ILookup<ClaimHeader, ClaimDetail>>)returnLookup); container.RegisterInstance<IClaimsQuery>(claimEntities); MockRepository repository = new MockRepository(); container.RegisterInstance(MockRepository.GenerateStub<ICopyValidation>()); this.claimEventTransaction = new MockBusinessTransaction(new TransactionContext(string.Empty, string.Empty, string.Empty)); this.claimEventTransaction.Context.SetUsage(BusinessProcessUsage.Updateable); this.claimEventTransaction.Component = this.targetClaimEvent; container.RegisterInstance<IBusinessTransaction>("Claims.CreateEvent", this.claimEventTransaction); var metadataEntities = MockRepository.GenerateStub<IMetadataQuery>(); metadataEntities.Stub(a => a.GetEventTypeVersion(null)).IgnoreArguments().Return(new EventTypeVersion[] { }.AsQueryable()); metadataEntities.Stub(a => a.GetUserByNameId(2)).Return(this.targetUser); container.RegisterInstance(metadataEntities); container.RegisterInstance<IMessageService>(new MockMessagingService()); this.inactivityTask.GetInactiveClaimDetails = this.GetInactiveTestClaims; }
public void Initialize() { string qualityControlEventTypeCode = ClaimsBusinessLogicHelper.ResolveMandatoryConfig<string>(QualityControlEventTypeCode); string processName = ClaimsBusinessLogicHelper.ResolveMandatoryConfig<string>(QualityControlProcess); string claimUserRoleCode = ClaimsBusinessLogicHelper.ResolveMandatoryConfig<string>(ClaimUserRoleCode); var container = new UnityContainer(); ObjectFactory.Instance = new ObjectFactory(container); this.qualityCheckTask = new QualityCheckTask(); this.processes = new List<ITaskProcess>(); List<string> processNames = new List<string>(); object[] parameters = new object[] { XiapConstants.XIAP_DATASOURCE }; this.taskService = MockRepository.GenerateStub<ITaskService>(); container.RegisterInstance(this.taskService); this.taskService.Stub(a => a.GetFinishedTasksForUserByDateRange(null, null, DateTime.Now, DateTime.Now)).IgnoreArguments().Return(this.processes); this.claimEntities = MockRepository.GenerateStub<IClaimsQuery>(); container.RegisterInstance<IClaimsQuery>(this.claimEntities); this.claimHeader = new BusinessComponentBuilder<ClaimHeader>() .SetProperty(a => a.ClaimReference = "CH Reference") .Add(new BusinessComponentBuilder<ClaimDetail>() .SetProperty(a => a.ClaimDetailReference = "CD1 Reference")) .Add(new BusinessComponentBuilder<ClaimInvolvement>() .SetProperty(a => a.ClaimInvolvementType = (short)StaticValues.LinkableComponentType.NameInvolvement) .Add(new BusinessComponentBuilder<ClaimNameInvolvement>() .SetProperty(a => a.NameInvolvementType = (short)StaticValues.NameInvolvementType_ClaimNameInvolvement.MainClaimHandler) .SetProperty(a => a.NameInvolvementMaintenanceStatus = (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest) .SetProperty(a => a.NameID = 2))) .Build(); this.targetUser = new User { UserID = 999, UserIdentity = "TestUser" }; var metadataEntities = MockRepository.GenerateStub<IMetadataQuery>(); container.RegisterInstance(metadataEntities); metadataEntities.Stub(a => a.GetUserByNameId(2)).Return(this.targetUser); metadataEntities.Stub(a => a.GetUsersByRole("Developer")).IgnoreArguments().Return(new List<User>() { this.targetUser }); MockRepository repository = new MockRepository(); container.RegisterInstance(MockRepository.GenerateStub<ICopyValidation>()); this.claimEventTransaction = new MockBusinessTransaction(new TransactionContext(String.Empty, String.Empty,String.Empty)); this.claimEventTransaction.Context.SetUsage(BusinessProcessUsage.Updateable); this.targetClaimEvent = new ClaimEvent(); this.claimEventTransaction.Component = this.targetClaimEvent; container.RegisterInstance<IBusinessTransaction>("Claims.CreateEvent", this.claimEventTransaction); }
/// <summary> /// Method sets the Default TaskInitialUserID on validate. /// </summary> /// <param name="pluginHelper">plugin helper of business component</param> /// <param name="claimEvent">component of type claim event</param> private void SetTaskInitialUserForEvents(PluginHelper<IBusinessComponent> pluginHelper, ClaimEvent claimEvent) { // UI Label = Priority?; Post event // If the event type is a "POST" type and the Priority? value (CustomCode02) is "REC", set the TaskInitialUser to null. if (claimEvent.EventTypeCode == ClaimConstants.EVENT_POST_TYPECODE && claimEvent.CustomCode02 == ClaimConstants.EVENT_PRIORITY_REC) { claimEvent.TaskInitialUserID = null; } else if (claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_CLAIM_CREATED_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_INACTIVITY_REVIEW_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_PAYMENT_CANCELLATION_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_PHONE_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_POST_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_REPORT_REVIEW_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_REVIEW_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_RECOVERY_INACTIVITY_REVIEW_TYPECODE) || claimEvent.EventTypeCode.Equals(ClaimConstants.EVENT_REOPEN_CLAIM_TYPECODE)) { // Otherwise, if the event type is in the allowed values and the TaskInitialUser isn't set // set the user to the Claim Handler. if (!claimEvent.TaskInitialUserID.HasValue || claimEvent.TaskInitialUserID.Value == 0) { long? userID = ClaimsBusinessLogicHelper.GetMainClaimHandlerUserID(pluginHelper); claimEvent.TaskInitialUserID = userID; } } }
internal static void TestInitialize(ref ClaimEvent component, ref ProductEvent pce) { component = new ClaimEvent(); component.ProductEventID = 34; if (pce == null) { pce = new ProductEvent(); } component.InternalClaimHeader = new ClaimHeader(); component.ClaimHeader.InternalClaimDetails.Add(new ClaimDetail() { ClaimDetailReference = "D0001" }); ClaimInvolvement claimInvolvement = new ClaimInvolvement() { InternalClaimHeader = component.InternalClaimHeader, ClaimInvolvementType = (short)Xiap.Metadata.Data.Enums.StaticValues.LinkableComponentType.NameInvolvement, InternalClaimNameInvolvements = new System.Data.Objects.DataClasses.EntityCollection<ClaimNameInvolvement>() }; ClaimNameInvolvement nameInvolvement = new ClaimNameInvolvement() { NameInvolvementType = (short)StaticValues.NameInvolvementType_ClaimNameInvolvement.MainClaimHandler, NameInvolvementMaintenanceStatus = (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest, NameID = 1 }; claimInvolvement.InternalClaimNameInvolvements.Add(nameInvolvement); component.InternalClaimHeader.InternalClaimInvolvements.Add(claimInvolvement); pce.ProductVersion = new ProductVersion(); pce.ProductVersion.Product = new Product(); pce.ProductVersion.Product.Code = "TST"; pce.EventType = new EventType(); pce.EventType.IsStatusChangeEvent = false; pce.EventType.IsSystemCreationAllowed = false; pce.EventType.IsManualCreationAllowed = true; pce.EventType.IsManualDeletionAllowed = true; pce.EventType.Code = "ABCD"; pce.EventTypeReference.SetEntityKey(new System.Data.EntityKey("MetadataEntities.EventType", "Code", "ABCD")); IComponentMetadata metadata = MockRepository.GenerateStub<IComponentMetadata>(); metadata.Stub(m => m.GetDefinitionComponent<EventType>()).Return(pce.EventType); UnityContainer container = new UnityContainer(); container.RegisterType<IMessageService, MessageService>(); container.RegisterInstance<IComponentMetadata>(metadata); var metadataMock = MockRepository.GenerateStub<IMetadataQuery>(); var list = new List<ProductEvent>() { pce }; long productEventID = 34; metadataMock.Stub(m => m.GetProductEvent(productEventID)); var listEventType = new List<EventType>() { pce.EventType }; metadataMock.Stub(m => m.GetEventType("ABCD")).Return(listEventType.AsQueryable()); EventTypeVersion etv = new EventTypeVersion(); etv.EventTypeVersionID = 34; var listTypeVersion = new List<EventTypeVersion>() { etv }; metadataMock.Stub(m => m.GetEventTypeVersion("ABCD")).Return(listTypeVersion.AsQueryable()); container.RegisterInstance<IMetadataQuery>(metadataMock); container.RegisterType<ObjectContext, MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) }); container.RegisterType<MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) }); IConfigurationManager configurationManager = MockRepository.GenerateStub<IConfigurationManager>(); configurationManager.Stub(m => m.AppSettings).Return(new System.Collections.Specialized.NameValueCollection()); container.RegisterInstance<IConfigurationManager>(configurationManager); ObjectFactory.Instance = new ObjectFactory(container); component.Context = new ClaimsTransactionContext(string.Empty, string.Empty, string.Empty); }
/// <summary> /// Starts a task using the core Process Instantiation after first setting up the appropriate ClaimHeaderLink data. /// </summary> /// <param name="header">claim header</param> /// <param name="claimEvent">claim event component</param> /// <param name="processName">string value</param> /// <param name="folio">string value</param> /// <param name="data">dictionary collection</param> /// <param name="documentReference">string value of Document Reference</param> private void InstantiateProcess(ClaimHeader header, ClaimEvent claimEvent, string processName, string folio, Dictionary<string, object> data, string documentReference = null) { List<LinkedComponentItem> claimHeaderLink = null; if (claimEvent == null || claimEvent.ClaimDetail == null) { claimHeaderLink = new List<LinkedComponentItem> { new LinkedComponentItem { SystemComponentId = SystemComponentConstants.ClaimHeader, ComponentId = header.ClaimHeaderID } }; } else { claimHeaderLink = new List<LinkedComponentItem> { new LinkedComponentItem { SystemComponentId = SystemComponentConstants.ClaimHeader, ComponentId = header.ClaimHeaderID }, new LinkedComponentItem { SystemComponentId = SystemComponentConstants.ClaimDetail, ComponentId = claimEvent.ClaimDetail.ClaimDetailID } }; } if (documentReference != null) { var document = header.ClaimDocuments.SingleOrDefault(d => d.DocumentReference == documentReference); if (document != null) { claimHeaderLink.Add(new LinkedComponentItem() { SystemComponentId = SystemComponentConstants.Document, ComponentId = document.DocumentID }); } } ProcessHandlerHelper.InstantiateProcess(processName, folio, data, claimHeaderLink.ToArray()); }