public void Add(TimeCard timeCard)
 {
     using (ISession session = NHibernateHelper.OpenSession())
     using (ITransaction transaction = session.BeginTransaction())
     {
         session.Save(timeCard);
         transaction.Commit();
     }
 }
        public void Can_add_multiple_new_timeCards()
        {
            ISession session = _sessionFactory.OpenSession();

            int countBefore = getTimeCardTableSize(session);

            ITransaction tx = session.BeginTransaction();
            TimeCard timeCard1 = new TimeCard();
            timeCard1.TimeIn = DateTime.Now;
            timeCard1.TimeOut = timeCard1.TimeIn.AddHours(8);
            timeCard1.User = _user;
            session.Save(timeCard1);

            TimeCard timeCard2 = new TimeCard();
            timeCard2.TimeIn = DateTime.Now.AddDays(1);
            timeCard2.TimeOut = timeCard2.TimeIn.AddHours(8);
            timeCard2.User = _user;
            session.Save(timeCard2);

            TimeCard timeCard3 = new TimeCard();
            timeCard3.TimeIn = DateTime.Now.AddDays(2);
            timeCard3.TimeOut = timeCard3.TimeIn.AddHours(8);
            timeCard3.User = _user;
            session.Save(timeCard3);

            tx.Commit();

            Assert.AreEqual(countBefore + 3, getTimeCardTableSize(session));

            tx = session.BeginTransaction();

            session.Delete(timeCard1);
            session.Delete(timeCard2);
            session.Delete(timeCard3);

            tx.Commit();

            session.Close();
        }
        public void Can_add_new_timeCard()
        {
            DateTime timeIn = DateTime.Now;
            // Set the Milliseconds to 0 since MySQL DATETIME does not support milliseconds.
            timeIn = DateTime.ParseExact(timeIn.ToString(), "M/d/yyyy h:mm:ss tt", null);
            DateTime timeOut = timeIn.AddHours(8);
            var timeCard = new TimeCard { TimeIn = timeIn, TimeOut = timeOut, User = _user };
            ITimeCardRepository repository = new TimeCardRepository();
            repository.Add(timeCard);

            // use session to try to load the timeCard
            using (ISession session = _sessionFactory.OpenSession())
            {
                var fromDb = session.Get<TimeCard>(timeCard.TimeCardId);
                // Test that the timeCard was successfully inserted
                Assert.IsNotNull(fromDb);
                Assert.AreNotSame(timeCard, fromDb);
                Assert.AreEqual(timeCard.TimeIn, fromDb.TimeIn);
                Assert.AreEqual(timeCard.TimeOut, fromDb.TimeOut);
                Assert.AreEqual(timeCard.User, fromDb.User);
            }

            repository.Remove(timeCard);
        }
        private void timeInButton_Click(object sender, System.EventArgs e)
        {
            TimeCardRepository timeCardRepository = new TimeCardRepository();
            TimeCard timeCard = new TimeCard();
            timeCard.User = session.GetUser();
            timeCard.TimeIn = DateTime.Now;
            timeCardRepository.Add(timeCard);

            // disable time in button now that time in has been
            // entered, and enable time out button.
            this.timeInButton.Visible = false;
            this.timeOutButton.Visible = true;

            // call the time card user control's time out
            // button clicked method.
            timeCardUserControl.PayrollTracker_TimeOutButtonClickedEventHandler(this, e);
        }
        private bool IsInCollection(TimeCard timeCard, ICollection<TimeCard> fromDb)
        {
            bool result = false;

            foreach (var item in fromDb)
            {
                if (timeCard.TimeCardId == item.TimeCardId)
                {
                    result = true;
                    break;
                }
            }
            return result;
        }