Advertisement
aslen

Untitled

Dec 18th, 2015
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.48 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Runtime.Serialization.Formatters.Binary;
  6.  
  7. namespace Salary1
  8. {
  9.     [Serializable]
  10.     abstract class Employee
  11.     {
  12.         public string Name { get; set; }
  13.         public double Salary { get; set; }
  14.  
  15.         public double Tax { get; set; }
  16.  
  17.         public Employee(string name, double tax)
  18.         {
  19.             Name = name;
  20.             Tax = tax;
  21.             Salary = GetSalary();
  22.         }
  23.         protected abstract double GetSalary();
  24.     }
  25.     [Serializable]
  26.     class FixedSalary : Employee
  27.     {
  28.         public FixedSalary(string name, double tax)
  29.             : base(name, tax) { }
  30.  
  31.         protected override double GetSalary()
  32.         {
  33.             return Tax;
  34.         }
  35.     }
  36.     [Serializable]
  37.     class TimeSalary : Employee
  38.     {
  39.         public TimeSalary(string name, double tax)
  40.             : base(name, tax) { }
  41.  
  42.         protected override double GetSalary()
  43.         {
  44.             return 20.8 * 8 * Tax;
  45.         }
  46.     }
  47.     class Program
  48.     {
  49.         static void Main(string[] args)
  50.         {
  51.             #region Create journal
  52.             List<Employee> journal = new List<Employee>();
  53.             journal.Add(new FixedSalary("Roma Mak", 1000));
  54.             journal.Add(new FixedSalary("Nikolay Murtov", 780));
  55.             journal.Add(new FixedSalary("Diana Reva", 610));
  56.             journal.Add(new FixedSalary("Dmitriy Stokov", 1190));
  57.             journal.Add(new FixedSalary("Dmitriy Stobov", 1190));
  58.             journal.Add(new TimeSalary("Ivan Lisov", 4));
  59.             journal.Add(new TimeSalary("Svetlana Orekhova", 5.5));
  60.             journal.Add(new TimeSalary("Oleg Lugniy", 5));
  61.             journal.Add(new TimeSalary("Mila Werhova", 8));
  62.             #endregion
  63.             #region Sorting
  64.             var sortJournal = journal.OrderByDescending(a => a.Salary).ThenBy(a => a.Name).ToList();
  65.  
  66.             int counter = 1;
  67.             foreach (var item in sortJournal)
  68.             {
  69.                 Console.WriteLine("{0}) {1} : {2}", counter++, item.Name, item.Salary);
  70.             }
  71.  
  72.             Console.ReadKey();
  73.             Console.Clear();
  74.  
  75.             var sortOne = journal.OrderByDescending(a => a.Salary).ThenBy(a => a.Name).Take(5).ToList();
  76.             counter = 1;
  77.             foreach (var item in sortOne)
  78.             {
  79.                 Console.WriteLine("{0}) {1} : {2}", counter++, item.Name, item.Salary);
  80.             }
  81.  
  82.             Console.ReadKey();
  83.             Console.Clear();
  84.  
  85.  
  86.             var sortTwo = journal.OrderByDescending(a => a.Salary).ThenBy(a => a.Name).Reverse().Take(3).ToList();
  87.             counter = 1;
  88.             foreach (var item in sortTwo)
  89.             {
  90.                 Console.WriteLine("{0}) {1} : {2}", counter++, item.Name, item.Salary);
  91.             }
  92.             #endregion
  93.             #region WriterReader
  94.  
  95.             counter = 1;
  96.             Console.ReadKey();
  97.             Console.Clear();
  98.  
  99.             var binary = new BinaryFormatter();
  100.  
  101.             using (FileStream fs = new FileStream("data.dat", FileMode.Create))
  102.             {
  103.                 binary.Serialize(fs, sortJournal);
  104.             }
  105.             var result = binary.Deserialize(File.Open("data.dat", FileMode.Open)) as List<Employee>;
  106.             foreach (var item in result)
  107.             {
  108.                 Console.WriteLine("{0} : {1}", item.Name, item.Salary);
  109.             }
  110.             #endregion
  111.         }
  112.     }
  113.  
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement