public static CustomerStatu CreateOrUpdateCurrent(PartyRole partyRole, CustomerStatusType statusTo, DateTime today) { CustomerStatu customerAppStatus = GetActive(partyRole); if (customerAppStatus != null && customerAppStatus.CustomerStatusType.Id != statusTo.Id) customerAppStatus.IsActive = false; if (customerAppStatus == null || customerAppStatus.CustomerStatusType.Id != statusTo.Id) { CustomerStatu status = new CustomerStatu(); status.CustomerStatusType = statusTo; status.PartyRoleId = partyRole.Id; status.TransitionDateTime = today; status.IsActive = true; return status; } return customerAppStatus; }
private void ChangeCustomerStatusToUnderLitigation(int loanAccountId) { var financialAccount = ObjectContext.FinancialAccounts.SingleOrDefault(entity => entity.Id == loanAccountId); var ownerFinAcctRole = financialAccount.FinancialAccountRoles.SingleOrDefault(entity => entity.PartyRole.RoleTypeId == RoleType.OwnerFinancialType.Id && entity.PartyRole.EndDate == null); var partyId = ownerFinAcctRole.PartyRole.PartyId; var customerPartyRole = PartyRole.GetByPartyIdAndRole(partyId, RoleType.CustomerType); var customer = customerPartyRole.Customer; var customerStatus = customer.CurrentStatus; if (customerStatus.CustomerStatusType == CustomerStatusType.DelinquentType) { customerStatus.IsActive = false; CustomerStatu newCustomerStatus = new CustomerStatu(); newCustomerStatus.PartyRoleId = customer.PartyRoleId; newCustomerStatus.CustomerStatusTypeId = CustomerStatusType.SubprimeType.Id; newCustomerStatus.TransitionDateTime = DateTime.Now; newCustomerStatus.IsActive = true; ObjectContext.CustomerStatus.AddObject(newCustomerStatus); } }