/// <summary> /// Сохранение внесенных изменений /// </summary> /// <returns>Ошибка выполнения</returns> public override ASUTP.Helper.Errors SaveChanges() { ASUTP.Helper.Errors errRes = ASUTP.Helper.Errors.NoError, bErr = ASUTP.Helper.Errors.NoError; int indxEv = -1; m_evSaveChangesComplete.Reset(); lock (m_lockResSaveChanges) { m_listResSaveChanges.Clear(); } FormChangeMode.KeyDevice prevKeyTECComponent = CurrentKey; foreach (RDGStruct[] curRDGValues in m_listCurRDGValues) { bErr = ASUTP.Helper.Errors.NoError; for (INDEX_WAITHANDLE_REASON i = INDEX_WAITHANDLE_REASON.ERROR; i < (INDEX_WAITHANDLE_REASON.ERROR + 1); i++) { ((ManualResetEvent)m_waitHandleState[(int)i]).Reset(); } if (m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)].Mode == FormChangeMode.MODE_TECCOMPONENT.TG) { indxEv = WaitHandle.WaitAny(m_waitHandleState); if (indxEv == 0) { CurrentKey = m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { break; } } else if (m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)].Mode == FormChangeMode.MODE_TECCOMPONENT.GTP) { indxEv = WaitHandle.WaitAny(m_waitHandleState); if (indxEv == 0) { CurrentKey = m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { break; } } ; lock (m_lockResSaveChanges) { m_listResSaveChanges.Add(bErr); if (!(bErr == ASUTP.Helper.Errors.NoError) && (errRes == ASUTP.Helper.Errors.NoError)) { errRes = bErr; } else { ; } } } CurrentKey = prevKeyTECComponent; //if (indxEv == 0) //if (errRes == Errors.NoError) m_evSaveChangesComplete.Set(); //else ; //??? почему AdminValues saveComplete.Invoke((m_markSavedValues.IsMarked((int)INDEX_MARK_PPBRVALUES.PBR_SAVED) == true) ? (int)StatesMachine.SavePPBRValues : (int)StatesMachine.SaveAdminValues); return(errRes); }
/// <summary> /// Сохранение внесенных изменений /// </summary> /// <returns>Ошибка выполнения</returns> public override ASUTP.Helper.Errors SaveChanges() { ASUTP.Helper.Errors errRes = ASUTP.Helper.Errors.NoError, bErr = ASUTP.Helper.Errors.NoError; int indxEv = -1; m_evSaveChangesComplete.Reset(); lock (m_lockResSaveChanges) { m_listResSaveChanges.Clear(); } int prevIndxTECComponent = indxTECComponents; foreach (RDGStruct[] curRDGValues in m_listCurRDGValues) { bErr = ASUTP.Helper.Errors.NoError; for (INDEX_WAITHANDLE_REASON i = INDEX_WAITHANDLE_REASON.ERROR; i < (INDEX_WAITHANDLE_REASON.ERROR + 1); i++) { ((ManualResetEvent)m_waitHandleState[(int)i]).Reset(); } if (modeTECComponent(m_listTECComponentIndexDetail[m_listCurRDGValues.IndexOf(curRDGValues)]) == FormChangeMode.MODE_TECCOMPONENT.TG) { indxEv = WaitHandle.WaitAny(m_waitHandleState); if (indxEv == 0) { indxTECComponents = m_listTECComponentIndexDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { break; } } else if (modeTECComponent(m_listTECComponentIndexDetail[m_listCurRDGValues.IndexOf(curRDGValues)]) == FormChangeMode.MODE_TECCOMPONENT.GTP) { indxEv = WaitHandle.WaitAny(m_waitHandleState); if (indxEv == 0) { indxTECComponents = m_listTECComponentIndexDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { break; } } ; lock (m_lockResSaveChanges) { m_listResSaveChanges.Add(bErr); if (!(bErr == ASUTP.Helper.Errors.NoError) && (errRes == ASUTP.Helper.Errors.NoError)) { errRes = bErr; } else { ; } } } indxTECComponents = prevIndxTECComponent; //if (indxEv == 0) //if (errRes == Errors.NoError) m_evSaveChangesComplete.Set(); //else ; if (!(saveComplete == null)) { saveComplete(); } else { ; } return(errRes); }
/// <summary> /// Сохранение внесенных изменений /// </summary> /// <returns>Ошибка выполнения</returns> public override ASUTP.Helper.Errors SaveChanges() { ASUTP.Helper.Errors errRes = ASUTP.Helper.Errors.NoError, bErr = ASUTP.Helper.Errors.NoError; INDEX_WAITHANDLE_REASON indxEv = INDEX_WAITHANDLE_REASON.SUCCESS; m_evSaveChangesComplete.Reset(); lock (m_lockResSaveChanges) { m_listResSaveChanges.Clear(); } FormChangeMode.KeyDevice prevKeyTECComponent = CurrentKey; foreach (RDGStruct[] curRDGValues in m_listCurRDGValues) { bErr = ASUTP.Helper.Errors.NoError; ResetSyncState(); if (m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)].Mode == FormChangeMode.MODE_TECCOMPONENT.TG) { indxEv = WaitAny(Constants.MAX_WATING, true); if (indxEv == 0) { CurrentKey = m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { break; } } else if (m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)].Mode == FormChangeMode.MODE_TECCOMPONENT.GTP) { indxEv = WaitAny(Constants.MAX_WATING, true); if (indxEv == 0) { CurrentKey = m_listKeyTECComponentDetail[m_listCurRDGValues.IndexOf(curRDGValues)]; curRDGValues.CopyTo(m_curRDGValues, 0); bErr = base.BaseSaveChanges(); } else { ASUTP.Logging.Logg().Error($"AdminTS_LK::SaveChanges () - <{indxEv}>...", ASUTP.Logging.INDEX_MESSAGE.NOT_SET); break; } } ; lock (m_lockResSaveChanges) { m_listResSaveChanges.Add(bErr); if (!(bErr == ASUTP.Helper.Errors.NoError) && (errRes == ASUTP.Helper.Errors.NoError)) { errRes = bErr; } else { ; } } } CurrentKey = prevKeyTECComponent; //if (indxEv == 0) //if (errRes == Errors.NoError) m_evSaveChangesComplete.Set(); //else ; //??? почему AdminValues saveComplete.Invoke((m_markSavedValues.IsMarked((int)INDEX_MARK_PPBRVALUES.PBR_SAVED) == true) ? (int)StatesMachine.SavePPBRValues : (int)StatesMachine.SaveAdminValues); return(errRes); }