コード例 #1
0
        public UserListForm(User user, DataTable users, Database db)
        {
            InitializeComponent();

            this.user = user;
            this.db = db;
            this.dataGridViewList.DataSource = users;
        }
コード例 #2
0
        public ProfileForm(User user)
        {
            InitializeComponent();

            this.User = user;
            this.textBoxName.Text = this.User.Name;
            this.textBoxMail.Text = Utility.ToString(this.User.Mail);
            this.checkBoxIsDormitory.Checked = this.User.IsDormitory;
            this.panelDormitory.Enabled = this.User.IsDormitory;
            this.textBoxRoomNo.Text = Utility.ToString(this.User.RoomNo);
            this.textBoxPhoneNumber.Text = Utility.ToString(this.User.PhoneNumber);
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: pine/FelicaCashingSystem
        private void ShowUserProfile()
        {
            if (this.user == null) { return; }

            using (var form = new ProfileForm(this.user))
            {
                var result = this.ShowMultiThreadDialog(form);

                if (result == DialogResult.OK)
                {
                    this.user = form.User;
                    this.db.UpdateUser(this.user);
                }
            }
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: pine/FelicaCashingSystem
        private void CardSet(string uid)
        {
            if (InvokeRequired)
            {
                this.cardSetAsync = this.BeginInvoke((MethodInvoker)delegate()
                {
                    this.CardSet(uid);
                });

                return;
            }

            // ユーザーが登録されているか調べる
            this.user = this.db.GetUser(uid);
            this.UpdateGUI(uid);
            this.ShowMainForm();

            // 関連付けを行う
            if (this.associationUid != null && this.user != null)
            {

                // 関連付けの確認を行う
                using (var form = new AssociationCheckForm(this.user.Money, this.user.Name))
                {
                    this.ShowMultiThreadDialog(form);

                    if (form.DialogResult == DialogResult.Yes)
                    {

                        if (this.db.AssociationAdd(this.user.Uid, this.associationUid))
                        {
                            MessageBox.Show("関連付けに成功しました。");

                            this.user = this.db.GetUser(this.associationUid);
                            this.UpdateGUI();
                        }
                        else
                        {
                            MessageBox.Show("関連付けに失敗しました。");
                        }
                    }
                }

                // 関連付けに保持している情報を開放
                this.associationUid = null;
            }

            if (this.user == null)
            {
                this.associationUid = null;

                var register      = new RegisterForm(this.db, uid);
            //                this.modalDialog = register;
                var dialog_result = this.ShowMultiThreadDialog(register);

                if (dialog_result != DialogResult.OK)
                {
                    return;
                }

                // ユーザー登録
                if (this.db.AddUser(uid, register.UserName, register.Mail))
                {
                    // 登録完了メールを送信
                    ThreadPool.QueueUserWorkItem((WaitCallback)delegate(object o)
                    {
                        Mail.RegisterComplete(register.Mail, register.UserName);
                    });
                }

                // ユーザー登録失敗
                else
                {
                    MessageBox.Show("ユーザーの登録に失敗しました。");
                    return;
                }

                this.user = this.db.GetUser(uid);
                this.UpdateGUI();
            }
        }
コード例 #5
0
ファイル: Database.cs プロジェクト: pine/FelicaCashingSystem
        public bool UpdateUser(User user)
        {
            var result = false;

            lock (lockDb)
            {
                using (var conn = this.GetConnection())
                {
                    conn.Open();

                    // name, money, admin, mail, dormitory, phone_number, room
                    int count = this.Update(conn,
                        "UPDATE user " +
                        "SET mail = ?, dormitory = ?, phone_number = ?, room = ? " +
                        "WHERE uid = '" + user.Uid + "';",
                        user.Mail, user.IsDormitory ? 1 : 0, user.PhoneNumber, user.RoomNo
                        );

                    this.CashUserList();

                    if (count == 1)
                    {
                        if (this.AddLog(conn, user.Uid, "UpdateUser", user.Name))
                        {
                            result = true;
                        }
                    }

                    conn.Close();
                }
            }

            return result;
        }
コード例 #6
0
ファイル: Database.cs プロジェクト: pine/FelicaCashingSystem
        public User GetUser(string uid)
        {
            string realUid = uid;
            User user = null;

            // 関連付けが存在するか調べる
            lock (lockInMemoryDb)
            {
                using (
                    var reader = this.Select(this.inMemoryDb,
                        "SELECT parent_uid " +
                        "FROM   bind " +
                        "WHERE  child_uid = '" + uid + "';"
                        )
                    )
                {
                    if (reader.Read())
                    {
                        uid = reader["parent_uid"].ToString();
                    }
                }

                using (
                    var reader = this.Select(this.inMemoryDb,
                        "SELECT name, money, admin, mail, dormitory, phone_number, room " +
                        "FROM user " +
                        "WHERE uid = '" + uid + "';"
                        )
                    )
                {
                    if (reader.Read())
                    {
                        user = new User(
                            uid,
                            realUid,
                            reader["name"].ToString(),
                            reader["money"].ToString(),
                            reader["admin"].ToString(),
                            reader["mail"].ToString(),
                            reader["dormitory"].ToString(),
                            reader["phone_number"].ToString(),
                            reader["room"].ToString()

                            );
                    }
                }
            }

            // ログを追加
            if (user != null)
            {
                this.AddLogAsync(uid, "GetUser", user.Name + "," + user.Money);
            }

            // ユーザーが存在しない場合
            else
            {
                this.AddLogAsync(uid, "GetUser", ",0");
            }

            return user;
        }