public void UpdateInstrumentSetting(DataSet instruments, string[] instrumentIDs, TraderState state)
 {
     DataRowCollection rows;
     if (instrumentIDs.Length <= 0)
     {
         state.ClearInstrumentQuotePolicyIdMapping();
     }
     else
     {
         List<Guid> notExistKeys = state.InstrumentsView.GetKeys().Where(key => !instrumentIDs.Contains(key.ToString())).ToList();
         foreach(var key in notExistKeys)
         {
             state.RemoveInstrumentIDToQuotePolicyMapping(key);
         }
         if (instruments != null && instruments.Tables.Count > 0)
         {
             rows = instruments.Tables["Instrument"].Rows;
             foreach (DataRow instrumentRow in rows)
             {
                 if (!state.InstrumentsView.ContainsKey((Guid)instrumentRow["ID"]))
                 {
                     state.AddInstrumentIDToQuotePolicyMapping((Guid)instrumentRow["ID"], (Guid)instrumentRow["QuotePolicyID"]);
                 }
             }
         }
     }
 }