/// <summary>
        ///  Edit an object from the list after been deserialized and write the new list to a binary file.
        /// <typeparam name="bool">The boolean type if an objected is edited from the list and the new list is written to a file with the new edited object function will return true</typeparam>
        /// </summary>
        /// <param name="entry">The PhoneEntryModel instance object.</param>
        /// <returns>boolean value true if the entry passed as parameter is edited from the file and false if the entry with that id doesnt exists in the file.</returns>
        public bool Edit(PhoneEntryModel entry)
        {
            lock (_sysObject)
            {
                var phoneEntries = GetAll().ToList();

                if (entry == null)
                {
                    throw new ArgumentNullException(nameof(entry));
                }

                if (!phoneEntries.Any(x => x.Id == entry.Id))
                {
                    return(false);
                }

                for (int i = 0; i < phoneEntries.Count; i++)
                {
                    if (phoneEntries[i].Id == entry.Id)
                    {
                        phoneEntries[i] = entry;
                        break;
                    }
                }

                WriteToBinaryFile <List <PhoneEntryModel> >(Constants.FilePath, phoneEntries, false);

                return(true);
            }
        }
예제 #2
0
        public void AddEntryNullException()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel();

            model = null;
            Assert.Throws <ArgumentNullException>(() => { throw new ArgumentNullException(); });
        }
예제 #3
0
        public void DeleteEntryFromPhoneBook()
        {
            PhoneEntryModel model = new PhoneEntryModel
            {
                Id          = 1,
                FirstName   = "Kristi",
                LastName    = "Mone",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var binaryFileManager = new BinaryFileManager();
            var result            = binaryFileManager.Delete(model);

            Assert.IsTrue(result && !binaryFileManager.GetAll().Any(x => x.Id == model.Id));
        }
예제 #4
0
        public void EditEntryToPhoneBook()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 3,
                FirstName   = "Endi",
                LastName    = "Koci",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var result = binaryFile.Edit(model);

            Assert.IsTrue(result == true && binaryFile.GetAll().Any(x => x.FirstName.Equals("Endi") && x.LastName.Equals("Koci")));
        }
예제 #5
0
        public void AddEntryToPhoneBook()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Mario",
                LastName    = "Coku",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            binaryFile.Add(model);

            Assert.IsTrue(binaryFile.GetAll().Any(x => x.FirstName.Equals("Mario") && x.LastName.Equals("Coku")));
        }
예제 #6
0
        public void DeleteEntryDifferentId_FromFile()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            var             phoneEntries = binaryFile.GetAll();
            PhoneEntryModel model        = new PhoneEntryModel
            {
                Id          = 7,
                FirstName   = "Orges",
                LastName    = "Kreka",
                PhoneNumber = "+355682323896",
                EntryType   = PhoneEntryType.WORK
            };

            if (!phoneEntries.Any(x => x.Id == model.Id))
            {
                Assert.IsFalse(false);
            }
        }
예제 #7
0
        public void AddEntryToPhoneBookReturnFalse()
        {
            BinaryFileManager binaryFile = new BinaryFileManager();
            PhoneEntryModel   model      = new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Mario",
                LastName    = "Coku",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            };

            var phoneEntries = binaryFile.GetAll();

            if (phoneEntries.Any(x => x.Id == model.Id))
            {
                Assert.IsFalse(false);
            }
        }
        /// <summary>
        /// /// Add an object to the list and write the list to a binary file.
        /// <typeparam name="bool">The boolean type if an objected is added to the list and the list is written to the binary file function will return true</typeparam>
        /// </summary>
        /// <param name="entry">The PhoneEntryModel instance object.</param>
        /// <returns>boolean value true if the entry passed as parameter is added to the file and false if the entry with that id exists in the file.</returns>
        public bool Add(PhoneEntryModel entry)
        {
            lock (_sysObject)
            {
                var phoneEntries = GetAll().ToList();
                if (entry == null)
                {
                    throw new ArgumentNullException(nameof(entry));
                }

                if (phoneEntries.Any(x => x.Id == entry.Id))
                {
                    return(false);
                }

                phoneEntries.Add(entry);
                WriteToBinaryFile <List <PhoneEntryModel> >(Constants.FilePath, phoneEntries, false);

                return(true);
            }
        }
예제 #9
0
        public void AddEntriesAndCheckIfListContainsThem()
        {
            var entry1 = new PhoneEntryModel
            {
                Id          = 1,
                FirstName   = "Kristi",
                LastName    = "Mone",
                PhoneNumber = "+355682456321",
                EntryType   = PhoneEntryType.CELLPHONE
            };

            var entry2 = new PhoneEntryModel
            {
                Id          = 2,
                FirstName   = "Orges",
                LastName    = "Kreka",
                PhoneNumber = "+355696054698",
                EntryType   = PhoneEntryType.WORK
            };

            var entry3 = new PhoneEntryModel
            {
                Id          = 3,
                FirstName   = "Ermal",
                LastName    = "Arapi",
                PhoneNumber = "+35542235205",
                EntryType   = PhoneEntryType.HOME
            };

            BinaryFileManager binaryFile = new BinaryFileManager();

            binaryFile.Add(entry1);
            binaryFile.Add(entry2);
            binaryFile.Add(entry3);

            var result = binaryFile.GetAll();

            Assert.IsTrue(result[0].Equals(entry1) && result[1].Equals(entry2) && result[2].Equals(entry3));
        }