Exemple #1
0
        /// <summary>
        /// Reads the users from the file async
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static async Task <List <User> > GetUsersAsync(string path)
        {
            using (_userEngineAsync.BeginReadFile(path))
            {
                List <Task <User> > tasks   = new List <Task <User> >();
                UsersFactory        factory = new UsersFactory();

                foreach (var i in _userEngineAsync)
                {
                    tasks.Add(Task.Run(() => factory.CreateUser(i.ID, i.FirstName, i.LastName, i.Email, i.Gender, i.Country, i.City, i.Street, i.PhoneNumber)));
                }

                _userEngineAsync.Close();
                return(new List <User>(await Task.WhenAll(tasks)));
            }
        }
Exemple #2
0
        /// <summary>
        /// Adds a new user to the list and opens the editing window to update it's information
        /// </summary>
        private void AddUserToList()
        {
            UsersFactory factory         = new UsersFactory();
            var          usersCollection = new ObservableCollection <User>()
            {
                factory.CreateUser(CalculateID())
            };
            EditUserWindow editUserWindow = new EditUserWindow(usersCollection, true);

            editUserWindow.ShowDialog();

            if ((bool)editUserWindow.DialogResult) //Check if the resault from the window is ture if so add the user to the list
            {
                UserList.Add(editUserWindow.ViewModel.UsersToEdit[0]);
                ChangesToList = true;
            }
        }
Exemple #3
0
        /// <summary>
        /// Gets the user list from a csv file
        /// </summary>
        /// <param name="path">The path to the file</param>
        /// <returns>list of users</returns>
        public static List <User> GetUsers(string path)
        {
            try
            {
                var          records  = _userEngine.ReadFile(path);
                List <User>  userlist = new List <User>();
                UsersFactory factory  = new UsersFactory();

                foreach (UserEngine user in records)
                {
                    userlist.Add(factory.CreateUser(user.ID, user.FirstName, user.LastName, user.Email, user.Gender, user.Country, user.City, user.Street, user.PhoneNumber));
                }

                return(userlist);
            }
            catch (ArgumentException e)
            {
                throw new ArgumentException(e.Message);
            }
        }
Exemple #4
0
        /// <summary>
        /// Method used for opening the edit user dialog used to edit selected items from an observable collection given
        /// </summary>
        /// <param name="obj"></param>
        private void EditUser(IList <object> obj)
        {
            var         factory = new UsersFactory();
            List <User> temp    = new List <User>();

            foreach (var item in obj)
            {
                temp.Add(item as User);
            }

            //Creat copies of the selected items list
            ObservableCollection <User> usersToEdit  = new ObservableCollection <User>(temp.ConvertAll(user => factory.CreateUser(user)));
            ObservableCollection <User> copyForLater = new ObservableCollection <User>(temp.ConvertAll(user => factory.CreateUser(user)));

            EditUserWindow window = new EditUserWindow(usersToEdit, false);

            if (window.ShowDialog() == true)
            {
                foreach (var item in copyForLater)
                {
                    UserList.Remove(item);
                }
                foreach (var item in window.ViewModel.UsersToEdit)
                {
                    UserList.Add(item);
                }

                UserList      = new ObservableCollection <User>(UserList.OrderBy(i => i));         //sort the list in order to place the new user in correct index
                UserListView  = (ListCollectionView)CollectionViewSource.GetDefaultView(UserList); // refresh the collection view to allow sorting and filtering
                ChangesToList = true;
            }
        }