Пример #1
0
            /// <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);
            }
Пример #2
0
            /// <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);
            }
Пример #3
0
            /// <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);
            }