/// <summary> /// Save all personalAgencyName to database (direct) /// </summary> /// <param name="companyId">companyId</param> public void Save(int companyId) { PersonalAgencyInformationTDS personalAgencyInformationChanges = (PersonalAgencyInformationTDS)Data.GetChanges(); if (personalAgencyInformationChanges != null) { if (personalAgencyInformationChanges.PersonalAgencyInformation.Rows.Count > 0) { PersonalAgencyInformationGateway sizeInformationGateway = new PersonalAgencyInformationGateway(personalAgencyInformationChanges); foreach (PersonalAgencyInformationTDS.PersonalAgencyInformationRow row in (PersonalAgencyInformationTDS.PersonalAgencyInformationDataTable)personalAgencyInformationChanges.PersonalAgencyInformation) { // Insert new personal agency if ((!row.Deleted) && (!row.InDatabase)) { EmployeePersonalAgencyGateway employeePersonalAgencyGateway = new EmployeePersonalAgencyGateway(); EmployeePersonalAgency employeePersonalAgency = new EmployeePersonalAgency(null); if (!employeePersonalAgencyGateway.ExistPersonalAgency(row.PersonalAgencyName, row.COMPANY_ID)) { employeePersonalAgency.InsertDirect(row.PersonalAgencyName, row.COMPANY_ID, row.Deleted); } else { employeePersonalAgency.UnDeleteDirect(row.PersonalAgencyName, row.COMPANY_ID); } } // Update personal agency if ((!row.Deleted) && (row.InDatabase)) { string originalPersonalAgencyName = row.NewPersonalAgencyName; string newPersonalAgencyName = row.PersonalAgencyName; int originalCompanyId = companyId; EmployeePersonalAgencyGateway employeePersonalAgencyGateway = new EmployeePersonalAgencyGateway(); EmployeePersonalAgency employeePersonalAgency = new EmployeePersonalAgency(null); if (!employeePersonalAgencyGateway.ExistPersonalAgency(row.PersonalAgencyName, row.COMPANY_ID)) { employeePersonalAgency.InsertDirect(newPersonalAgencyName, originalCompanyId, false); } else { employeePersonalAgency.UnDeleteDirect(newPersonalAgencyName, originalCompanyId); } if (employeePersonalAgencyGateway.IsUsedInEmployee(originalPersonalAgencyName, companyId)) { EmployeeGateway employeeGateway = new EmployeeGateway(null); employeeGateway.UpdatePersonalAgencyName(originalPersonalAgencyName, newPersonalAgencyName); } employeePersonalAgency.DeleteDirect(originalPersonalAgencyName, companyId); } // Delete personal agency if ((row.Deleted) && (row.InDatabase)) { EmployeePersonalAgency employeePersonalAgency = new EmployeePersonalAgency(null); employeePersonalAgency.DeleteDirect(row.PersonalAgencyName, row.COMPANY_ID); } } } } }