protected void SaveObject() { try { String errMessage = ""; bool result = GetFields(out errMessage); if (!result) { MessageBox.Show("Некорректные данные: " + errMessage, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (baseObject.Parent == null) { baseObject.SaveToDB(); if (baseObject.ErrCode != ErrCode.ErrOK) { MessageBox.Show("Ошибка сохранения: " + baseObject.ErrMessage, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show("Ошибка сохранения: " + ex.Message, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
protected virtual void SaveChild() { //Идем по массиву списков подчиненных объектов foreach (List <BaseObject> currListOld in childListOld) { //Сначала убираем лишние объекты foreach (BaseObject childOld in currListOld) { if (!childList[childListOld.IndexOf(currListOld)].Exists(o => o == childOld)) { childOld.DeleteFromDB(); } } foreach (BaseObject child in childList[childListOld.IndexOf(currListOld)]) { child.SaveToDB(); if (child.ErrCode != ErrCode.ErrOK) { errCode = child.ErrCode; errMessage = child.errMessage; return; } } } }