Advertisement
Guest User

a

a guest
May 6th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.78 KB | None | 0 0
  1.  
  2. /* PUJCOVNA.CS */
  3.  
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Xml.Serialization;
  11.  
  12. namespace pj2_2015_cv12_pisemka2_v3
  13. {
  14.     public class Pujcovna
  15.     {
  16.         private List<IPolozka> polozky = new List<IPolozka>();
  17.  
  18.         public void PridejPolozku(IPolozka polozka)
  19.         {
  20.             if (polozka is Film)
  21.             {
  22.                 ((Film)polozka).vypujceno += InfoVypujcky;
  23.             }
  24.             polozky.Add(polozka);
  25.         }
  26.  
  27.         public void InfoVypujcky(String name, DateTime date)
  28.         {
  29.             Console.WriteLine("{0}: {1}", name, date);
  30.         }
  31.  
  32.         public void TiskniPolozky()
  33.         {
  34.             foreach (IPolozka p in polozky)
  35.             {
  36.                 p.Tiskni();
  37.             }
  38.         }
  39.  
  40.         public void Uloz(String fileName)
  41.         {
  42.             using (FileStream f = new FileStream(fileName, FileMode.Create))
  43.             {
  44.                 List<Film> films = new List<Film>();
  45.                 foreach (IPolozka p in polozky)
  46.                 {
  47.                     if (p is Film)
  48.                     {
  49.                         films.Add((Film)p);
  50.                     }
  51.                 }
  52.                 XmlSerializer ser = new XmlSerializer(typeof(List<Film>));
  53.                 ser.Serialize(f, films);
  54.             }
  55.         }
  56.     }
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. /* PROGRAM.CS */
  70.  
  71. using System;
  72. using System.Collections.Generic;
  73. using System.Linq;
  74. using System.Text;
  75. using System.Threading.Tasks;
  76.  
  77. namespace pj2_2015_cv12_pisemka2_v3
  78. {
  79.     class Program
  80.     {
  81.         static void Main(string[] args)
  82.         {
  83.             Pujcovna p = new Pujcovna();
  84.             Film f = new Film("AI", 1, EFilmType.Pohadka);
  85.             Audio a = new Audio(2, "(I Can't Get No) Satisfaction", "The Rolling Stones", 2);
  86.             Film f1 = new Film("starTrek", 3, EFilmType.Pohadka);
  87.             p.PridejPolozku(f);
  88.             p.PridejPolozku(a);
  89.             p.PridejPolozku(f1);
  90.             f.VypujcenoDo = DateTime.Now;
  91.             p.TiskniPolozky();
  92.             p.Uloz("filmy.xml");
  93.             Console.ReadKey();
  94.         }
  95.     }
  96. }
  97.  
  98.  
  99.  
  100.  
  101.  
  102. /* IPLOLOZKA.CS */
  103.  
  104. using System;
  105. using System.Collections.Generic;
  106. using System.Linq;
  107. using System.Text;
  108. using System.Threading.Tasks;
  109.  
  110. namespace pj2_2015_cv12_pisemka2_v3
  111. {
  112.     public interface IPolozka
  113.     {
  114.         String Nazev { get; set; }
  115.         int ID { get; set; }
  116.         void Tiskni();
  117.     }
  118. }
  119.  
  120.  
  121.  
  122. /* FILM.CS */
  123.  
  124. using System;
  125. using System.Collections.Generic;
  126. using System.Linq;
  127. using System.Text;
  128. using System.Threading.Tasks;
  129. using System.Xml.Serialization;
  130.  
  131. namespace pj2_2015_cv12_pisemka2_v3
  132. {
  133.     public delegate void Vypujceno(String name, DateTime d);
  134.     public class Film : IPolozka
  135.     {
  136.         public event Vypujceno vypujceno;
  137.         [XmlIgnore]
  138.         public DateTime VypujcenoOd { get; set; }
  139.         private DateTime mDo;
  140.         [XmlIgnore]
  141.         public DateTime VypujcenoDo
  142.         {
  143.             get { return mDo; }
  144.             set
  145.             {
  146.                 mDo = value;
  147.                 if (vypujceno != null)
  148.                 {
  149.                     vypujceno(Nazev, mDo);
  150.                 }
  151.             }
  152.         }
  153.  
  154.         public string Nazev { get; set; }
  155.         public int ID { get; set; }
  156.         public EFilmType Zanr { get; set; }
  157.  
  158.         public Film(String n, int id, EFilmType z)
  159.         {
  160.             Nazev = n;
  161.             ID = id;
  162.             Zanr = z;
  163.         }
  164.         public Film()
  165.         {
  166.         }
  167.  
  168.         public void Tiskni()
  169.         {
  170.             Console.WriteLine("Film: {0}, {1}, {2}, {3}", Nazev, Zanr.ToString(), VypujcenoOd, VypujcenoDo);
  171.         }
  172.  
  173.     }
  174. }
  175.  
  176.  
  177.  
  178. /* EFILMTYPE.CS */
  179.  
  180. using System;
  181. using System.Collections.Generic;
  182. using System.Linq;
  183. using System.Text;
  184. using System.Threading.Tasks;
  185.  
  186. namespace pj2_2015_cv12_pisemka2_v3
  187. {
  188.     public enum EFilmType
  189.     {
  190.         Komedie, Pohadka
  191.     }
  192. }
  193.  
  194.  
  195.  
  196.  
  197. /* AUDIO.CS */
  198. using System;
  199. using System.Collections.Generic;
  200. using System.Linq;
  201. using System.Text;
  202. using System.Threading.Tasks;
  203.  
  204. namespace pj2_2015_cv12_pisemka2_v3
  205. {
  206.     public class Audio : IPolozka
  207.     {
  208.         public String Nazev { get; set; }
  209.         public int ID { get; set; }
  210.         public int Delka { get; set; }
  211.         public String Interpret { get; set; }
  212.         public void Tiskni()
  213.         {
  214.             Console.WriteLine("Audio: {0}, {1}, {2}", Nazev, Interpret, Delka);
  215.         }
  216.         public Audio(int id, String nazev, String interpret, int delka)
  217.         {
  218.             ID = id;
  219.             Nazev = nazev;
  220.             Interpret = interpret;
  221.             Delka = delka;
  222.         }
  223.     }
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement