/// <summary> /// Save /// </summary> public void Save() { foreach (CategoriesAddTDS.CategoriesAddNewRow row in (CategoriesAddTDS.CategoriesAddNewDataTable)Data.Tables["CategoriesAddNew"]) { // Insert category if ((!row.Deleted) && (!row.InDatabase)) { int? parentId = null; if (!row.IsParentIDNull()) parentId = row.ParentID; InsertCategory(row.Type, row.Name, parentId, row.Deleted, row.COMPANY_ID); } // Update category if ((!row.Deleted) && (row.InDatabase)) { int companyId = row.COMPANY_ID; CategoryGateway categoryGateway = new CategoryGateway(); categoryGateway.LoadByCategoryId(row.CategoryID, companyId); int categoryId = row.CategoryID; string originalType = categoryGateway.GetType(categoryId); string originalName = categoryGateway.GetName(categoryId); int? originalParentId = null; if (categoryGateway.GetParentId(categoryId).HasValue) originalParentId = (int)categoryGateway.GetParentId(categoryId); bool originalDeleted = categoryGateway.GetDeleted(categoryId); UpdateCategory(categoryId, originalType, originalName, originalParentId, originalDeleted, companyId, row.CategoryID, row.Type, row.Name, originalParentId, row.Deleted, companyId); } // Delete category if ((row.Deleted) && (row.InDatabase)) { int categoryId = row.CategoryID; int? newCategoryId = null; if (!row.IsNewCategoryIDNull()) newCategoryId = row.NewCategoryID; int companyId = row.COMPANY_ID; UpdateUnitsAndRulesCategories(categoryId, newCategoryId, companyId); DeleteCategory(categoryId, companyId); } } }