コード例 #1
0
        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;
            }));
        }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
        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);
            }
        }