private void sprowadzLubUtworzZmiany(DateTime dataZmiany, int dniWczesniej, int dniPozniej)
        {
            DateTime dataZmianyPrzycieta = new DateTime(dataZmiany.Year, dataZmiany.Month, dataZmiany.Day);

            DateTime dataDniWczesniej = dataZmianyPrzycieta.AddDays(-dniWczesniej);
            DateTime dataDniPozniej   = dataZmianyPrzycieta.AddDays(dniPozniej);
            DateTime iterator         = dataDniWczesniej;

            while (DateTime.Compare(dataDniPozniej, iterator) >= 0)
            {
                if (!ZmianaWczytanaDoBufora(iterator))
                {
                    string nazwaPlikuZmiany = String.Format("{0:yyyyMMdd}", iterator);
                    if (File.Exists(KatalogGlowny + @"\zmiany\" + nazwaPlikuZmiany))
                    {
                        Zmiana wczytanaZmiana = Zmiana.CzytajZPliku(KatalogGlowny + @"\zmiany\" + nazwaPlikuZmiany, pacjenci, pacjenciUsunieci);
                        UmiescZmianeWBuforze(wczytanaZmiana);
                    }
                    else
                    {
                        Zmiana nowaZmiana = new Zmiana(iterator);
                        UmiescZmianeWBuforze(nowaZmiana);
                    }
                }
                iterator = iterator.AddDays(1);
            }
        }
        internal void ZapiszNaWizyte(DateTime dataWizyty, Wizyta umowionaWizyta)
        {
            DateTime dataWizytyPrzycieta = new DateTime(dataWizyty.Year, dataWizyty.Month, dataWizyty.Day);

            if (!MoznaZapisacNaWizyte(dataWizytyPrzycieta, umowionaWizyta))
            {
                return;
            }


            foreach (Zmiana z in zmianyAktualne)
            {
                if (Zmiana.KeysEqual(z.DataZmiany, dataWizytyPrzycieta))
                {
                    z.DodajWizyte(umowionaWizyta);
                    return;
                }
            }
            foreach (Zmiana z in sterta)
            {
                if (Zmiana.KeysEqual(z.DataZmiany, dataWizytyPrzycieta))
                {
                    z.DodajWizyte(umowionaWizyta);
                    return;
                }
            }
        }
        internal void UsunWizyte(KluczWizyty k)
        {
            DateTime dataZmianyPrzycieta  = k.Data;
            bool     znalezionoZmiane     = false;
            Zmiana   zmianaZUsuwanaWizyta = null;

            foreach (Zmiana aktZmiana in zmianyAktualne)
            {
                if (DateTime.Compare(aktZmiana.DataZmiany, dataZmianyPrzycieta) == 0)
                {
                    zmianaZUsuwanaWizyta = aktZmiana;
                    znalezionoZmiane     = true;
                    break;
                }

                /*
                 * if (DateTime.Compare(aktZmiana.DataZmiany, dataZmianyPrzycieta) > 0)
                 * {
                 *  break;
                 * }
                 */
            }
            if (!znalezionoZmiane)
            {
                foreach (Zmiana aktZmiana in sterta)
                {
                    if (DateTime.Compare(aktZmiana.DataZmiany, dataZmianyPrzycieta) == 0)
                    {
                        zmianaZUsuwanaWizyta = aktZmiana;
                        znalezionoZmiane     = true;
                        break;
                    }
                }
            }
            if (!znalezionoZmiane)
            {
                List <Zmiana> listaZmian = sprowadzLubUtworzZmiany2(dataZmianyPrzycieta, 3, 3);
                foreach (Zmiana z in listaZmian)
                {
                    if (DateTime.Compare(z.DataZmiany, dataZmianyPrzycieta) == 0 /*   z.DataZmiany == dataZmianyPrzycieta */)
                    {
                        zmianaZUsuwanaWizyta = z;
                        znalezionoZmiane     = true;
                        break;
                    }
                }
            }

            if (znalezionoZmiane)
            {
                zmianaZUsuwanaWizyta.usunWizyte(k);
            }
        }
        internal List <Zmiana> zmianyDoWyswietlenia(DateTime dzienPierwszy)
        {
            sprowadzLubUtworzZmiany(dzienPierwszy, 0, 6);
            List <Zmiana> tydzien  = new List <Zmiana>();
            DateTime      iterator = new DateTime(dzienPierwszy.Year, dzienPierwszy.Month, dzienPierwszy.Day);

            for (int i = 1; i <= 7; i++)
            {
                Zmiana z = zwrocReferencjeDoZmiany(iterator);
                tydzien.Add(z);
                iterator = iterator.AddDays(1);
            }
            return(tydzien);
        }
示例#5
0
        public static Zmiana CzytajZPliku(string sciezka, List <Pacjent> pacjenci, List <Pacjent> pacjenciUsunieci)
        {
            BinaryReader br = new BinaryReader(File.Open(sciezka, FileMode.Open));
            Zmiana       wczytywanaZmiana = new Zmiana(Zmiana.CzytajDateZPliku(br));

            while (br.BaseStream.Position != br.BaseStream.Length)
            {
                //wczytywanie wizyt
                Wizyta wczytanaWizyta = Wizyta.CzytajZPliku(br, pacjenci, pacjenciUsunieci);
                wczytywanaZmiana.DodajWizyte(wczytanaWizyta);
            }
            br.Close();
            wczytywanaZmiana.touched = false;

            return(wczytywanaZmiana);
        }
 private void UmiescZmianeWBuforze(Zmiana wczytanaZmiana)
 {
     if (sterta.Count == 0)
     {
         sterta.Add(wczytanaZmiana);
         return;
     }
     for (int i = 0; i < sterta.Count; i++)
     {
         if (DateTime.Compare(wczytanaZmiana.DataZmiany, sterta.ElementAt(i).DataZmiany) < 0)
         {
             sterta.Insert(i, wczytanaZmiana);
             return;
         }
     }
     sterta.Add(wczytanaZmiana);
 }
示例#7
0
        public void ZapiszDoPliku(string sciezka)
        {
            if (!File.Exists(sciezka))
            {
                FileStream f = File.Create(sciezka);
                f.Close();
            }
            BinaryWriter bw = new BinaryWriter(File.Open(sciezka, FileMode.Truncate));

            Zmiana.ZapiszDateDoPliku(bw, this.dataZmiany);
            foreach (Wizyta w in wizyty)
            {
                w.ZapiszDoPliku(bw);
            }
            bw.Close();
            touched = false;
        }
        internal BuforZmian(List <Pacjent> pacjenci, List <Pacjent> pacjenciUsunieci, int dniWstecz, int dniNaprzod, DateTime godzOtw, DateTime godzZam,//
                            int jednostkaCzasu)
        {
            string sciezkaKatGlownego = KatalogGlowny;

            this.jednostkaCzasu     = jednostkaCzasu;
            this.pacjenci           = pacjenci;
            this.pacjenciUsunieci   = pacjenciUsunieci;
            liczbaZmianWstecz       = dniWstecz;
            liczbaZmianNaprzod      = dniNaprzod;
            godzinaRozpoczeciaPracy = new DateTime(2000, 1, 1, godzOtw.Hour, godzOtw.Minute, 0);
            godzinaZakonczeniaPracy = new DateTime(2000, 1, 1, godzZam.Hour, godzZam.Minute, 0);

            DateTime teraz           = DateTime.Now;
            DateTime dzisiejszyDzien = new DateTime(teraz.Year, teraz.Month, teraz.Day);

            zmianyAktualne = new List <Zmiana>();
            sterta         = new List <Zmiana>();

            DateTime najwczesniejszyWczytywany = dzisiejszyDzien.AddDays(-liczbaZmianWstecz);
            DateTime najpozniejszyDzien        = dzisiejszyDzien.AddDays(liczbaZmianNaprzod);
            DateTime iterator = new DateTime(najwczesniejszyWczytywany.Year, najwczesniejszyWczytywany.Month, najwczesniejszyWczytywany.Day);

            while (DateTime.Compare(iterator, najpozniejszyDzien) <= 0)
            {
                Zmiana nowaZmiana;
                string nazwaPlikuZmiany = String.Format("{0:yyyyMMdd}", iterator);
                if (File.Exists(sciezkaKatGlownego + @"\zmiany\" + nazwaPlikuZmiany))
                {
                    //znaleziono plik ze zmianą - wczytaj jego zawartość
                    nowaZmiana = Zmiana.CzytajZPliku(sciezkaKatGlownego + @"\zmiany\" + nazwaPlikuZmiany, pacjenci, pacjenciUsunieci);
                    zmianyAktualne.Add(nowaZmiana);
                }
                else
                {
                    //nie znaleziono pliku ze zminą - utwórz nowy obiekt
                    nowaZmiana = new Zmiana(iterator);
                    zmianyAktualne.Add(nowaZmiana);
                }
                DateTime d = iterator.AddDays(1);
                iterator = d;
            }
        }
        public bool MoznaZapisacNaWizyte(DateTime dataZmiany, DateTime data, int _godzOd, int _minOd, int _godzDo, int _minDo)
        {
            DateTime dataZmianyPrzycieta = new DateTime(dataZmiany.Year, dataZmiany.Month, dataZmiany.Day);

            if (!(dataZmianyPrzycieta.Year == data.Year && dataZmianyPrzycieta.Month == data.Month && dataZmianyPrzycieta.Day == data.Day))
            {
                return(false);                                                         //wizyta i zmiana nie są tego samego dnia
            }
            DateTime rozpoczecieZabiegu = new DateTime(data.Year, data.Month, data.Day //
                                                       , _godzOd, _minOd, 0);
            DateTime zakonczenieZabiegu = new DateTime(data.Year, data.Month, data.Day //
                                                       , _godzDo, _minDo, 0);

            if (DateTime.Compare(zakonczenieZabiegu, rozpoczecieZabiegu) <= 0)
            {
                return(false);
            }

            bool   znalezionoZmiane = false;
            Zmiana znalezionaZmiana = null;

            //przeszukaj zmianyAktualne i sterte by znaleźć dzień na który chcemy zapisać wizytę
            foreach (Zmiana z in zmianyAktualne)
            {
                if (Zmiana.KeysEqual(dataZmianyPrzycieta, z.DataZmiany))
                {
                    znalezionoZmiane = true;
                    znalezionaZmiana = z;
                    break;
                }
            }
            if (!znalezionoZmiane)
            {
                foreach (Zmiana z in sterta)
                {
                    if (Zmiana.KeysEqual(dataZmianyPrzycieta, z.DataZmiany))
                    {
                        znalezionoZmiane = true;
                        znalezionaZmiana = z;
                        break;
                    }
                }
            }
            if (!znalezionoZmiane)
            {//przeszukano obie listy i nie znaleziono zmiany - utwórz zmiany z okresu 3 wstecz i 3 dni po dniu wizyty
                sprowadzLubUtworzZmiany(data, 3, 3);
            }
            foreach (Zmiana z in zmianyAktualne)
            {//znowu przeszukaj zmianyAktualne i sterte
                if (Zmiana.KeysEqual(dataZmianyPrzycieta, z.DataZmiany))
                {
                    znalezionoZmiane = true;
                    znalezionaZmiana = z;
                    break;
                }
            }
            if (!znalezionoZmiane)
            {
                foreach (Zmiana z in sterta)
                {
                    if (Zmiana.KeysEqual(dataZmianyPrzycieta, z.DataZmiany))
                    {
                        znalezionoZmiane = true;
                        znalezionaZmiana = z;
                        break;
                    }
                }
            }

            KluczWizyty k = new KluczWizyty(data, _godzOd, _minOd, _godzDo, _minDo);

            return(znalezionaZmiana.MoznaDodacWizyte(k));
        }