public override string Execute(IRemovablePhonebookRepository phoneBook)
 {
     var oldPhoneNumber = NormalizePhoneNumber(this.entry[0]);
     var changedPhoneNumber = NormalizePhoneNumber(this.entry[1]);
     var changedNumbersCount = phoneBook.ChangePhone(oldPhoneNumber, changedPhoneNumber);
     return changedNumbersCount + " numbers changed";
 }
        public override string Execute(IRemovablePhonebookRepository phoneBook)
        {
            try
            {
                var startIndex = int.Parse(this.entry[0]);
                var count = int.Parse(this.entry[1]);
                IEnumerable<IPhonebookEntry> listedEntries = phoneBook.ListEntries(startIndex, count);

                return string.Join(Environment.NewLine, listedEntries);
            }
            catch (ArgumentOutOfRangeException)
            {
                return ListCommand.InvalidRangeString;
            }
        }
        public override string Execute(IRemovablePhonebookRepository phoneBook)
        {
            var entryName = this.entry[0];
            var entryPhones = this.entry.Skip(1).ToList();
            for (int i = 0; i < entryPhones.Count; i++)
            {
                entryPhones[i] = this.NormalizePhoneNumber(entryPhones[i]);
            }

            bool isNewEntry = phoneBook.AddPhone(entryName, entryPhones);
            if (isNewEntry)
            {
                return AddCommand.EntryCreated;
            }
            else
            {
                return AddCommand.EntryMerged;
            }
        }
 public abstract string Execute(IRemovablePhonebookRepository repository);
 public override string Execute(IRemovablePhonebookRepository phoneBook)
 {
     var phoneNumber = NormalizePhoneNumber(this.entry[0]);
     var removedNumbersCount = phoneBook.RemovePhone(phoneNumber);
     return removedNumbersCount + " numbers removed";
 }