コード例 #1
0
        /// <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);
                        }
                    }
                }
            }
        }