public bool AddCard(int cardRecordID, int positionIndex) { if (fieldCardDictionary.ContainsKey(cardRecordID)) { return(false); } if (DisplayCheck(positionIndex)) { FieldCardRecord record = new FieldCardRecord { CardRecordID = cardRecordID, PositionIndex = positionIndex }; foreach (var targetCard in FieldCards) { if (targetCard.PositionIndex >= positionIndex) { targetCard.PositionIndex++; OnCardChanged?.Invoke(targetCard, DataChangeCode.Update); } } fieldCardDictionary.Add(cardRecordID, record); OnCardChanged?.Invoke(record, DataChangeCode.Add); return(true); } else { return(false); } }
public bool UpdateCard(int cardRecordID, int positionIndex) { if (fieldCardDictionary.ContainsKey(cardRecordID)) { FieldCardRecord record = fieldCardDictionary[cardRecordID]; record.PositionIndex = positionIndex; OnCardChanged?.Invoke(record, DataChangeCode.Update); return(true); } else { return(false); } }
public bool RemoveCard(int cardRecordID) { if (fieldCardDictionary.ContainsKey(cardRecordID)) { FieldCardRecord record = fieldCardDictionary[cardRecordID]; fieldCardDictionary.Remove(record.CardRecordID); OnCardChanged?.Invoke(record, DataChangeCode.Remove); foreach (var targetCard in FieldCards) { if (targetCard.PositionIndex >= record.PositionIndex) { targetCard.PositionIndex--; OnCardChanged?.Invoke(targetCard, DataChangeCode.Update); } } return(true); } else { return(false); } }