public AddPhoneCommand(
     IOutputWritter outputWritter, 
     ICanonicalPhoneConverter canonicalPhoneConverter, 
     IPhonebookRepository phonebook)
     : base(outputWritter, canonicalPhoneConverter, phonebook)
 {
 }
 public ChangePhonebookCommand(
     ILogger consoleLogger, IPhonebookRepository data, IPhonebookNumberFormatter numberFormatter)
 {
     this.consoleLogger = consoleLogger;
     this.data = data;
     this.numberFormatter = numberFormatter;
 }
Exemplo n.º 3
0
 public CommandFactoryWithLazyLoading(IPhonebookRepository data, IPrinter printer, IPhoneNumberSanitizer sanitizer)
 {
     // TODO: Complete member initialization
     this.data      = data;
     this.printer   = printer;
     this.sanitizer = sanitizer;
 }
 public void ExecuteCommand(CommandType commandType, string[] commandParams, IPhonebookRepository phonebook, StringBuilder output)
 {
     switch (commandType)
     {
         case CommandType.AddPhone:
             {
                 ExecuteAdd(commandParams, phonebook, output);
                 break;
             }
         case CommandType.ChangePhone:
             {
                 ExecuteChange(commandParams, phonebook, output);
                 break;
             }
         case CommandType.List:
             {
                 try
                 {
                     OutputEntries(commandParams, phonebook, output);
                 }
                 catch (ArgumentOutOfRangeException)
                 {
                     output.AppendLine("Invalid range");
                 }
                 break;
             }
     }
 }
 public CommandFactoryWithLazyLoading(
     ILogger consoleLogger, IPhonebookRepository data, IPhonebookNumberFormatter numberFormatter)
 {
     this.consoleLogger = consoleLogger;
     this.data = data;
     this.numberFormatter = numberFormatter;
 }
        public void Execute(IList<string> arguments, IPhonebookRepository repository)
        {
            if (arguments.Count < 2)
            {
                throw new ArgumentException("Invalid number of arguments to add phone number");
            }

            string name = arguments[0];
            var phoneNumbers = arguments.Skip(1).ToList();
            for (int i = 0; i < phoneNumbers.Count; i++)
            {
                phoneNumbers[i] = sanitizer.ConvertPhoneToCanonical(phoneNumbers[i]);
            }

            bool isPhoneNew = repository.AddPhone(name, phoneNumbers);

            if (isPhoneNew)
            {
                Print("Phone entry created");
            }
            else
            {
                Print("Phone entry merged");
            }
        }
Exemplo n.º 7
0
 public ChangePhoneCommand(string[] arguments, ISanitizer sanitizer, IPhonebookRepository phonebookDatabase, IPrinter printer)
 {
     this.phonebookDatabase = phonebookDatabase;
     this.sanitizer = sanitizer;
     this.arguments = arguments;
     this.printer = printer;
 }
 public CommandFactoryWithLazyLoading(IPhonebookRepository data, IPrinter printer, IPhoneNumberSanitizer sanitizer)
 {
     // TODO: Complete member initialization
     this.data = data;
     this.printer = printer;
     this.sanitizer = sanitizer;
 }
        public void Execute(IList <string> arguments, IPhonebookRepository repository)
        {
            if (arguments.Count < 2)
            {
                throw new ArgumentException("Invalid number of arguments to add phone number");
            }

            string name         = arguments[0];
            var    phoneNumbers = arguments.Skip(1).ToList();

            for (int i = 0; i < phoneNumbers.Count; i++)
            {
                phoneNumbers[i] = sanitizer.ConvertPhoneToCanonical(phoneNumbers[i]);
            }

            bool isPhoneNew = repository.AddPhone(name, phoneNumbers);

            if (isPhoneNew)
            {
                Print("Phone entry created");
            }
            else
            {
                Print("Phone entry merged");
            }
        }
Exemplo n.º 10
0
 public IPhonebookRepository GetPhonebookRepository()
 {
     if (phonebookRepository == null)
     {
         phonebookRepository = new PhonebookViewRepository(context);
     }
     return(phonebookRepository);
 }
        private void ExecuteChange(string[] commandParams, IPhonebookRepository phonebook, StringBuilder output)
        {
            string oldNumberConverted = PhonebookUtils.ConvertPhoneNumber(commandParams[0]);
            string newNumberConverted = PhonebookUtils.ConvertPhoneNumber(commandParams[1]);
            int numbersChanged = phonebook.ChangePhone(oldNumberConverted, newNumberConverted);

            output.AppendLine(numbersChanged + " numbers changed");
        }
 protected BasePhoneCommand(
     IOutputWritter outputWritter, 
     ICanonicalPhoneConverter canonicalPhoneConverter, 
     IPhonebookRepository phonebook)
 {
     this.CanonicalPhoneConverter = canonicalPhoneConverter;
     this.OutputWritter = outputWritter;
     this.PhonebookRepository = phonebook;
 }
 public CommandFactory(
     IOutputWritter outputWritter, 
     ICanonicalPhoneConverter canonicalPhoneConverter, 
     IPhonebookRepository phonebook)
 {
     this.canonicalPhoneConverter = canonicalPhoneConverter;
     this.outputWritter = outputWritter;
     this.phonebookRepository = phonebook;
 }
Exemplo n.º 14
0
        public PhonebookTests()
        {
            DbContextOptions dbOptions = new DbContextOptionsBuilder <PhonebookContext>()
                                         .UseInMemoryDatabase(databaseName: "Phonebook")
                                         .Options;

            _context = new PhonebookContext(dbOptions);
            PhonebookContextSeed.SeedAsync(_context).Wait();
            _phonebookRepository = new PhonebookRepository(_context);
        }
Exemplo n.º 15
0
 public void SetUp()
 {
     this.factory    = new PhonebookFactory();
     this.repository = new PhonebookRepository(this.factory);
     this.repository.AddPhone("Nakov", new string[] { "+359887333444" });
     this.repository.AddPhone("Minka", new string[] { "+359887333544" });
     this.repository.AddPhone("Ginka", new string[] { "+359887333774" });
     this.repository.AddPhone("Nakov", new string[] { "+359887333454" });
     this.repository.AddPhone("Nakov", new string[] { "+359887333434" });
     this.repository.AddPhone("Gichka", new string[] { "+359887333444" });
 }
        private void InitializeCommandList(IPhonebookRepository phonebookRepository)
        {
            if (phonebookRepository == null)
            {
                throw new NullReferenceException("Phonebook repository instance cannot be null.");
            }

            this.commands[AddPhoneCommandName] = new AddPhoneCommand(phonebookRepository, this.sanitizer);
            this.commands[DeletePhoneCommandName] = new DeletePhoneCommand(phonebookRepository);
            this.commands[ChangePhoneCommandName] = new ChangePhoneCommand(phonebookRepository, this.sanitizer);
            this.commands[ListPhonesCommandName] = new ListPhonesCommand(phonebookRepository);
        }
        private void OutputEntries(string[] commandParams, IPhonebookRepository phonebook, StringBuilder output)
        {
            int startIndex = int.Parse(commandParams[0]);
            int count = int.Parse(commandParams[1]);

            IEnumerable<PhonebookEntry> entries = phonebook.ListEntries(startIndex, count);

            foreach (var entry in entries)
            {
                output.AppendLine(entry.ToString());
            }
        }
        private void InitializeCommandList(IPhonebookRepository phonebookRepository)
        {
            if (phonebookRepository == null)
            {
                throw new NullReferenceException("Phonebook repository instance cannot be null.");
            }

            this.commands[AddPhoneCommandName]    = new AddPhoneCommand(phonebookRepository, this.sanitizer);
            this.commands[DeletePhoneCommandName] = new DeletePhoneCommand(phonebookRepository);
            this.commands[ChangePhoneCommandName] = new ChangePhoneCommand(phonebookRepository, this.sanitizer);
            this.commands[ListPhonesCommandName]  = new ListPhonesCommand(phonebookRepository);
        }
        public void Execute(IList<string> arguments, IPhonebookRepository repository)
        {
            if ((arguments.Count != 2))
            {
                throw new ArgumentException("Invalid number of arguments to change phone number");
            }

            string oldPhoneNumber = sanitizer.ConvertPhoneToCanonical(arguments[0]);
            string newPhoneNumber = sanitizer.ConvertPhoneToCanonical(arguments[1]);
            int changedPhoneNumbersCount = repository.ChangePhone(oldPhoneNumber, newPhoneNumber);
            Print(changedPhoneNumbersCount + " numbers changed");
        }
        public void Execute(IList <string> arguments, IPhonebookRepository repository)
        {
            if ((arguments.Count != 2))
            {
                throw new ArgumentException("Invalid number of arguments to change phone number");
            }

            string oldPhoneNumber           = sanitizer.ConvertPhoneToCanonical(arguments[0]);
            string newPhoneNumber           = sanitizer.ConvertPhoneToCanonical(arguments[1]);
            int    changedPhoneNumbersCount = repository.ChangePhone(oldPhoneNumber, newPhoneNumber);

            Print(changedPhoneNumbersCount + " numbers changed");
        }
 public void Execute(IList<string> arguments, IPhonebookRepository repository)
 {
     try
     {
         IEnumerable<PhonebookEntry> entries = repository.ListEntries(int.Parse(arguments[0]), int.Parse(arguments[1]));
         foreach (var entry in entries)
         {
             Print(entry.ToString());
         }
     }
     catch (ArgumentOutOfRangeException)
     {
         Print("Invalid range");
     }
 }
Exemplo n.º 22
0
 public void Execute(IList <string> arguments, IPhonebookRepository repository)
 {
     try
     {
         IEnumerable <PhonebookEntry> entries = repository.ListEntries(int.Parse(arguments[0]), int.Parse(arguments[1]));
         foreach (var entry in entries)
         {
             Print(entry.ToString());
         }
     }
     catch (ArgumentOutOfRangeException)
     {
         Print("Invalid range");
     }
 }
        private void ExecuteAdd(string[] commandParams, IPhonebookRepository phonebook, StringBuilder output)
        {
            string name = commandParams[0];
            var phones = commandParams.Skip(1).ToList();

            for (int i = 0; i < phones.Count; i++)
            {
                phones[i] = PhonebookUtils.ConvertPhoneNumber(phones[i]);
            }

            bool phoneExists = phonebook.AddPhone(name, phones);

            if (phoneExists)
            {
                output.AppendLine("Phone entry merged");
            }
            else
            {
                output.AppendLine("Phone entry created");
            }
        }
        public void Setup()
        {
            //InMemory DB did not catch violation of foreign key constraint due to incorrect context configuration
            options = new DbContextOptionsBuilder <AbsaPhonebookContext>().UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=AbsaPhonebook;Integrated Security=True;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False").Options;
            //"Data Source=(local);Initial Catalog=AbsaPhonebook;Integrated Security=True;" - MSSQL connection string
            var context = new AbsaPhonebookContext(options);

            context.RemoveRange(context.Phonebook);
            context.RemoveRange(context.PhonebookEntry);
            context.SaveChanges();

            phonebook      = PhonebookFactory.Create();
            phonebook.Name = "Stellenbosch Directory";

            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Dave Worthington", "021979452"));
            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Bill Lumsden", "0215554334"));
            repository      = new PhonebookRepository(context);
            entryRepository = new PhonebookEntryRepository(context);

            repository.Add(phonebook);
            repository.Commit();
        }
        public void Setup()
        {
            options = new DbContextOptionsBuilder <AbsaPhonebookContext>().UseInMemoryDatabase(databaseName: "AbsaPhonebook").Options;
            var context = new AbsaPhonebookContext(options);

            context.RemoveRange(context.Phonebook);
            context.RemoveRange(context.PhonebookEntry);
            context.SaveChanges();

            phonebook      = PhonebookFactory.Create();
            phonebook.Name = "Stellenbosch Directory";

            phonebook.PhonebookEntries.Add(CreateEntry(phonebook, "Dave Worthington", "021979452"));
            phonebookEntry = CreateEntry(phonebook, "Bill Lumsden", "0215554334");
            phonebook.PhonebookEntries.Add(phonebookEntry);
            repository      = new PhonebookRepository(context);
            entryRepository = new PhonebookEntryRepository(context);

            repository.Add(phonebook);
            repository.Commit();

            controller = new PhonebookController(repository, entryRepository);
        }
Exemplo n.º 26
0
 public PhonebookController(IPhonebookRepository phonebookRepository, ILogger <PhonebookRepository> logger, IMapper mapper)
 {
     this._repository = phonebookRepository;
     this._logger     = logger;
     this._mapper     = mapper;
 }
 public PhonebookRepositoryTests()
 {
     this.testPhoneNumbers = new SortedSet<string> { "0899 777 235", " 02 / 981 11 11", "(+359) 899777236" };
     this.phonebookRepository = new PhonebookRepository();
 }
Exemplo n.º 28
0
 public PhonebookController(IPhonebookRepository phonebookRepository, IPhonebookEntryRepository entryRepository)
 {
     this.phonebookRepository      = phonebookRepository;
     this.phonebookEntryRepository = entryRepository;
 }
 public CommandList(IConvertable converter, IPhonebookRepository repository, IPrintable printer)
     : base(converter, repository, printer)
 {
 }
Exemplo n.º 30
0
 public Engine(IPhonebookRepository data)
 {
     this.data = data;
 }
Exemplo n.º 31
0
 public ListPhonesCommand(IPhonebookRepository phonebookRepository)
     : base(phonebookRepository)
 {
 }
 public void InitilizePhonebookRepository()
 {
     this.phonebook = new PhonebookRepository();
 }
Exemplo n.º 33
0
 public AddPhoneCommand(IPhonebookRepository phonebookRepository, IPhoneNumberSanitizer sanitizer)
     : base(phonebookRepository)
 {
     this.sanitizer = sanitizer;
 }
Exemplo n.º 34
0
 public DeletePhoneCommand(IPhonebookRepository phonebookRepository)
     : base(phonebookRepository)
 {
 }
Exemplo n.º 35
0
 public ChangePhoneCommand(IPhonebookRepository phonebookRepository, string[] commandArguments)
     : base(phonebookRepository, commandArguments)
 {
 }
Exemplo n.º 36
0
 public AddPhoneCommand(IPhonebookRepository data, IPrinter printer, IPhoneNumberSanitizer sanitizer)
 {
     this.printer   = printer;
     this.data      = data;
     this.sanitizer = sanitizer;
 }
Exemplo n.º 37
0
 public AddPhoneCommand(IPhonebookRepository phonebookRepository, IPhoneNumberSanitizer sanitizer)
     : base(phonebookRepository)
 {
     this.sanitizer = sanitizer;
 }
Exemplo n.º 38
0
 public PhonebookService(IPhonebookRepository phoneRepository, IMapper mapper)
 {
     _phoneRepository = phoneRepository;
     _mapper          = mapper;
 }
Exemplo n.º 39
0
 public ListPhonesCommand(IPhonebookRepository data, IPrinter printer)
 {
     this.printer = printer;
     this.data    = data;
 }
Exemplo n.º 40
0
 public Command(IConvertable converter, IPhonebookRepository repository, IPrintable printer)
 {
     this.Converter = converter;
     this.PhonebookRepository = repository;
     this.Printer = printer;
 }
Exemplo n.º 41
0
 public AddPhoneCommand(IPhonebookRepository data, IPrinter printer, IPhoneNumberSanitizer sanitizer)
 {
     this.printer = printer;
     this.data = data;
     this.sanitizer = sanitizer;
 }
Exemplo n.º 42
0
 public void InitilizePhonebookRepository()
 {
     this.phonebook = new PhonebookRepository();
 }
 public RegularCommandsFactory(IConvertable converter, IPhonebookRepository repository, IPrintable printer)
     : base(converter, repository, printer)
 {
 }
 public CommandFactoryWithDictionary(IPhonebookRepository phonebookRepository, IPhoneNumberSanitizer sanitizer)
 {
     this.sanitizer = sanitizer;
     this.InitializeCommandList(phonebookRepository);
 }
 public AbstractCommandsFactory(IConvertable converter, IPhonebookRepository repository, IPrintable printer)
 {
     this.Converter = converter;
     this.Repository = repository;
     this.Printer = printer;
 }
Exemplo n.º 46
0
 public PhonebookService(IPhonebookRepository phonebookRepository)
 {
     _phonebookRepository = phonebookRepository;
 }
Exemplo n.º 47
0
 public ListPhonesCommand(IPhonebookRepository phonebookRepository)
     : base(phonebookRepository)
 {
 }
Exemplo n.º 48
0
 public ListPhonesCommand(IPhonebookRepository data, IPrinter printer)
 {
     this.printer = printer;
     this.data = data;
 }
Exemplo n.º 49
0
 public ContactController(IPhonebookRepository repository, ILogger <ContactController> logger)
 {
     _repository = repository;
     _logger     = logger;
 }
Exemplo n.º 50
0
 public DeletePhoneCommand(IPhonebookRepository phonebookRepository)
     : base(phonebookRepository)
 {
 }
Exemplo n.º 51
0
 public PhoneBookController(IPhonebookRepository repo, IMapper mapper)
 {
     _repo   = repo;
     _mapper = mapper;
 }
Exemplo n.º 52
0
 public void Execute(IList <string> arguments, IPhonebookRepository repository)
 {
     throw new NotImplementedException();
 }
 public ListPhonebookCommand(ILogger consoleLogger, IPhonebookRepository data)
 {
     this.consoleLogger = consoleLogger;
     this.data = data;
 }
Exemplo n.º 54
0
 public Command(IConvertable converter, IPhonebookRepository repository, IPrintable printer)
 {
     this.Converter           = converter;
     this.PhonebookRepository = repository;
     this.Printer             = printer;
 }
Exemplo n.º 55
0
 public PhoneValidationDecorator(IPhonebookRepository phoneRepository, ILogger <PhoneValidationDecorator> logger, IPhonebookService phoneService)
 {
     _phoneService    = phoneService;
     _logger          = logger;
     _phoneRepository = phoneRepository;
 }
Exemplo n.º 56
0
 public CommandFactoryWithLazyLoading(IPhonebookRepository data, IPrinter printer, IPhoneNumberSanitizer sanitizer)
 {
     this.data      = data;
     this.sanitizer = sanitizer;
     this.printer   = printer;
 }
 public void Execute(IList<string> arguments, IPhonebookRepository repository)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 58
0
 protected BaseCommand(IPhonebookRepository phonebookRepository, string[] commandArguments)
 {
     this.PhonebookRepository = phonebookRepository;
     this.commandArguments = commandArguments;
 }
Exemplo n.º 59
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PhonebookController"/> class.
 /// </summary>
 /// <param name="phonebookRepository">The phonebook repository.</param>
 public PhonebookController(IPhonebookRepository phonebookRepository)
 {
     this.phonebookRepository = phonebookRepository;
 }
Exemplo n.º 60
0
 public RegularCommandsFactory(IConvertable converter, IPhonebookRepository repository, IPrintable printer) : base(converter, repository, printer)
 {
 }