void Save()
 {
     try
     {
         if (bRatesModified && selectedContractVolumeEvt != null)
         {
             foreach (VolumeEvtRate ver in BackUpvolumeEvtRates)
             {
                 if (!VolumeEvtRates.Contains(ver))
                 {
                     VolumeEvtRateTarget.Remove(ver);
                 }
             }
             foreach (VolumeEvtRate ver in VolumeEvtRates)
             {
                 if (!BackUpvolumeEvtRates.Contains(ver))
                 {
                     ver.CONTRACT_VOLUME_EVT_ID = selectedContractVolumeEvt.CONTRACT_VOLUME_EVT_ID;
                     VolumeEvtRateTarget.Add(ver);
                 }
             }
             foreach (VolumeEvtRate ver in VolumeEvtRates)
             {
                 if (ver.Modified)
                 {
                     VolumeEvtRateTarget.Update(ver);
                 }
             }
         }
         foreach (ContractVolumeEvt cve in BackupContractVolumeEvts)
         {
             if (!ContractVolumeEvts.Contains(cve))
             {
                 ContractVolumeEvtTarget.Remove(cve);
             }
         }
         foreach (ContractVolumeEvt cve in ContractVolumeEvts)
         {
             if (!BackupContractVolumeEvts.Contains(cve))
             {
                 cve.CONTRACT_ID = CurrentContract.CONTRACT_ID;
                 ContractVolumeEvtTarget.Add(cve);
             }
         }
         foreach (ContractVolumeEvt cve in ContractVolumeEvts)
         {
             if (cve.Modified)
             {
                 ContractVolumeEvtTarget.Update(cve);
             }
         }
         Restore();
     }
     catch (Exception x)
     {
         ThisView.ShowMsg(x.ToString());
     }
 }
 void Restore()
 {
     try
     {
         if (bRatesModified && selectedContractVolumeEvt != null)
         {
             VolumeEvtRates = VolumeEvtRateTarget.FetchVolumeEvtRates(selectedContractVolumeEvt.CONTRACT_VOLUME_EVT_ID);
         }
         bRatesModified     = bRateWasAdded = bRateWasDeleted = false;
         ContractVolumeEvts = ContractVolumeEvtTarget.FetchVolumeEvts((decimal)currentContract.CONTRACT_ID);
         bWasAdded          = bWasDeleted = false;
     }
     catch (Exception x)
     {
         ThisView.ShowMsg(x.ToString());
     }
 }