private bool proveriOcitavanja(DateTime from, DateTime to, List <Ocitavanje> listaOcitavanja, out string msg) { IList <DolazakNaTrening> dolasci = null; try { using (ISession session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { DolazakNaTreningDAOImpl dolazakNaTreningDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO() as DolazakNaTreningDAOImpl; dolazakNaTreningDAO.Session = session; dolasci = dolazakNaTreningDAO.getDolazakNaTrening(from, to); } } catch (Exception ex) { msg = ex.Message; return(false); } if (dolasci.Count != listaOcitavanja.Count) { msg = String.Format("(Razlicit broj ocitavanja. Baza: {0} Fajl: {1})", dolasci.Count, listaOcitavanja.Count); return(false); } else { for (int i = 0; i < dolasci.Count; ++i) { DolazakNaTrening d = dolasci[i]; Ocitavanje o = listaOcitavanja[i]; if (d.Clan.BrojKartice != o.brojKartice) { msg = String.Format("(Broj kartice se ne poklapa. Baza: {0} Fajl: {1})", d.Clan.BrojKartice, o.brojKartice); return(false); } else if (d.DatumVremeDolaska.Value.ToString("dd.MM.yyyy HH:mm:ss") != o.vremeOcitavanja.ToString("dd.MM.yyyy HH:mm:ss")) { msg = String.Format("(Vreme dolaska se ne poklapa. Baza: {0} Fajl: {1})", d.DatumVremeDolaska, o.vremeOcitavanja); return(false); } } } msg = String.Format("(Broj ocitavanja: {0})", dolasci.Count); return(true); }
private void unesiOcitavanje(Clan clan, DateTime vremeOcitavanja, UplataClanarine uplata) { try { using (ISession session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { // NOTE: DolazakNaTreningDAO (vidi dole) ne uzima session iz CurrentSessionContext zato sto planiram // da metod unesiOcitavanje izvrsavam u posebnom threadu. // CurrentSessionContext.Bind(session); DolazakNaTrening dolazak = new DolazakNaTrening(); dolazak.Clan = clan; dolazak.DatumVremeDolaska = vremeOcitavanja; if (uplata != null && !clan.NeplacaClanarinu) { dolazak.Grupa = uplata.Grupa; } else { dolazak.Grupa = null; } DolazakNaTreningDAOImpl dolazakNaTreningDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO() as DolazakNaTreningDAOImpl; dolazakNaTreningDAO.Session = session; dolazakNaTreningDAO.MakePersistent(dolazak); if (CitacKarticaDictionary.Instance.DanasnjaOcitavanja.Add(clan.Id)) { DolazakNaTreningMesecniDAOImpl dolazakNaTreningMesecniDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningMesecniDAO() as DolazakNaTreningMesecniDAOImpl; dolazakNaTreningMesecniDAO.Session = session; DolazakNaTreningMesecni dolazakMesecni = dolazakNaTreningMesecniDAO.getDolazakNaTrening(dolazak.Clan, dolazak.DatumDolaska.Value.Year, dolazak.DatumDolaska.Value.Month); if (dolazakMesecni == null) { dolazakMesecni = new DolazakNaTreningMesecni(); dolazakMesecni.Clan = clan; dolazakMesecni.Godina = vremeOcitavanja.Year; dolazakMesecni.Mesec = vremeOcitavanja.Month; dolazakMesecni.BrojDolazaka = 1; } else { ++dolazakMesecni.BrojDolazaka; } dolazakNaTreningMesecniDAO.MakePersistent(dolazakMesecni); } session.Transaction.Commit(); } } catch (Exception ex) { MessageDialogs.showMessage(ex.Message, "Citac kartica"); } finally { // CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }