private void Logic_OnObjectChangeStateToWork(object sender, ObjectChangeStateEventArgs e) { TrackerViewRowChanged(); var info = _dbWrapper.ReadEmployeeData(e.ObjectId); _formPhoto.UpdatePersonalData(info, false, true); }
private void InFieldChangeState() { if (TrackerView.SelectedRows.Count > 1) { if (MessageBox.Show("Выделено несколько строк! Изменения коснутся только одиного" + Environment.NewLine + "Продолжаем?", "Обратите внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } var row = StaticMethods.GetCurrentDataRow(TrackerView); if (row == null) { return; } int objectId = Convert.ToInt32(row["ObjectId"]); int activeObjectId = objectId; if (!Convert.IsDBNull(row["_ActiveObjectId"])) { activeObjectId = Convert.ToInt32(row["_ActiveObjectId"]); } bool inField = Convert.ToBoolean(row["InField"]); bool connectPresent = !_isNoModem; bool addEvent = true; if (connectPresent) { UInt16 status; //Cursor = Cursors.WaitCursor; bool sended = _rModuleWrapper.ObjectGetStatus(out status, activeObjectId); //Cursor = Cursors.Default; var statusWord = new PakStatusWord(status); if (!inField && (!sended || statusWord.Error || statusWord.Charge < 9)) { var sb = new StringBuilder("Изменение режима НЕ ДОПУСТИМО по следующим причинам:"); sb.AppendLine(); if (!sended) { sb.AppendLine(" - нет связи с трекером"); } else { if (statusWord.Error) { sb.AppendLine(" - ошибка оборудования"); } if (statusWord.Charge < 9) { sb.AppendLine(" - низкий заряд батареи"); } } MessageBox.Show(sb.ToString(), "Изменение режима", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } addEvent = false; if (!sended) { if (!FormHelper.OperatorRiskAgree()) { return; } connectPresent = false; addEvent = true; } } //Cursor = Cursors.WaitCursor; var stateEventArg = new ObjectChangeStateEventArgs(objectId); bool isChanged; if (inField) { isChanged = InFieldUnSet(connectPresent, addEvent, objectId, activeObjectId); _logic.InvokeOnObjectToLamp(stateEventArg); } else { isChanged = InFieldSet(connectPresent, addEvent, objectId, activeObjectId); _logic.InvokeOnObjectToWork(stateEventArg); } //Cursor = Cursors.Default; if (isChanged) { _dbWrapper.RefreshDataSetAllTables(); TrackerViewRowChanged(); } }