예제 #1
0
        public void Init()
        {
            using (var session = SessionManager.BuildSessionFactory().OpenSession())
            {
                using (var tx = session.BeginTransaction())
                {
                    IRepository repository = new NHibernateRepository(session);

                    var admin = repository.Query<User>()
                        .FirstOrDefault(u => u.Username == "admin") ?? new User();

                    admin.Username = "******";
                    admin.Password = "******";
                    admin.Email = "*****@*****.**";
                    admin.Role = "admin";

                    repository.Save(admin);

                    var anon = repository.Query<User>()
                        .FirstOrDefault(u => u.Username == "anonymous") ?? new User();

                    anon.Username = "******";
                    anon.Password = "";
                    anon.Role = "user";

                    repository.Save(anon);

                    tx.Commit();
                }

                session.Close();
            }
        }
예제 #2
0
        public void InsertNewItem()
        {
            NHibernateRepository repo = new NHibernateRepository();
            int oldCount = repo.Query <Item>().Count;
            var item2    = new Item()
            {
                asset         = "3143",
                campusCode    = 8,
                description   = "This is a good one",
                bldg          = "332-00445",
                room          = "312B",
                otherLocation = "otherlocation",
                acqDate       = new DateTime(2008, 8, 29),
                totalCost     = Convert.ToDecimal(330044.04),
                Model         = "Model",
                serialNumber  = "FFF00000422",
                isDelete      = false,
                comments      = "comments",
            };
            IList <Staff> st = repo.Query <Staff>();

            item2.Staffs = st[0];
            repo.SaveOrUpdate(item2);

            Assert.AreEqual(repo.Query <Item>().Count, oldCount + 1);
        }
예제 #3
0
        public void Init()
        {
            using (var session = SessionManager.BuildSessionFactory().OpenSession())
            {
                using (var tx = session.BeginTransaction())
                {
                    IRepository repository = new NHibernateRepository(session);

                    var admin = repository.Query <User>()
                                .FirstOrDefault(u => u.Username == "admin") ?? new User();

                    admin.Username = "******";
                    admin.Password = "******";
                    admin.Email    = "*****@*****.**";
                    admin.Role     = "admin";

                    repository.Save(admin);

                    var anon = repository.Query <User>()
                               .FirstOrDefault(u => u.Username == "anonymous") ?? new User();

                    anon.Username = "******";
                    anon.Password = "";
                    anon.Role     = "user";

                    repository.Save(anon);

                    tx.Commit();
                }

                session.Close();
            }
        }
예제 #4
0
        public void TestBasicQueryableForSession()
        {
            AnEntity ent = AnEntity.CreateSome();

            sut.Save(ent);
            var result = from AnEntity en in sut.Query()
                         where en.Name == ent.Name
                         select en;

            Assert.That(result.Count(), Is.EqualTo(1));
        }
예제 #5
0
        private void ItemView_Load(object sender, EventArgs e)
        {
            if (isAddNew)
            {
                Addbtn.Enabled    = true;
                Updatebtn.Enabled = false;
                IList <Staff> staffs = repo.Query <Staff>();
                staffName = new string[staffs.Count];
                index     = 0;
                for (int i = 0; i < staffs.Count; i++)
                {
                    staffName[i] = staffs[i].lastName + "," + staffs[i].firstName;
                }
                staffcomboBox.DataSource = staffName;

                staffcomboBox.SelectedItem = staffName[index];
                isbinding = true;
            }
            else
            {
                Addbtn.Enabled            = false;
                Updatebtn.Enabled         = true;
                assettextBox.Text         = it.asset;
                campusCodetextBox.Text    = it.campusCode.ToString();
                bldgtextBox.Text          = it.bldg;
                roomtextBox.Text          = it.room;
                dateTimePicker.Value      = it.acqDate;
                costtextBox.Text          = it.totalCost.ToString();
                descriptiontextBox.Text   = it.description;
                modeltextBox.Text         = it.Model;
                otherLocationtextBox.Text = it.otherLocation;
                serialNumbertextBox.Text  = it.serialNumber;
                Staff staff = it.Staffs;

                commentstextBox.Text = it.comments;
                IList <Staff> staffs = repo.Query <Staff>();
                staffName = new string[staffs.Count];
                index     = 0;
                for (int i = 0; i < staffs.Count; i++)
                {
                    staffName[i] = staffs[i].lastName + "," + staffs[i].firstName;
                    if (staffs[i].firstName == it.Staffs.firstName && staffs[i].lastName == it.Staffs.lastName)
                    {
                        index = i;
                    }
                }
                staffcomboBox.DataSource = staffName;

                staffcomboBox.SelectedItem = staffName[index];
                isbinding = true;
                //staffcomboBox.ValueMember = it.Staffs.firstName + "," + it.Staffs.lastName;
            }
        }
예제 #6
0
        public void Update()
        {
            NHibernateRepository repo = new NHibernateRepository();
            IList <Staff>        st   = repo.Query <Staff>();

            st[0].groupCode = "1345655";
            repo.Update(st[0]);
            int id = st[0].staffID;


            Assert.AreEqual("13456", repo.Query <Staff>()[0].groupCode);
        }
예제 #7
0
        public void QueryByCriteria()
        {
            NHibernateRepository repo = new NHibernateRepository();
            var staffs = repo.Query <Staff>(Expression.Eq("staffID", 54));

            Assert.AreEqual(1, staffs.Count);
        }
예제 #8
0
        private void InventoryPage_Load(object sender, EventArgs e)
        {
            if (!user.IsAuthorized)
            {
                addBtn.Enabled     = false;
                deleteBtn.Enabled  = false;
                editBtn.Enabled    = false;
                userAddBtn.Enabled = false;

                clearCheckedBtn.Enabled = false;
                backupBtn.Enabled       = false;
            }
            NHibernateRepository repo = new NHibernateRepository();

            if (tabControl.SelectedTab == tabControl.TabPages[0])
            {
                showAllItems(repo);
            }
            editBtn.Enabled = false;
            IList <Staff> staffs = repo.Query <Staff>();

            string[] staffName = new string[staffs.Count];

            for (int i = 0; i < staffs.Count; i++)
            {
                staffName[i] = staffs[i].lastName + "," + staffs[i].firstName;
            }
            staffcomboBox.DataSource = staffName;
        }
예제 #9
0
        private void AddBtn_Click(object sender, EventArgs e)
        {
            NHibernateRepository repo = new NHibernateRepository();

            if (passwordtextBox.Text != confirmPasswordtextBox.Text)
            {
                MessageBox.Show("Please enter the same passord");
                return;
            }
            if (userNametextBox.Text != "")
            {
                var users = repo.Query <User>(Expression.Eq("Name", userNametextBox.Text));
                if (users.Count > 0)
                {
                    MessageBox.Show("This user has already existed!");
                    return;
                }
                else
                {
                    var newUser = new User
                    {
                        Name         = userNametextBox.Text,
                        Password     = passwordtextBox.Text,
                        IsAuthorized = authorizedcheckBox.Checked
                    };
                    repo.Save(newUser);
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                    return;
                }
            }
        }
예제 #10
0
        public void showAllItems(NHibernateRepository repo)
        {
            IList <Item> items = null;

            if (expressions.Count > 0)
            {
                IList <ICriterion> localExpressions = new List <ICriterion>(expressions);
                items = repo.Query <Item>(localExpressions.ToArray());
            }
            else
            {
                items = repo.Query <Item>(Expression.Eq("isDelete", false));
            }

            List <Object> showedItems = new List <Object>();
            Image         smallImage  = Image.FromFile("./Resources/img_icon.png");
            var           pic         = ImageToByteArray(smallImage);

            for (int i = 0; i < items.Count; ++i)
            {
                Item item = items[i];
                if (item.isDelete)
                {
                    continue;
                }
                showedItems.Add(new ViewItem
                {
                    IsChecked     = item.isChecked,
                    Asset         = item.asset,
                    Building      = item.bldg,
                    Room          = item.room,
                    SerialNumber  = item.serialNumber,
                    CampusCode    = item.campusCode,
                    Description   = item.description,
                    TotalCost     = item.totalCost,
                    OtherLocation = item.otherLocation,
                    Model         = item.Model,
                    Picture       = pic
                });
            }

            this.curItems = showedItems;
            showPage(0);
            //itemsDataGridView.DataSource = showedItems;
            return;
        }
예제 #11
0
        private void Addbtn_Click(object sender, EventArgs e)
        {
            Staff newStaff = new Staff();

            if (firstNametextBox.Text != "" && lastNametextBox.Text != "" && groupCodetextBox.Text != "")
            {
                ICriterion    criterion = Expression.Eq("groupCode", groupCodetextBox.Text);
                IList <Staff> testExistSameGroupCode = repo.Query <Staff>(criterion);
                if (testExistSameGroupCode.Count == 0)
                {
                    newStaff.firstName = firstNametextBox.Text;
                    newStaff.lastName  = lastNametextBox.Text;
                    newStaff.groupCode = groupCodetextBox.Text;
                }
                else
                {
                    MessageBox.Show("this groupCode is used, you can't use this groupCode");
                    return;
                }
            }
            else
            {
                MessageBox.Show("Please check what you entered!");
                return;
            }
            //do we need to check format???????????
            if (phonetextBox.Text != "")
            {
                newStaff.phone = phonetextBox.Text;
            }
            if (emailtextBox.Text != "")
            {
                newStaff.email = emailtextBox.Text;
            }
            if (locationtextBox.Text != "")
            {
                newStaff.location = locationtextBox.Text;
            }

            repo.SaveOrUpdate(newStaff);
            this.DialogResult = DialogResult.OK;
            this.Close();
            return;
        }
예제 #12
0
        public void QueryUser()
        {
            var repo  = new NHibernateRepository();
            var users = repo.Query <User>(Expression.Eq("Name", "admin"));

            Assert.AreEqual(0, users.Count);
            User u = new User()
            {
                Name = "admin", Password = "******"
            };

            repo.Save(u);
        }
예제 #13
0
        private static LMConnect.Key.User OnValidationDelegate(string userName, string password)
        {
            using (ISession session = MvcApplication.SessionFactory.OpenSession())
            {
                var repo = new NHibernateRepository(session);
                var user = repo.Query<LMConnect.Key.User>()
                    .FirstOrDefault(u => u.Username == userName && u.Password == password);

                session.Close();

                return user;
            }
        }
예제 #14
0
        private static LMConnect.Key.User OnValidationDelegate(string userName, string password)
        {
            using (ISession session = MvcApplication.SessionFactory.OpenSession())
            {
                var repo = new NHibernateRepository(session);
                var user = repo.Query <LMConnect.Key.User>()
                           .FirstOrDefault(u => u.Username == userName && u.Password == password);

                session.Close();

                return(user);
            }
        }
예제 #15
0
        private IEnumerable <User> GetData()
        {
            User[] users;

            using (var sourceSession = SessionManager.BuildSessionFactory().OpenSession())
            {
                IRepository repository = new NHibernateRepository(sourceSession);

                users = repository.Query <User>().ToArray();

                sourceSession.Close();
            }

            return(users);
        }
예제 #16
0
 private void userNametextBox_TextChanged(object sender, EventArgs e)
 {
     if (!isAddNewUser && isLoad)
     {
         NHibernateRepository repo = new NHibernateRepository();
         var users = repo.Query <User>(Expression.Eq("Name", userNametextBox.Text));
         if (users.Count != 0)
         {
             MessageBox.Show("This username has already existed!");
             return;
         }
         else
         {
             user.Name = userNametextBox.Text;
         }
     }
 }
예제 #17
0
        public void showAllStaffs(NHibernateRepository repo)
        {
            var staffs       = repo.Query <Staff>();
            var showedStaffs = from staff in staffs
                               let showedStaff = new
            {
                lastname  = staff.lastName,
                firstname = staff.firstName,
                groupcode = staff.groupCode,
                email     = staff.email,
                phone     = staff.phone,
                location  = staff.location
            }
            select showedStaff;

            staffDataGridView.DataSource = showedStaffs.ToList();
            return;
        }
예제 #18
0
        public void TestConnection()
        {
            var staff = new Staff()
            {
                groupCode = "GroupCode",
                lastName  = "11Hello",
                firstName = "22World",
                email     = "*****@*****.**",
                phone     = "979979979",
                location  = "HRBBf"
            };

            NHibernateRepository repo = new NHibernateRepository();

            //repo.DeleteByQuery("from Staff s");
            repo.SaveOrUpdate(staff);
            Assert.AreEqual(repo.Query <Staff>().Count, 1);
        }
예제 #19
0
        private bool validateUser(String userName, String password)
        {
            //if (userName == "admin" && password =="admin")
            //    return true;
            //else
            //    return false;
            var repo  = new NHibernateRepository();
            var users = repo.Query <User>(Expression.Eq("Name", userName));

            if (1 != users.Count)
            {
                return(false);
            }
            if (users[0].Password != password)
            {
                return(false);
            }
            return(true);
        }
예제 #20
0
        private void LoginBtn_Click(object sender, EventArgs e)
        {
            var repo = new NHibernateRepository();

            ICriterion[] expressions = new ICriterion[2];
            expressions[0] = Expression.Eq("Name", userNameTextbox.Text);
            expressions[1] = Expression.Eq("Password", pwdTextbox.Text);
            var users = repo.Query <User>(expressions);

            if (users.Count != 1)
            {
                CCWin.MessageBoxEx.Show("Username/password is incorrect!", "Error", MessageBoxButtons.OK);
                return;
            }

            user = users[0];
            this.DialogResult = DialogResult.OK;

            this.Close();
            //InventoryPage inventoryPage = new InventoryPage();
            //inventoryPage.Show();

            return;
        }
예제 #21
0
        private void searchBtn_Click(object sender, EventArgs e)
        {
            // NHibernateRepository repo = new NHibernateRepository();

            if (tabControl.SelectedTab == tabControl.TabPages[0])
            {
                string name = staffcomboBox.SelectedItem.ToString();
                expressions = new List <ICriterion>();
                if (name != "All,")
                {
                    char[] ch = new char[name.Length];
                    ch = name.ToCharArray();
                    int i;
                    for (i = 0; i < name.Length; i++)
                    {
                        if (ch[i] == ',')
                        {
                            break;
                        }
                    }
                    string lastName  = name.Substring(0, i);
                    string firstName = name.Substring(i + 1, name.Length - i - 1);
                    var    staffs    = repo.Query <Staff>(Expression.Eq("staffID", -1));
                    if (lastName == "None" && firstName == "None")
                    {
                        expressions.Add(Expression.Eq("Staffs", staffs[0]));
                    }
                    else
                    {
                        expressions.Add(Expression.Like("firstName", "%" + firstName + "%"));
                        expressions.Add(Expression.Like("lastName", "%" + lastName + "%"));
                    }
                }
                if (assettextBox.Text != "")
                {
                    expressions.Add(Expression.Like("asset", "%" + assettextBox.Text + "%"));
                }
                if (buildingtextBox.Text != "")
                {
                    expressions.Add(Expression.Like("bldg", "%" + buildingtextBox.Text + "%"));
                }
                if (roomtextBox.Text != "")
                {
                    expressions.Add(Expression.Like("room", roomtextBox.Text + "%"));
                }
                //if (startdateTimePicker.Value < enddateTimePicker.Value)
                //    expressions.Add(Expression.Between("acqDate", startdateTimePicker.Value, enddateTimePicker.Value));
                expressions.Add(Expression.Eq("isDelete", false));

                var           items       = repo.Query <Item>(expressions.ToArray());
                List <Object> showedItems = new List <Object>();
                Image         smallImage  = Image.FromFile("./Resources/img_icon.png");
                var           pic         = ImageToByteArray(smallImage);
                for (int i = 0; i < items.Count; ++i)
                {
                    Item item = items[i];
                    if (item.isDelete)
                    {
                        continue;
                    }

                    showedItems.Add(new ViewItem
                    {
                        IsChecked     = item.isChecked,
                        Asset         = item.asset,
                        Building      = item.bldg,
                        Room          = item.room,
                        SerialNumber  = item.serialNumber,
                        CampusCode    = item.campusCode,
                        Description   = item.description,
                        TotalCost     = item.totalCost,
                        OtherLocation = item.otherLocation,
                        Model         = item.Model,
                        Picture       = pic
                    });
                }

                curItems = showedItems;
                showPage(0);
                //itemsDataGridView.DataSource = showedItems.ToList();
                //itemsDataGridView.DataSource = Items.ToList();
            }
            //search staff
            else
            {
                string            name        = staffcomboBox.SelectedItem.ToString();
                List <ICriterion> expressions = new List <ICriterion>();
                if (name != "All,")
                {
                    char[] ch = new char[name.Length];
                    ch = name.ToCharArray();
                    int i;
                    for (i = 0; i < name.Length; i++)
                    {
                        if (ch[i] == ',')
                        {
                            break;
                        }
                    }
                    string lastName  = name.Substring(0, i);
                    string firstName = name.Substring(i + 1, name.Length - i - 1);
                    if (lastName != "None" && firstName != "None")
                    {
                        expressions.Add(Expression.Like("firstName", "%" + firstName + "%"));
                        expressions.Add(Expression.Like("lastName", "%" + lastName + "%"));
                    }
                }

                var staffs       = repo.Query <Staff>(expressions.ToArray());
                var showedStaffs = from staff in staffs
                                   let showedStaff = new
                {
                    lastname  = staff.lastName,
                    firstname = staff.firstName,
                    groupcode = staff.groupCode,
                    email     = staff.email,
                    phone     = staff.phone,
                    location  = staff.location
                }
                select showedStaff;
                staffDataGridView.DataSource = showedStaffs.ToList();
            }
        }
 public void Query_should_start_a_linq_query_on_the_session()
 {
     _repo.Query <User>().ShouldBeOfType <IQueryable <User> >();
 }
예제 #23
0
        public void InsertStaffAndItem()
        {
            var staff1 = new Staff()
            {
                groupCode = "Codde",
                lastName  = "22shi",
                firstName = "11wei",
                email     = "*****@*****.**",
                phone     = "119798989987",
                location  = "1HRBB"
            };

            byte[] bytes = { 201, 209 };
            var    item1 = new Item()
            {
                asset         = "134410",
                campusCode    = 78,
                description   = "This is a good one",
                bldg          = "02-00445",
                room          = "312B",
                otherLocation = "otherlocation",
                acqDate       = new DateTime(2008, 8, 29),
                totalCost     = Convert.ToDecimal(330044.04),
                Model         = "Model",
                serialNumber  = "FFF00000422",
                groupCode     = staff1.groupCode,
                lastName      = staff1.lastName,
                firstName     = staff1.firstName,
                isDelete      = false,
                comments      = "comments",
                picture       = bytes,
            };
            var item2 = new Item()
            {
                asset         = "3143",
                campusCode    = 18,
                description   = "This is a good one",
                bldg          = "332-00445",
                room          = "312B",
                otherLocation = "otherlocation",
                acqDate       = new DateTime(2008, 8, 29),
                totalCost     = Convert.ToDecimal(330044.04),
                Model         = "Model",
                serialNumber  = "FFF00000422",
                groupCode     = staff1.groupCode,
                lastName      = staff1.lastName,
                firstName     = staff1.firstName,
                isDelete      = false,
                comments      = "comments",
                picture       = bytes,
            };


            //staff1.Items = new HashSet<Item> { item1 };
            item1.Staffs = staff1;
            item2.Staffs = staff1;
            NHibernateRepository repo = new NHibernateRepository();

            //repo.DeleteByQuery("from Item a");
            //object id = repo.Insert(staff1);


            //repo.DeleteByQuery("from Staff s");
            //repo.DeleteByQuery("from Item t");
            repo.SaveOrUpdate(staff1);
            //IList<Staff> st = repo.Query<Staff>();
            //var tt  = st[0];
            repo.SaveOrUpdate(item2);

            //Restrictions.Like("Firstname", "YJing%")
            //InventoryApp.Common.NHibernateRepository.ICriterion criterion = new ICriterion();
            //NHibernate.Criterion.ICriterion expr
            //System.Collections.IList it = repo.QueryBySQL("select * from item,staff where staff.groupCode = item.groupCode ");
            IList <Staff> st = repo.Query <Staff>("from Staff a where a.groupCode = 'Codde' ");

            Assert.AreEqual(repo.Query <Staff>().Count, 1);
        }
예제 #24
0
        private IEnumerable<User> GetData()
        {
            User[] users;

            using (var sourceSession = SessionManager.BuildSessionFactory().OpenSession())
            {
                IRepository repository = new NHibernateRepository(sourceSession);

                users = repository.Query<User>().ToArray();

                sourceSession.Close();
            }

            return users;
        }