private void SyncAndClose() { int itemOrder = 0; for (int i = 0; i < _listSupplies.Count; i++) { if (i > 0 && _listSupplies[i - 1].Category != _listSupplies[i].Category) { itemOrder = 0; } _listSupplies[i].ItemOrder = itemOrder; itemOrder++; } //Nuances of concurency using this sync are, //Deletes always win, //last in edits win, //Added supplies are unaffected by concurency Supplies.Sync(_listSupplies, _listSuppliesOld); DialogResult = DialogResult.OK; }