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); }
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); }
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)); }