Example #1
0
        public bool AddPhone(string name, IEnumerable <string> phoneNumbers)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("Phone entry name cannot be null or empty.");
            }

            if (phoneNumbers == null)
            {
                throw new NullReferenceException("Phone numbers to add to phone entry cannot be null.");
            }

            string      nameToLowerCase = name.ToLowerInvariant();
            IPhoneEntry phoneEntry;
            bool        isNewEntry = !this.entriesByName.TryGetValue(nameToLowerCase, out phoneEntry);

            if (isNewEntry)
            {
                phoneEntry = new PhoneEntry(name);
                this.entriesByName.Add(nameToLowerCase, phoneEntry);
                this.sortedEntries.Add(phoneEntry);
            }

            // TODO: Extract method
            foreach (var phoneNumber in phoneNumbers)
            {
                this.entriesByPhone.Add(phoneNumber, phoneEntry);
            }

            phoneEntry.PhoneNumbers.UnionWith(phoneNumbers);
            return(isNewEntry);
        }
        /// <summary>
        /// Adds a new phone into the list of the entries
        /// </summary>
        /// <param name="name">The name of the person that number is accociated with</param>
        /// <param name="numbers">Sorted set of numbers.</param>
        /// <returns>If the number is added or merged</returns>
        public bool AddPhone(string name, IEnumerable<string> numbers)
        {
            bool isNewNumberAdded = false;
            if (numbers == null || numbers.Contains(""))
            {
                throw new ArgumentException("Invalid parameters");
            }
            foreach (var number in numbers)
            {
                var numberOfSameNames = from entries in this.phoneEntries
                                        where entries.Name.ToLowerInvariant() == name.ToLowerInvariant()
                                        select entries;

                if (numberOfSameNames.Count() == 0)
                {
                    PhoneEntry phoneEntry = new PhoneEntry(name);

                    phoneEntry.PhoneNumbers.Add(number);

                    this.phoneEntries.Add(phoneEntry);

                    isNewNumberAdded = true;
                }
                else if (numberOfSameNames.Count() == 1)
                {
                    PhoneEntry existingEntry = numberOfSameNames.First();

                    existingEntry.PhoneNumbers.Add(number);

                    isNewNumberAdded = false;
                }
            }
            return isNewNumberAdded;
        }
 public SearchTableEntity(PhoneEntry phoneEntry)
 {
     Name       = phoneEntry.Name;
     Department = phoneEntry.Department;
     Extension  = phoneEntry.Extension.ToString();
     IsReady    = phoneEntry.PhoneState == PhoneState.Ready;
     IsGroup    = phoneEntry.PhoneType == PhoneEntryType.Group;
 }
        public void ThrowArgumentExceptionOnRemovingMissingEntry()
        {
            var newEntry = new PhoneEntry {
                FirstName = "Chuck", LastName = "McGill", PhoneNumber = "15325324"
            };

            Assert.Throws <ArgumentException>(() => {
                _phonebook.RemoveEntryAsync(newEntry);
            });
        }
        public void AddPhoneEntry()
        {
            var newEntry = new PhoneEntry {
                FirstName = "Chuck", LastName = "McGill", PhoneNumber = "15325324"
            };

            _phonebook.AddEntryAsync(newEntry);

            Assert.NotEmpty(_phoneEntries.ListAll());
        }
        public void ThrowArgumentExceptionOnDuplicateInsert()
        {
            var newEntry = new PhoneEntry {
                FirstName = "Chuck", LastName = "McGill", PhoneNumber = "15325324"
            };

            Assert.Throws <ArgumentException>(() => {
                _phonebook.AddEntryAsync(newEntry);
                _phonebook.AddEntryAsync(newEntry);
            });
        }
Example #7
0
        public async Task <PhoneEntry> CreatePhoneEntryAsync(string name, string phoneNumber, int phoneBookId)
        {
            Guard.ThrowIfDefaultOrEmpty(name, "Name");
            Guard.ThrowIfLessThanMinLength(name, "Name", 5);
            Guard.ThrowIfGreaterThanMaxLength(name, "Name", 50);
            Guard.ThrowIfDefaultOrEmpty(phoneNumber, "Phone Number");
            Guard.ThrowIfDefaultValue(phoneBookId, "Phone Book");
            Guard.ThrowIfRegexNotMatch(phoneNumber, "Phone Number", Constants.Constant10DigitPhoneFormat);

            var phoneBook = await _phoneBookService.GetPhoneBookAsync(phoneBookId);

            if (phoneBook == null)
            {
                throw new NotFoundException("Phone book not found");
            }

            var phoneEntry = await GetPhoneEntryByNumberAsync(phoneNumber);

            if (phoneEntry == null)
            {
                phoneEntry = new PhoneEntry
                {
                    Name         = name,
                    PhoneNumber  = phoneNumber.RemoveNonNumericChars(),
                    DateCreated  = _clock.Now,
                    DateModified = _clock.Now,
                };
                await _repository.AddAsync(phoneEntry);
            }
            else
            {
                phoneEntry.Name = name;
            }

            if (phoneEntry.BookEntries.All(p => p.PhoneBookId != phoneBookId))
            {
                phoneEntry.BookEntries.Add(new PhoneBookEntry
                {
                    PhoneBook   = phoneBook,
                    DateCreated = _clock.Now
                });
            }

            await _repository.SaveChangesAsync();

            return(phoneEntry);
        }
        public PhoneEntry[] ListPhoneEntries(int startIndex, int count)
        {
            if (startIndex < 0 || startIndex + count > this.PhoneBookEntries.Count)
            {
                throw new ArgumentOutOfRangeException("Invalid start index or count.");
            }

            this.PhoneBookEntries.Sort();
            PhoneEntry[] listOfPhoneEntries = new PhoneEntry[count];

            for (int i = startIndex; i <= startIndex + count - 1; i++)
            {
                PhoneEntry entry = this.PhoneBookEntries[i];
                listOfPhoneEntries[i - startIndex] = entry;
            }

            return listOfPhoneEntries;
        }
Example #9
0
        public async Task <ActionResult <PhoneEntry> > CreateAsync([FromBody] NewPhoneEntryInput input)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newEntry = new PhoneEntry
            {
                FirstName   = input.FirstName,
                LastName    = input.LastName,
                PhoneNumber = input.PhoneNumber
            };

            await _phonebookManager.AddEntryAsync(newEntry);

            return(CreatedAtAction(nameof(GetByIdAsync),
                                   new { id = newEntry.PhoneNumber }, newEntry));
        }
        private static void AddEntry()
        {
            PhoneEntry entry = book.GetEntryByPage(book.AddEntry());

            Console.Write("Page " + entry.PageNumber + "\nLast Name: ");
            entry.LastName = Console.ReadLine();
            Console.Write("First Name: ");
            entry.FirstName = Console.ReadLine();
            Console.Write("Patronymic: ");
            entry.Patronymic = Console.ReadLine();
            bool success;

            do
            {
                Console.Write("Phone: ");
                success = entry.SetPhone(Console.ReadLine());
                if (!success)
                {
                    Console.WriteLine("Phone isn't correct. Try again.");
                }
            } while (!success);
            Console.Write("Country: ");
            entry.Country = Console.ReadLine();
            do
            {
                Console.Write("Birthday: ");
                success = entry.SetBirthdayString(Console.ReadLine());
                if (!success)
                {
                    Console.WriteLine("Phone isn't correct. Try again.");
                }
            } while (!success);
            Console.Write("Company: ");
            entry.Company = Console.ReadLine();
            Console.Write("Position: ");
            entry.Position = Console.ReadLine();
            Console.Write("Notes: ");
            entry.Notes = Console.ReadLine();
            Console.ReadKey(true);
        }
Example #11
0
        public async Task EditPhoneEntryAsync(PhoneEntry phoneEntry)
        {
            Guard.ThrowIfDefaultOrEmpty(phoneEntry.Name, nameof(phoneEntry.Name));
            Guard.ThrowIfLessThanMinLength(phoneEntry.Name, nameof(phoneEntry.Name), 5);
            Guard.ThrowIfGreaterThanMaxLength(phoneEntry.Name, nameof(phoneEntry.Name), 50);
            Guard.ThrowIfDefaultOrEmpty(phoneEntry.PhoneNumber, "Phone Number");
            Guard.ThrowIfRegexNotMatch(phoneEntry.PhoneNumber, "Phone Number", Constants.Constant10DigitPhoneFormat);

            var entity = await GetPhoneEntryAsync(phoneEntry.Id);

            if (entity == null)
            {
                throw new NotFoundException("Phone entry not found");
            }

            entity.Name         = phoneEntry.Name;
            entity.PhoneNumber  = phoneEntry.PhoneNumber.RemoveNonNumericChars();
            entity.DateModified = _clock.Now;

            _repository.Update(entity);
            await _repository.SaveChangesAsync();
        }
        public bool AddPhone(string name, IEnumerable <string> phoneNumbers)
        {
            var old = from e in this.entries
                      where e.Name.ToLowerInvariant() == name.ToLowerInvariant()
                      select e;

            bool flag;

            if (old.Count() == 0)
            {
                var obj = new PhoneEntry(name);

                foreach (var num in phoneNumbers)
                {
                    obj.PhoneNumbers.Add(num);
                }

                this.entries.Add(obj);

                flag = true;
            }
            else if (old.Count() == 1)
            {
                IPhoneEntry obj2 = old.First();
                foreach (var num in phoneNumbers)
                {
                    obj2.PhoneNumbers.Add(num);
                }

                flag = false;
            }
            else
            {
                Console.WriteLine("Duplicated name in the phonebook found: " + name);
                return(false);
            }

            return(flag);
        }
        public bool AddPhone(string name, IEnumerable<string> listOfNumbers)
        {
            var listWithOldNumbers = from e in this.PhoneBookEntries
                                     where e.Name.ToLowerInvariant() == name.ToLowerInvariant()
                                     select e;

            bool isNumberFound = false;
            PhoneEntry phoneEntry;
            var distinctItems = listOfNumbers.Distinct();

            // bottleneck 
            if (listWithOldNumbers.Count() == 0)
            {
                phoneEntry = new PhoneEntry();
                phoneEntry.Name = name;
                phoneEntry.ListOfNumbers = new SortedSet<string>();

                foreach (var number in distinctItems)
                {
                    phoneEntry.ListOfNumbers.Add(number);
                }

                this.PhoneBookEntries.Add(phoneEntry);

                isNumberFound = true;
            }
            else if (listWithOldNumbers.Count() == 1)
            {
                phoneEntry = listWithOldNumbers.First();
                foreach (var number in distinctItems)
                {
                    phoneEntry.ListOfNumbers.Add(number);
                }

                isNumberFound = false;
            }

            return isNumberFound;
        }
        public bool AddPhone(string name, IEnumerable<string> phoneNumbers)
        {
            string caseInsensitiveName = name.ToLowerInvariant();
            PhoneEntry entry;
            bool isNotExistingNumber = !this.caseInsensitiveKeyName.TryGetValue(caseInsensitiveName, out entry);
            if (isNotExistingNumber)
            {
                entry = new PhoneEntry();
                entry.Name = name;
                entry.numbers = new HashSet<string>();
                this.caseInsensitiveKeyName.Add(caseInsensitiveName, entry);

                this.phoneEntrySorted.Add(entry);
            }

            foreach (var number in phoneNumbers)
            {
                this.keyNumberValueEntry.Add(number, entry);
            }

            entry.numbers.UnionWith(phoneNumbers);
            return isNotExistingNumber;
        }
Example #15
0
            public Info(Service service, TabbedPage tabs, Verify verify)
            {
                _phoneNumberContainer = new StackLayout();
                _phoneNumberContainer.Orientation = StackOrientation.Horizontal;
                _phoneNumberContainer.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumber = new PhoneEntry();
                _phoneNumber.Placeholder = Localize.GetString("TelegramPhoneNumber");
                _phoneNumber.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumberContainer.Children.Add(_phoneNumber);
                var programmaticChange = false;

                _firstName = new Entry();
                _firstName.Placeholder = Localize.GetString("TelegramFirstName");

                _lastName = new Entry();
                _lastName.Placeholder = Localize.GetString("TelegramLastName");

                _loadConversationsLayout = new StackLayout();
                _loadConversationsLayout.Orientation = StackOrientation.Horizontal;
                _loadConversationsLayout.HorizontalOptions = LayoutOptions.End;
                _loadConversationsLayout.Padding = new Thickness(15, 0);
                _loadConversationsLayout.Spacing = 10;

                _loadConversationsTitle = new Label();
                _loadConversationsTitle.Text = Localize.GetString("TelegramLoadConversations");
                _loadConversationsSwitch = new Switch();
                _loadConversationsSwitch.Toggled += (sender, e) =>
                {
                    (service as Telegram).LoadConversations = e.Value;
                };
                _loadConversationsSwitch.IsToggled = true;
                _loadConversationsLayout.Children.Add(_loadConversationsTitle);
                _loadConversationsLayout.Children.Add(_loadConversationsSwitch);

                _next = new Button();
                _next.HorizontalOptions = LayoutOptions.FillAndExpand;
                _next.Text = Localize.GetString("TelegramNext");
                _next.TextColor = Color.White;
                _next.BackgroundColor = Color.FromHex("77D065");
                _next.Clicked += async (sender, e) =>
                    {
                        if (String.IsNullOrWhiteSpace(_firstName.Text))
                        {
                            await DisplayAlert(Localize.GetString("TelegramInvalidFirstNameTitle"), Localize.GetString("TelegramInvalidFirstNameMessage"), Localize.GetString("TelegramOkay"));
                            return;
                        }

                        if (String.IsNullOrWhiteSpace(_lastName.Text))
                        {
                            await DisplayAlert(Localize.GetString("TelegramInvalidLastNameTitle"), Localize.GetString("TelegramInvalidLastNameMessage"), Localize.GetString("TelegramOkay"));
                            return;
                        }

                        Func<Task> invalidNumber = () =>
                            {
                                return DisplayAlert(Localize.GetString("TelegramInvalidNumberTitle"),
                                    Localize.GetString("TelegramInvalidNumberMessage"), Localize.GetString("TelegramOkay"));
                            };

                        if (!PhoneBook.IsPossibleNumber(_phoneNumber.Text))
                        {
                            await invalidNumber();
                            return;
                        }

                        var number = PhoneBook.TryGetPhoneNumberLegible(_phoneNumber.Text);
                        var formattedNumber = PhoneBook.FormatPhoneNumber(number);

                        if (formattedNumber == null)
                        {
                            await invalidNumber();
                            return;
                        }

                        var nationalNumber = new string(formattedNumber.Item2.Where(Char.IsDigit).ToArray());

                        if (!await DisplayAlert(Localize.GetString("TelegramConfirmNumberTitle"),
                            Localize.GetString("TelegramConfirmNumberMessage").Replace("[number]", number),
                            Localize.GetString("TelegramYes"),
                            Localize.GetString("TelegramNo")))
                        {
                            return;
                        }

                        _progressBar.IsVisible = true;
                        _next.IsEnabled = false;
                        _firstName.IsEnabled = false;
                        _lastName.IsEnabled = false;
                        _phoneNumber.IsEnabled = false;
                        DependencyService.Get<IPluginPageControls>().BackPressEnabled = false;

                        TelegramSettings settings = null;

                        var skipSave = false;
                        var state = _settings.States.FirstOrDefault(x => x.NationalNumber == nationalNumber);
                        if (state != null && state.Settings != null)
                        {
                            skipSave = true;
                            settings = state.Settings;
                        }
                        else
                        {
                            settings = await Task<TelegramSettings>.Factory.StartNew(() => { return Telegram.GenerateAuthentication(service); });
                        }

                        var firstName = _firstName.Text.Trim();
                        var lastName = _lastName.Text.Trim();

                        DependencyService.Get<IPluginPageControls>().BackPressEnabled = true;
                        _firstName.IsEnabled = true;
                        _lastName.IsEnabled = true;
                        _phoneNumber.IsEnabled = true;
                        _next.IsEnabled = true;
                        _progressBar.IsVisible = false;

                        if (settings == null)
                        {
                            await DisplayAlert(Localize.GetString("TelegramAuthGenerationFailedTitle"),
                                Localize.GetString("TelegramAuthGenerationFailedMessage"), Localize.GetString("TelegramOkay"));
                            return;
                        }

                        if (!skipSave)
                        {
                            _settings.States.Add(new Setup.TelegramSetupSettings.State
                                {
                                    Settings = settings,
                                    NationalNumber = nationalNumber
                                });
                            SaveSettings();
                        }

                        verify.CountryCode = formattedNumber.Item1;
                        verify.NationalNumber = nationalNumber;
                        verify.FirstName = firstName;
                        verify.LastName = lastName;
                        tabs.Children.Add(verify);
                        tabs.CurrentPage = verify;
                    };

                _image = new Image();
                _image.Source = ImageSource.FromUri(
                    new Uri("https://lh4.ggpht.com/fuvTtxbZ1-dkEmzUMfKcgMJwW8PyY4fhJJ_NKT-NpIQJukszEY2GfCkJUF5ch6Co3w=w300"));
                _image.WidthRequest = 100;
                _image.HeightRequest = 100;

                _progressBar = new ActivityIndicator();
                _progressBar.VerticalOptions = LayoutOptions.EndAndExpand;
                _progressBar.IsRunning = true;
                _progressBar.IsVisible = false;

                var stackLayout = new StackLayout();
                stackLayout.Spacing = 20;
                stackLayout.Padding = 25;
                stackLayout.VerticalOptions = LayoutOptions.Start;
                var children = stackLayout.Children;
                children.Add(_image);
                children.Add(_firstName);
                children.Add(_lastName);
                children.Add(_phoneNumberContainer);
                children.Add(_loadConversationsLayout);
                var nextLayout = new StackLayout();
                nextLayout.Spacing = 20;
                nextLayout.Orientation = StackOrientation.Horizontal;
                nextLayout.Children.Add(_next);
                nextLayout.Children.Add(_progressBar);
                children.Add(nextLayout);

                Content = new ScrollView { Content = stackLayout };
                Title = Localize.GetString("TelegramInformationTitle");
            }
Example #16
0
            public Info(Service service, TabbedPage tabs, Verify verify)
            {
                _phoneNumberContainer                   = new StackLayout();
                _phoneNumberContainer.Orientation       = StackOrientation.Horizontal;
                _phoneNumberContainer.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumber                   = new PhoneEntry();
                _phoneNumber.Placeholder       = Localize.GetString("TelegramPhoneNumber");
                _phoneNumber.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumberContainer.Children.Add(_phoneNumber);
                var programmaticChange = false;

                _firstName             = new Entry();
                _firstName.Placeholder = Localize.GetString("TelegramFirstName");

                _lastName             = new Entry();
                _lastName.Placeholder = Localize.GetString("TelegramLastName");

                _loadConversations                 = new CheckBox();
                _loadConversations.DefaultText     = Localize.GetString("TelegramLoadConversations");
                _loadConversations.CheckedChanged += (sender, e) =>
                {
                    //TODO:
                };
                _loadConversations.Checked = true;

                _next = new Button();
                _next.HorizontalOptions = LayoutOptions.FillAndExpand;
                _next.Text            = Localize.GetString("TelegramNext");
                _next.TextColor       = Color.White;
                _next.BackgroundColor = Color.FromHex("77D065");
                _next.Clicked        += async(sender, e) =>
                {
                    if (String.IsNullOrWhiteSpace(_firstName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidFirstNameTitle"), Localize.GetString("TelegramInvalidFirstNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (String.IsNullOrWhiteSpace(_lastName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidLastNameTitle"), Localize.GetString("TelegramInvalidLastNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    Func <Task> invalidNumber = () =>
                    {
                        return(DisplayAlert(Localize.GetString("TelegramInvalidNumberTitle"),
                                            Localize.GetString("TelegramInvalidNumberMessage"), Localize.GetString("TelegramOkay")));
                    };

                    if (!PhoneBook.IsPossibleNumber(_phoneNumber.Text))
                    {
                        await invalidNumber();

                        return;
                    }

                    var number          = PhoneBook.TryGetPhoneNumberLegible(_phoneNumber.Text);
                    var formattedNumber = PhoneBook.FormatPhoneNumber(number);

                    if (formattedNumber == null)
                    {
                        await invalidNumber();

                        return;
                    }

                    var nationalNumber = new string(formattedNumber.Item2.Where(Char.IsDigit).ToArray());

                    if (!await DisplayAlert(Localize.GetString("TelegramConfirmNumberTitle"),
                                            Localize.GetString("TelegramConfirmNumberMessage").Replace("[number]", number),
                                            Localize.GetString("TelegramYes"),
                                            Localize.GetString("TelegramNo")))
                    {
                        return;
                    }

                    _progressBar.IsVisible = true;
                    _next.IsEnabled        = false;
                    _firstName.IsEnabled   = false;
                    _lastName.IsEnabled    = false;
                    _phoneNumber.IsEnabled = false;
                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = false;

                    TelegramSettings settings = null;

                    var skipSave = false;
                    var state    = _settings.States.FirstOrDefault(x => x.NationalNumber == nationalNumber);
                    if (state != null && state.Settings != null)
                    {
                        skipSave = true;
                        settings = state.Settings;
                    }
                    else
                    {
                        settings = await Task <TelegramSettings> .Factory.StartNew(() => { return(Telegram.GenerateAuthentication(service)); });
                    }

                    var firstName = _firstName.Text.Trim();
                    var lastName  = _lastName.Text.Trim();

                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = true;
                    _firstName.IsEnabled   = true;
                    _lastName.IsEnabled    = true;
                    _phoneNumber.IsEnabled = true;
                    _next.IsEnabled        = true;
                    _progressBar.IsVisible = false;

                    if (settings == null)
                    {
                        await DisplayAlert(Localize.GetString("TelegramAuthGenerationFailedTitle"),
                                           Localize.GetString("TelegramAuthGenerationFailedMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (!skipSave)
                    {
                        _settings.States.Add(new Setup.TelegramSetupSettings.State
                        {
                            Settings       = settings,
                            NationalNumber = nationalNumber
                        });
                        SaveSettings();
                    }

                    verify.CountryCode    = formattedNumber.Item1;
                    verify.NationalNumber = nationalNumber;
                    verify.FirstName      = firstName;
                    verify.LastName       = lastName;
                    tabs.Children.Add(verify);
                    tabs.CurrentPage = verify;
                };

                _image        = new Image();
                _image.Source = ImageSource.FromUri(
                    new Uri("https://lh4.ggpht.com/fuvTtxbZ1-dkEmzUMfKcgMJwW8PyY4fhJJ_NKT-NpIQJukszEY2GfCkJUF5ch6Co3w=w300"));
                _image.WidthRequest  = 100;
                _image.HeightRequest = 100;

                _progressBar = new ActivityIndicator();
                _progressBar.VerticalOptions = LayoutOptions.EndAndExpand;
                _progressBar.IsRunning       = true;
                _progressBar.IsVisible       = false;

                var stackLayout = new StackLayout();

                stackLayout.Spacing         = 20;
                stackLayout.Padding         = 25;
                stackLayout.VerticalOptions = LayoutOptions.Start;
                var children = stackLayout.Children;

                children.Add(_image);
                children.Add(_firstName);
                children.Add(_lastName);
                children.Add(_phoneNumberContainer);
                children.Add(_loadConversations);
                var nextLayout = new StackLayout();

                nextLayout.Spacing     = 20;
                nextLayout.Orientation = StackOrientation.Horizontal;
                nextLayout.Children.Add(_next);
                nextLayout.Children.Add(_progressBar);
                children.Add(nextLayout);

                Content = new ScrollView {
                    Content = stackLayout
                };
                Title = Localize.GetString("TelegramInformationTitle");
            }
        public PhoneEntry[] ListEntries(int startPositon, int count)
        {
            if (startPositon < 0 || startPositon + count > this.caseInsensitiveKeyName.Count)
            {
                return null;
            }

            PhoneEntry[] list = new PhoneEntry[count];
            for (int i = startPositon; i <= startPositon + count - 1; i++)
            {
                PhoneEntry entry = this.phoneEntrySorted[i];
                list[i - startPositon] = entry;
            }

            return list;
        }
        private static void ChangeEntry()
        {
            if (IsEmpty())
            {
                return;
            }
            bool success = false;
            int  page    = 0;

            do
            {
                Console.Write("Number of the page: ");
                try
                {
                    page = Convert.ToInt32(Console.ReadLine());
                    if (book.GetEntryByPage(page) == null)
                    {
                        success = false;
                        Console.WriteLine("There is not such page in Phone Book. Try again.");
                    }
                    else
                    {
                        success = true;
                    }
                }
                catch (Exception ex)
                {
                    success = false;
                    Console.WriteLine("Page number is not correct. Try again.");
                }
            } while (!success);
            PhoneEntry entry = book.GetEntryByPage(page);

            Console.Write("Last Name:\n" + entry.LastName);
            entry.LastName = EditString(entry.LastName);
            Console.Write("First Name:\n" + entry.FirstName);
            entry.FirstName = EditString(entry.FirstName);
            Console.Write("Patronymic:\n" + entry.Patronymic);
            entry.Patronymic = EditString(entry.Patronymic);
            do
            {
                Console.Write("Phone:\n" + entry.GetPhone());
                success = entry.SetPhone(EditString(entry.GetPhone()));
                if (!success)
                {
                    Console.WriteLine("Phone isn't correct. Try again.");
                }
            } while (!success);
            Console.Write("Country:\n" + entry.Country);
            entry.Country = EditString(entry.Country);
            do
            {
                Console.Write("Birthday:\n" + entry.GetBirthdayString());
                success = entry.SetBirthdayString(EditString(entry.GetBirthdayString()));
                if (!success)
                {
                    Console.WriteLine("Phone isn't correct. Try again.");
                }
            } while (!success);
            Console.Write("Company:\n" + entry.Company);
            entry.Company = EditString(entry.Company);
            Console.Write("Position:\n" + entry.Position);
            entry.Position = EditString(entry.Position);
            Console.Write("Notes:\n" + entry.Notes);
            entry.Notes = EditString(entry.Notes);

            Console.ReadKey(true);
        }
Example #19
0
        public MainPage()
        {
            InitializeComponent();

            PhoneEntry.On <Android>().SetAutofillHint(AutofillHintType.Phone);
        }
 /// <summary>
 /// Makes a list of all the enties that are in the phonebook 
 /// </summary>
 /// <param name="startIndex"></param>
 /// <param name="numberOfEntriesToList"></param>
 /// <returns>An array of PhoneEntries</returns>
 public PhoneEntry[] ListEntries(int startIndex, int numberOfEntriesToList)
 {
     int endPosition = startIndex + numberOfEntriesToList;
     bool isOutOfEndRange = (endPosition) > this.phoneEntries.Count;
     if (startIndex < 0 || isOutOfEndRange)
     {
         throw new ArgumentOutOfRangeException("Invalid start index or count.");
     }
     this.phoneEntries.Sort();
     PhoneEntry[] listOfEntries = new PhoneEntry[numberOfEntriesToList];
     for (int i = startIndex; i <= endPosition - 1; i++)
     {
         listOfEntries[i - startIndex] = this.phoneEntries[i];
     }
     return listOfEntries;
 }
 public Task RemoveAsync(PhoneEntry phoneEntry)
 {
     _dbContext.PhoneEntries.Remove(phoneEntry);
     return(_dbContext.SaveChangesAsync());
 }
 public Task AddAsync(PhoneEntry phoneEntry)
 {
     _dbContext.AddAsync(phoneEntry);
     return(_dbContext.SaveChangesAsync());
 }