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")));
        }
        public void EditEntryThreadSafety()
        {
            var binaryFileManager = new BinaryFileManager();

            var listOfTasks = new List <Task>();

            var entries = binaryFileManager.GetAll();

            var listOfObjects = new List <PhoneEntryModel>
            {
                new PhoneEntryModel
                {
                    Id          = 3,
                    FirstName   = "Petrit",
                    LastName    = "Lame",
                    PhoneNumber = "+355682624896",
                    EntryType   = PhoneEntryType.CELLPHONE
                }
            };

            foreach (var model in listOfObjects)
            {
                var addTask = new Task <bool>(() => binaryFileManager.Edit(model));
                listOfTasks.Add(addTask);
            }

            listOfTasks.ForEach(x => x.Start());
            Task.WaitAll(listOfTasks.ToArray());

            var tmp = binaryFileManager.GetAll();

            Assert.IsTrue(tmp.Count == entries.Count);

            for (int i = 0; i < tmp.Count; i++)
            {
                Assert.IsTrue(tmp[i].FirstName != entries[i].FirstName);
                break;
            }
        }
        static void Main(string[] args)
        {
            var binaryFileManager = new BinaryFileManager();

            if (!binaryFileManager.CreateFile())
            {
                Console.WriteLine("Gabim gjate krijimit te skedarit");
                return;
            }

            binaryFileManager.Add(new PhoneEntryModel
            {
                Id          = 1,
                FirstName   = "Kristi",
                LastName    = "Mone",
                PhoneNumber = "+355682024896",
                EntryType   = PhoneEntryType.WORK
            });


            binaryFileManager.Add(new PhoneEntryModel
            {
                Id          = 2,
                FirstName   = "Ermal",
                LastName    = "Arapi",
                PhoneNumber = "+355695231205",
                EntryType   = PhoneEntryType.CELLPHONE
            });

            binaryFileManager.Add(new PhoneEntryModel
            {
                Id          = 3,
                FirstName   = "Mario",
                LastName    = "Coku",
                PhoneNumber = "+355692465823",
                EntryType   = PhoneEntryType.CELLPHONE
            });

            binaryFileManager.Add(new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Gerta",
                LastName    = "Mone",
                PhoneNumber = "+35568602345698",
                EntryType   = PhoneEntryType.WORK
            });

            binaryFileManager.Add(new PhoneEntryModel
            {
                Id          = 5,
                FirstName   = "Elektra",
                LastName    = "Myrto",
                PhoneNumber = "+35542236894",
                EntryType   = PhoneEntryType.HOME
            });


            binaryFileManager.Edit(new PhoneEntryModel
            {
                Id          = 4,
                FirstName   = "Endi",
                LastName    = "Koci",
                PhoneNumber = "+35542354693",
                EntryType   = PhoneEntryType.HOME
            });

            binaryFileManager.Delete(new PhoneEntryModel
            {
                Id          = 2,
                FirstName   = "Ermal",
                LastName    = "Arapi",
                PhoneNumber = "+355695231205",
                EntryType   = PhoneEntryType.CELLPHONE
            });


            foreach (var item in binaryFileManager.Iterate(true))
            {
                Console.WriteLine(item);
            }

            foreach (var item in binaryFileManager.Iterate(false))
            {
                Console.WriteLine(item);
            }

            Console.ReadLine();
        }