//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
using System;
using System.Security;
using System.Security.Permissions;
using System.Collections;
using System.Diagnostics;

namespace CLRUnleashed
{
	/// <summary>
	/// Podsumowanie dla DayPermissionTest.
	/// </summary>
	class DayPermissionTest
	{
		private static void DailyAccess()
		{
			DayPermission perm = new DayPermission(DayOfWeek.Wednesday);
			perm.Demand();
		}

		/// <summary>
		/// Główny punkt wejścia dla aplikacji.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			PermissionSet ps = new PermissionSet(PermissionState.None);
			DayPermission perm = new DayPermission(DayOfWeek.Wednesday);
			ps.AddPermission(perm);
			ps.PermitOnly();
			DailyAccess();
			ArrayList days = new ArrayList();
			days.Add(DayOfWeek.Monday);
			days.Add(DayOfWeek.Tuesday);
			days.Add(DayOfWeek.Wednesday);
			days.Add(DayOfWeek.Thursday);
			days.Add(DayOfWeek.Friday);
			DayPermission dp = new DayPermission(days);
			string dpXML = dp.ToXml().ToString();
			Debug.WriteLine(dpXML);
		}
	}
}
