/// <summary> /// UpdateUnitCategory /// </summary> /// <param name="unitId">unitId</param> /// <param name="companyId">companyId</param> /// <param name="categoriesSelected">categoriesSelected</param> /// <param name="companyLevelId">companyLevelId</param> private void UpdateUnitCategory(int unitId, int companyId, ArrayList categoriesSelected, int companyLevelId) { RuleCategoryUnitsGateway ruleCategoryUnitsGateway = new RuleCategoryUnitsGateway(null); CategoryGateway categoryGateway = new CategoryGateway(); categoryGateway.Load(companyId); if (categoryGateway.Table.Rows.Count > 0) { foreach (CategoriesTDS.LFS_FM_CATEGORYRow row in (CategoriesTDS.LFS_FM_CATEGORYDataTable)categoryGateway.Table) { int categoryId = row.CategoryID; UnitsCategoryGateway unitsCategoryGateway = new UnitsCategoryGateway(null); // Exists in DB if (unitsCategoryGateway.IsUsedInUnitCategory(unitId, categoryId, true)) { if (!categoriesSelected.Contains(categoryId)) { UnitsCategory unitsCategory = new UnitsCategory(null); unitsCategory.DeleteDirect(unitId, categoryId, companyId); RuleCategoryGateway ruleCategoryGateway = new RuleCategoryGateway(); ruleCategoryGateway.LoadByCategoryId(categoryId, companyId); foreach (RuleTDS.LFS_FM_RULE_CATEGORYRow rowRuleCategory in (RuleTDS.LFS_FM_RULE_CATEGORYDataTable)ruleCategoryGateway.Table) { int ruleId = rowRuleCategory.RuleID; if (ruleCategoryUnitsGateway.IsUsedInRuleCategoryUnits(ruleId, categoryId, unitId)) { // Delete RuleCategoryUnits ruleCategoryUnits = new RuleCategoryUnits(null); ruleCategoryUnits.DeleteDirect(ruleId, categoryId, unitId, companyId); } } } else { UnitsCategory unitsCategory = new UnitsCategory(null); unitsCategory.UnDeleteDirect(unitId, categoryId, companyId); } } else { if (categoriesSelected.Contains(categoryId)) { UnitsCategory unitsCategory = new UnitsCategory(null); unitsCategory.InsertDirect(unitId, categoryId, false, companyId); } } } } }
/// <summary> /// UpdateUnitChecklists /// </summary> /// <param name="unitId">unitId</param> /// <param name="companyLevelId">companyLevelId</param> /// <param name="companyId">companyId</param> private void UpdateUnitChecklists(int unitId, int companyLevelId, int companyId) { UnitsCategoryGateway unitsCategoryGateway = new UnitsCategoryGateway(); unitsCategoryGateway.LoadByUnitId(unitId, companyId); foreach (UnitsTDS.LFS_FM_UNIT_CATEGORYRow row in (UnitsTDS.LFS_FM_UNIT_CATEGORYDataTable)unitsCategoryGateway.Table) { int categoryId = row.CategoryID; RuleCategoryGateway ruleCategoryGateway = new RuleCategoryGateway(); ruleCategoryGateway.LoadByCategoryId(categoryId, companyId); foreach (RuleTDS.LFS_FM_RULE_CATEGORYRow rowRuleCategory in (RuleTDS.LFS_FM_RULE_CATEGORYDataTable)ruleCategoryGateway.Table) { int ruleId = rowRuleCategory.RuleID; RuleCompanyLevelGateway ruleCompanyLevelGateway = new RuleCompanyLevelGateway(null); if (ruleCompanyLevelGateway.IsUsedInRuleCompanyLevel(ruleId, companyLevelId)) { ChecklistGateway checklistGateway = new ChecklistGateway(null); if (checklistGateway.IsUsedInChecklist(unitId, ruleId, true)) { Checklist checklist = new Checklist(null); checklist.UnDeleteDirect(ruleId, unitId, companyId); } else { Checklist checklist = new Checklist(null); checklist.InsertDirect(unitId, ruleId, null, null, false, "Unknown", false, companyId); } } } } }