예제 #1
0
        /// <summary>
        /// Tato metoda je vyvolana v pripade, ze dany den ma byt vyucovano podle jineho rozvrhoveho dne.
        /// </summary>
        /// <param name="datumAkce"></param>
        /// <param name="index"></param>
        /// <param name="den"></param>
        /// <param name="DenLichy"></param>
        /// <param name="denSudy"></param>
        public void PridejJinyRozvrhDleHarmonogramu(DateTime datumAkce, int index, Den den, string DenLichy, string denSudy)
        {
            Uzivatel.Harmonogram[index].Zpracovano = true;
            //pridat na tenhle datum vse z rozvrhNeL ci neS ci neK
            List <int> indexy;
            bool       obsahuje = Uzivatel.indexyDnu.TryGetValue(den, out indexy);

            if (!obsahuje)
            {
                return;
            }

            foreach (int i in indexy)
            {
                bool chciLichDny = Uzivatel.Harmonogram[index].Udalost.Equals(Uzivatel.Harmonogram[index].Udalost.Equals(DenLichy));
                bool chciSudDny  = Uzivatel.Harmonogram[index].Udalost.Equals(Uzivatel.Harmonogram[index].Udalost.Equals(denSudy));
                bool mamSudDny   = Uzivatel.RozvrhoveAkce[i].Tyden.Equals(Tyden.Sudý);
                bool mamLichDny  = Uzivatel.RozvrhoveAkce[i].Tyden.Equals(Tyden.Lichý);
                bool mamKazdeDny = Uzivatel.RozvrhoveAkce[i].Tyden.Equals(Tyden.Každý);

                //kontroluju zda plati, ze pokud  mam akci, ktera je vyucavana v liche dny, a dle harmonogramu mam chtit liche dny nebo zda pokud mam sude dny a dle harmonogramu mam chtit zrovna ty nebo pripadne pokud mam kazdy den, tak je to jedno
                if ((chciLichDny && mamLichDny) || (chciSudDny && mamSudDny) || mamKazdeDny)
                {
                    DateTime zacatek             = datumAkce.AddHours(Uzivatel.RozvrhoveAkce[i].HodinaOd).AddMinutes(Uzivatel.RozvrhoveAkce[i].MinutaOd);
                    DateTime konec               = datumAkce.AddHours(Uzivatel.RozvrhoveAkce[i].HodinaDo).AddMinutes(Uzivatel.RozvrhoveAkce[i].MinutaDo);
                    DateTime platnostAkceZacatek = Uzivatel.RozvrhoveAkce[i].PocatecniDen;
                    DateTime platnostAkceKonec   = Uzivatel.RozvrhoveAkce[i].KonecnyDen;
                    if (zacatek >= platnostAkceZacatek && konec <= platnostAkceKonec)
                    {
                        Zaznam zaznam = new Zaznam(zacatek, konec, Uzivatel.RozvrhoveAkce[i]);
                        Uzivatel.ZaznamyProGoogleKalendar.Add(zaznam);
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Zohledni harmonogram skoly - vyhleda, zda v den datumAkce je v harmonogramu nejaka udalost a pripadne na ni zareaguje, dle jejiho typu
        /// </summary>
        /// <param name="datumAkce"></param>
        /// <param name="pridejNormalne"></param>
        public void ZpracujRozvrhovouAkciDlePokynuHarmonogramu(DateTime datumAkce, out bool pridejNormalne)
        {
            pridejNormalne = true;
            int indexPrvniho = NajdiPrvniShodneDatum(datumAkce);
            int index        = indexPrvniho;

            if (indexPrvniho == -1)
            {
                return;
            }
            do
            {
                switch (true)
                {
                //pondeli
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Properties.Settings.Default.Stringy.rozvrhPoL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhPoL)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.Po, Stringy.rozvrhPoL, Stringy.rozvrhPoS);
                    }
                    break;

                //utery
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhÚtL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhÚtS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.Út, Stringy.rozvrhÚtL, Stringy.rozvrhÚtS);
                    }
                    break;

                //streda
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhStL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhStS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.St, Stringy.rozvrhStL, Stringy.rozvrhStS);
                    }
                    break;

                //ctvrtek
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhČtL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhČtS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.t, Stringy.rozvrhČtL, Stringy.rozvrhČtS);
                    }
                    break;

                //patek
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhPáL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhPáS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.Pá, Stringy.rozvrhPáL, Stringy.rozvrhPáS);
                    }
                    break;

                //sobota
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhSoL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhSoS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.So, Stringy.rozvrhSoL, Stringy.rozvrhSoS);
                    }
                    break;

                //nedele
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhNeL) || Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.rozvrhNeS)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        PridejJinyRozvrhDleHarmonogramu(datumAkce, index, Den.Ne, Stringy.rozvrhNeL, Stringy.rozvrhNeS);
                    }
                    break;

                //odpada vyuka
                case bool b when(Uzivatel.Harmonogram[index].Udalost.Equals(Stringy.vyukaNeni)):
                    pridejNormalne = false;

                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                    }
                    break;

                //inforativni udalosti
                default:
                    // pridejNormalne = false;
                    if (Uzivatel.Harmonogram[index].Zpracovano == false)
                    {
                        Uzivatel.Harmonogram[index].Zpracovano = true;
                        Zaznam zaznam = new Zaznam(datumAkce, datumAkce.AddHours(23).AddMinutes(59), Uzivatel.Harmonogram[index].Udalost);
                        Uzivatel.ZaznamyProGoogleKalendar.Add(zaznam);
                    }
                    break;
                }

                index++;
            } while (Uzivatel.Harmonogram[index].Datum == datumAkce);
        }