private List <object> loadDolasci(Clan c, DateTime from, DateTime to) { if (c == null) { return(new List <object>()); } DolazakNaTreningDAO dolazakNaTreningDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO(); return(new List <DolazakNaTrening>(dolazakNaTreningDAO.getDolazakNaTrening(c, from, to)).ConvertAll <object>( delegate(DolazakNaTrening u) { return u; })); }
private void UpdateDolazakNaTreningMesecni() { ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); DolazakNaTreningMesecniDAO dolazakNaTreningMesecniDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningMesecniDAO(); List <DolazakNaTreningMesecni> dolasciMesecni = new List <DolazakNaTreningMesecni>(dolazakNaTreningMesecniDAO.FindAll()); if (dolasciMesecni.Count > 0) { return; } DolazakNaTreningDAO dolazakNaTreningDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO(); IList <DolazakNaTrening> dolasci = dolazakNaTreningDAO.FindAll(); IDictionary <ClanGodinaMesec, DolazakNaTreningMesecni> dolasciMap = new Dictionary <ClanGodinaMesec, DolazakNaTreningMesecni>(); foreach (DolazakNaTrening d in dolasci) { ClanGodinaMesec key = new ClanGodinaMesec(d.Clan.Id, d.DatumDolaska.Value.Year, d.DatumDolaska.Value.Month); if (!dolasciMap.ContainsKey(key)) { DolazakNaTreningMesecni dolazak = new DolazakNaTreningMesecni(); dolazak.Clan = d.Clan; dolazak.Godina = d.DatumDolaska.Value.Year; dolazak.Mesec = d.DatumDolaska.Value.Month; dolazak.BrojDolazaka = 1; dolasciMap.Add(key, dolazak); } else { ++(dolasciMap[key].BrojDolazaka); } } foreach (KeyValuePair <ClanGodinaMesec, DolazakNaTreningMesecni> entry in dolasciMap) { dolazakNaTreningMesecniDAO.MakePersistent(entry.Value); } session.Transaction.Commit(); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } throw new InfrastructureException(ex.Message, ex); } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
public void Init() { initDate = DateTime.Now; try { using (ISession session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { // TODO3: Proveri da li ovde treba koristiti CurrentSessionContext ako nije JedinstenProgram CurrentSessionContext.Bind(session); clanoviSaKarticom = new Dictionary <int, Clan>(); foreach (Clan clan in DAOFactoryFactory.DAOFactory.GetClanDAO().findClanoviSaKarticom()) { clanoviSaKarticom.Add(clan.BrojKartice.Value, clan); } GrupaDAO grupaDAO = DAOFactoryFactory.DAOFactory.GetGrupaDAO(); IList <Grupa> godisnjaClanarinaGrupe = grupaDAO.findGodisnjaClanarina(); if (godisnjaClanarinaGrupe.Count == 0) { // TODO3: Da li je potrebna ova provera? Ako se grupe sa godisnjom clanarinom zadaju // u programu, trebalo bi da je dozvoljeno da ne bude zadata nijedna grupa. MessageDialogs.showMessage("Ne mogu da pronadjem grupu za godisnju clanarinu", "Greska"); } prethodneUplate = new Dictionary <int, List <UplataClanarine> >(); DateTime now = DateTime.Now; DateTime from = now.AddMonths(-6); // Kao krajnji datum za uplate se uzima sledeci mesec zbog sledece situacije: Dolazi potpuno novi clan // (prvi put se upisuje u sokolsko drustvo), i placa clanarinu za sledeci mesec (da pocinje od // sledeceg meseca da vezba). Tada je jedina uplate koja postoji uplata za sledeci mesec (i treba // da svetli zeleno, i da se grupa za tu uplatu prikazije na ekranu, i da se ta grupa veze za // DolazakNaTrening). DateTime sledeciMesec = now.AddMonths(1); UplataClanarineDAO uplataClanarineDAO = DAOFactoryFactory.DAOFactory.GetUplataClanarineDAO(); foreach (UplataClanarine u in uplataClanarineDAO.findUplateVaziOd(from, sledeciMesec)) { foreach (Grupa g in godisnjaClanarinaGrupe) { if (g.Id == u.Grupa.Id) { continue; } } // Ako ne postoji uplata za ovaj mesec ali postoji uplata za sledeci mesec, ta uplata ce biti // stavljena u prethodneUplate. Ta uplata ce biti izabrana u metodu findUplata zato sto // findUplata sortira prethodne uplate opadajuce po datumu vazenja. if (prethodneUplate.ContainsKey(u.Clan.Id)) { prethodneUplate[u.Clan.Id].Add(u); } else { List <UplataClanarine> uplate = new List <UplataClanarine>(); uplate.Add(u); prethodneUplate.Add(u.Clan.Id, uplate); } } uplateGodisnjaClanarina = new Dictionary <int, UplataClanarine>(); if (godisnjaClanarinaGrupe.Count > 0) { DateTime firstDateTimeInYear = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0); DateTime lastDateTimeInYear = new DateTime(DateTime.Now.Year + 1, 1, 1, 0, 0, 0).AddSeconds(-1); foreach (UplataClanarine u in uplataClanarineDAO.findUplate(godisnjaClanarinaGrupe, firstDateTimeInYear, lastDateTimeInYear)) { if (!uplateGodisnjaClanarina.ContainsKey(u.Clan.Id)) { uplateGodisnjaClanarina.Add(u.Clan.Id, u); } } } uplateGodisnjaClanarinaPrethGod = new Dictionary <int, UplataClanarine>(); if (godisnjaClanarinaGrupe.Count > 0) { DateTime firstDateTimeInYear = new DateTime(DateTime.Now.Year - 1, 1, 1, 0, 0, 0); DateTime lastDateTimeInYear = new DateTime(DateTime.Now.Year, 1, 1, 0, 0, 0).AddSeconds(-1); foreach (UplataClanarine u in uplataClanarineDAO.findUplate(godisnjaClanarinaGrupe, firstDateTimeInYear, lastDateTimeInYear)) { if (!uplateGodisnjaClanarinaPrethGod.ContainsKey(u.Clan.Id)) { uplateGodisnjaClanarinaPrethGod.Add(u.Clan.Id, u); } } } DateTime pocetakDana = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); DateTime sutra = pocetakDana.AddDays(1); DateTime krajDana = new DateTime(sutra.Year, sutra.Month, sutra.Day, 0, 0, 0).AddSeconds(-1); DolazakNaTreningDAO dolazakDAO = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO(); IList <DolazakNaTrening> danasnjiDolasci = DAOFactoryFactory.DAOFactory.GetDolazakNaTreningDAO().getDolazakNaTrening(pocetakDana, krajDana); danasnjaOcitavanja = new HashedSet(); foreach (DolazakNaTrening d in danasnjiDolasci) { danasnjaOcitavanja.Add(d.Clan.Id); } } } catch (Exception ex) { MessageDialogs.showMessage(ex.Message, "Citac kartica"); } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }