async void GetDataAsync()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new getdata(GetDataAsync));
            }
            else
            {
                UserIF user = UserDAO.GetUserfullInfor(userId);
                if (user != null)
                {
                    lbRole.Text       = user.role;
                    txtUserId.Text    = user.userId;
                    avtBox.Image      = user.GetImage();
                    txtFirstName.Text = user.firstName;
                    txtLastNane.Text  = user.lastName;
                    txtMail.Text      = user.mail;
                    txtPhoneNum.Text  = user.phoneNum;
                    List <UserIF> dataMain = new List <UserIF>();
                    data = await UserDAO.UserDataAsync();

                    foreach (var item in data)
                    {
                        dataMain.Add(item);
                    }
                    DataGridEm.DataSource = dataMain;

                    dataBlinding(DataGridEm.DataSource);
                    MessageBox.Show("completed load data!");
                }
            }
        }
        internal void GetData(UserIF data)
        {
            List <UserIF> datalist = (List <UserIF>)DataGridEm.DataSource;

            datalist.Add(data);
            DataGridEm.DataSource = datalist;
            //DataGridEm.Rows.Add(data.userId, data.firstName,data.lastName,data.phoneNum,data.mail,data.role);
            dataBlinding(DataGridEm.DataSource);
        }
        public mainform(string id)
        {
            InitializeComponent();
            Userid = id;
            UserIF o = UserDAO.GetUserfullInfor(id);

            if (o != null)
            {
                welcomLabel.Text = "Welcome " + o.firstName + " " + o.lastName;
                UserAvatar.Image = o.GetImage();
            }
        }
        public static Task <UserIF[]> UserDataAsync()
        {
            DataClasses1DataContext db = new DataClasses1DataContext();

            return(Task.Run <UserIF[]>(() =>
            {
                bool Flag = false;
                while (Flag == false)
                {
                    try
                    {
                        var users = (from table in db.tblUsers select table).ToList();
                        int i = 0;
                        UserIF[] results = new UserIF[users.Count];
                        foreach (var user in users)
                        {
                            UserIF result = new UserIF();
                            result.userId = user.userID;
                            result.firstName = user.firstName;
                            result.lastName = user.lastName;
                            result.phoneNum = user.phoneNumber;
                            result.mail = user.mail;
                            byte[] a = (user.image != null ? user.image.ToArray() : null);
                            result.SetImage(a);
                            tblAccount com = db.tblAccounts.Where(s => s.userID == user.userID).Single();
                            result.role = com.roleName;
                            result.status = (from table in db.tblAccounts where table.userID == user.userID select table.status).Single();
                            results[i] = result;
                            i++;
                        }
                        ;
                        Flag = true;
                        return results;
                    }
                    catch (Exception e)
                    {
                        System.Windows.Forms.MessageBox.Show("wait a minute");
                    }
                }
                return null;
            }));
        }
        private void txtSearch_TextChanged(object sender, EventArgs e)
        {
            List <UserIF> dataSearch = UserDAO.GetUserfullInforByNameLike(txtSearch.Text, data);

            DataGridEm.DataSource = dataSearch;

            if (dataSearch != null)
            {
                UserIF user = dataSearch.ElementAt(0);
                lbRole.Text       = user.role;
                txtUserId.Text    = user.userId;
                txtFirstName.Text = user.firstName;
                txtLastNane.Text  = user.lastName;
                txtMail.Text      = user.mail;
                txtPhoneNum.Text  = user.phoneNum;
                if (user.GetImage() != null)
                {
                    avtBox.Image = user.GetImage();
                }
            }
            dataBlinding(DataGridEm.DataSource);
        }
 public static UserIF GetUserfullInfor(string userid)
 {
     try
     {
         UserIF result = new UserIF();
         DataClasses1DataContext db = new DataClasses1DataContext();
         tblUser user = db.tblUsers.Where(s => s.userID == userid).Single();
         result.userId    = user.userID;
         result.firstName = user.firstName;
         result.lastName  = user.lastName;
         result.phoneNum  = user.phoneNumber;
         result.mail      = user.mail;
         result.SetImage(user.image.ToArray());
         tblAccount com = db.tblAccounts.Where(s => s.userID == userid).Single();
         result.role = com.roleName;
         db.Dispose();
         return(result);
     }
     catch (Exception e) {
         return(null);
     }
 }