public ProgrammazioneSettimanale Retrieve(BinaryReader br) { // Programmazione Settimanale ProgrammazioneSettimanale result = new ProgrammazioneSettimanale(); // Modello Modello modello = Documento.getInstance().ModelloRiferimento; int width = br.ReadInt32(); int height = br.ReadInt32(); if (width != modello.Size.Width || height != modello.Size.Height) { return(null); } // Programmazioni Giornaliere ProgrammazioneGiornalieraPersister persister = new ProgrammazioneGiornalieraPersister(); ProgrammazioneGiornaliera pg; string type; int dow = br.ReadInt32(); while (dow > 0) { type = br.ReadString(); pg = persister.Retrieve(br); result[(DayOfWeek)dow] = pg; dow = br.ReadInt32(); } // Out return(result); }
public void Save(ProgrammazioneSettimanale elem, BinaryWriter bw) { // Programmazione Settimanale bw.Write(elem.GetType().ToString()); // Modello di riferimento Modello modello = Documento.getInstance().ModelloRiferimento; bw.Write(modello.Size.Width); bw.Write(modello.Size.Height); // Programmazioni Giornaliere ProgrammazioneGiornalieraPersister persister = new ProgrammazioneGiornalieraPersister(); ProgrammazioneGiornaliera pg; foreach (DayOfWeek dow in Enum.GetValues(typeof(DayOfWeek))) { pg = elem[dow]; if (pg == null) { continue; } bw.Write((int)dow); persister.Save(elem[dow], bw); } bw.Write(-1); }
static PersisterFactory() { _persisters = new IPersister[Enum.GetNames(typeof(PersisterTypes)).Length]; _persisters[INFO_TESTO] = new InformazioneTestualePersister(); _persisters[INFO_DATA_ORA] = new InformazioneDataOraPersister(); _persisters[IMMAGINE_FISSA] = new ImmagineFissaPersister(); _persisters[ANIMAZIONE] = new AnimazionePersister(); _persisters[SEQUENZA] = new SequenzaPersister(); _persisters[PROGRAMMAZIONE_GIORNALIERA] = new ProgrammazioneGiornalieraPersister(); _persisters[PROGRAMMAZIONE_SETTIMANALE] = new ProgrammazioneSettimanalePersister(); }