/// <summary> /// Save all size to database (direct) /// </summary> /// <param name="companyId">companyId</param> public void Save(int companyId) { SizeInformationTDS sizeInformationChanges = (SizeInformationTDS)Data.GetChanges(); if (sizeInformationChanges != null) { if (sizeInformationChanges.SizeInformation.Rows.Count > 0) { SizeInformationGateway sizeInformationGateway = new SizeInformationGateway(sizeInformationChanges); foreach (SizeInformationTDS.SizeInformationRow row in (SizeInformationTDS.SizeInformationDataTable)sizeInformationChanges.SizeInformation) { // Insert new size if ((!row.Deleted) && (!row.InDatabase)) { WorkPointRepairsRepairPointSizeGateway workPointRepairsRepairPointSizeGateway = new WorkPointRepairsRepairPointSizeGateway(); WorkPointRepairsRepairPointSize workPointRepairsRepairPointSize = new WorkPointRepairsRepairPointSize(null); workPointRepairsRepairPointSizeGateway.LoadAllBySize_(row.Size_, row.COMPANY_ID); if (workPointRepairsRepairPointSizeGateway.Table.Rows.Count == 0) { workPointRepairsRepairPointSize.InsertDirect(row.Size_, row.COMPANY_ID, row.Deleted); } else { workPointRepairsRepairPointSize.UnDeleteDirect(row.Size_, row.COMPANY_ID); } } // Update size if ((!row.Deleted) && (row.InDatabase)) { string originalSize_ = row.NewSize_; string newSize_ = row.Size_; int originalCompanyId = companyId; WorkPointRepairsRepairPointSizeGateway workPointRepairsRepairPointSizeGateway = new WorkPointRepairsRepairPointSizeGateway(); WorkPointRepairsRepairPointSize workPointRepairsRepairPointSize = new WorkPointRepairsRepairPointSize(null); workPointRepairsRepairPointSizeGateway.LoadAllBySize_(newSize_, companyId); if (workPointRepairsRepairPointSizeGateway.Table.Rows.Count == 0) { workPointRepairsRepairPointSize.InsertDirect(newSize_, originalCompanyId, false); } else { workPointRepairsRepairPointSize.UnDeleteDirect(newSize_, originalCompanyId); } if (workPointRepairsRepairPointSizeGateway.IsUsedInPointRepair(originalSize_, companyId)) { WorkPointRepairsRepairGateway workPointRepairsRepairGateway = new WorkPointRepairsRepairGateway(null); workPointRepairsRepairGateway.UpdateSize(originalSize_, companyId, newSize_, companyId); } workPointRepairsRepairPointSize.DeleteDirect(originalSize_, companyId); } // Delete size if ((row.Deleted) && (row.InDatabase)) { WorkPointRepairsRepairPointSize workPointRepairsRepairPointSize = new WorkPointRepairsRepairPointSize(null); workPointRepairsRepairPointSize.DeleteDirect(row.Size_, row.COMPANY_ID); } } } } }