public static void Delete(FinancialProduct financialProduct) { var productStatuses = financialProduct.ProductStatus; var productFeatures = financialProduct.ProductFeatureApplicabilities; var productRequirements = financialProduct.ProductRequiredDocuments; var prodCategoryClass = financialProduct.ProductCategoryClassifications; foreach (var productStatus in productStatuses.ToList()) { Context.DeleteObject(productStatus); } foreach (var productFeature in productFeatures.ToList()) { if (productFeature.Fee != null) Context.DeleteObject(productFeature.Fee); if (productFeature.LoanTerm != null) Context.DeleteObject(productFeature.LoanTerm); Context.ProductFeatureApplicabilities.DeleteObject(productFeature); } foreach (var document in productRequirements.ToList()) { Context.DeleteObject(document); } foreach (var category in prodCategoryClass.ToList()) { Context.DeleteObject(category); } Context.DeleteObject(financialProduct); }
public static bool CheckIfProductIsUsed(FinancialProduct product) { var used = Context.ApplicationItems.Where(entity => entity.ProductFeatureApplicability.FinancialProductId == product.Id); if (used.Count() != 0) return true; else return false; }
public static ProductStatu ChangeStatus(FinancialProduct financialProduct, ProductStatusType statusTo, DateTime today) { ProductStatu status = GetActive(financialProduct); if (CanChangeStatusTo(financialProduct, statusTo)) { return CreateOrUpdateCurrent(financialProduct, statusTo, today); } return status; }
public static ProductFeatureApplicability Create(ProductFeature feature, FinancialProduct financialProduct, DateTime today) { ProductFeatureApplicability applicability = new ProductFeatureApplicability(); applicability.FinancialProduct = financialProduct; applicability.EffectiveDate = today; applicability.ProductFeature = feature; Context.ProductFeatureApplicabilities.AddObject(applicability); return applicability; }
public static ProductFeatureApplicability CreateOrUpdate(ProductFeature feature, FinancialProduct financialProduct, DateTime today) { ProductFeatureApplicability current = GetActive(feature, financialProduct); if (current != null) current.EndDate = today; ProductFeatureApplicability applicability = new ProductFeatureApplicability(); applicability.FinancialProduct = financialProduct; applicability.EffectiveDate = today; applicability.ProductFeature = feature; Context.ProductFeatureApplicabilities.AddObject(applicability); return applicability; }
public static ProductStatu CreateOrUpdateCurrent(FinancialProduct financialProduct, ProductStatusType productStatusType, DateTime today) { ProductStatu productStatus = GetActive(financialProduct); if (productStatus != null && productStatus.ProductStatusType.Id != productStatusType.Id) productStatus.IsActive = false; if (productStatus == null || productStatus.ProductStatusType.Id != productStatusType.Id) { ProductStatu newProductStatus = new ProductStatu(); newProductStatus.FinancialProduct = financialProduct; newProductStatus.TransitionDateTime = today; newProductStatus.IsActive = true; newProductStatus.ProductStatusType = productStatusType; return newProductStatus; } return productStatus; }
public static bool CanChangeStatusTo(FinancialProduct financialProduct, ProductStatusType statusTo) { ProductStatu status = GetActive(financialProduct); if(status == null) return true; if (status.ProductStatusType.Id == ProductStatusType.ActiveType.Id) { return statusTo.Id != ProductStatusType.ActiveType.Id; } else if (status.ProductStatusType.Id == ProductStatusType.InactiveType.Id) { return statusTo.Id == ProductStatusType.ActiveType.Id; } else { return false; } }
public static ProductFeatureApplicability CreateOrUpdate(ProductFeature feature, FinancialProduct financialProduct, decimal? value , DateTime today) { ProductFeatureApplicability current = GetActive(feature, financialProduct); if (current != null && current.Value == value) return current; bool createNew = (current != null && current.Value != value) || current == null; if (current != null && current.Value != value) current.EndDate = today; if (createNew) { ProductFeatureApplicability applicability = new ProductFeatureApplicability(); applicability.FinancialProduct = financialProduct; applicability.EffectiveDate = today; applicability.ProductFeature = feature; applicability.Value = value; Context.ProductFeatureApplicabilities.AddObject(applicability); return applicability; } return current; }
public static IQueryable<ApplicationItem> All(FinancialProduct financialProduct) { return Context.ApplicationItems.Where(entity => entity.ProductFeatureApplicability.FinancialProductId == financialProduct.Id); }
public static ProductFeatureApplicability UpdateFeatureExistence(ProductFeature feature, FinancialProduct financialProduct, bool shouldExist, DateTime today) { ProductFeatureApplicability current = GetActive(feature, financialProduct); //no changes if (shouldExist && current != null) return current; if (shouldExist && current == null) { ProductFeatureApplicability applicability = new ProductFeatureApplicability(); applicability.FinancialProduct = financialProduct; applicability.EffectiveDate = today; applicability.ProductFeature = feature; Context.ProductFeatureApplicabilities.AddObject(applicability); return applicability; } if (current != null && shouldExist == false) { current.EndDate = today; return current; } return null; }
public static IEnumerable<ProductFeatureApplicability> GetAllActive(ProductFeature feature, FinancialProduct financialProduct) { return financialProduct.ProductFeatureApplicabilities.Where(entity => entity.EndDate == null && entity.ProductFeatureId == feature.Id); }
public static List<ProductFeatureApplicability> GetAllActive(ProductFeatureCategory category, FinancialProduct financialProduct) { return financialProduct.ProductFeatureApplicabilities.Where(entity => entity.EndDate == null && entity.ProductFeature.ProductFeatCatId == category.Id).ToList(); }
public static ProductFeatureApplicability GetActive(ProductFeature feature, FinancialProduct financialProduct) { return financialProduct.ProductFeatureApplicabilities.FirstOrDefault(entity => entity.EndDate == null && entity.ProductFeatureId == feature.Id); }
public static ProductRequiredDocument GetActive(FinancialProduct financialProduct) { return financialProduct.ProductRequiredDocuments.FirstOrDefault(entity => entity.EndDate == null); }
public static ProductStatu GetActive(FinancialProduct financialProduct) { return financialProduct.ProductStatus.FirstOrDefault(entity => entity.IsActive); }