public bool RemoveOutputOptionDeclaration(AppOutputOptionDeclaration optionDecl)
		{
			return _OutputOptionDeclarations.Remove(optionDecl);
		}
		public void SetValuesOnDeserialized(StreamingContext context)
		{
			OptionDeclarations = new ReadOnlyObservableCollection<AppOptionDeclaration>(_OptionDeclarations);
			OutputOptionDeclarations = new ReadOnlyObservableCollection<AppOutputOptionDeclaration>(_OutputOptionDeclarations);
			AcceptExtentions = new ReadOnlyObservableCollection<string>(_AcceptExtentions);

			InputOption = new AppInputOptionDeclaration("IN", GetNextOptionDeclarationId());
			SameInputOutputOption = new AppOutputOptionDeclaration("SameInput OutputExtention", GetNextOptionDeclarationId(), FolderItemType.File);
		}
		public AppOutputOptionDeclaration AddOutputOptionDeclaration(string name)
		{
			var id = GetNextOptionDeclarationId();
			var newOption = new AppOutputOptionDeclaration("OUT", id, FolderItemType.File);

			newOption.Name = name;

			_OutputOptionDeclarations.Add(newOption);
			return newOption;
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="applicationPath"></param>
		public ApplicationPolicy()
		{
			ApplicationPath = "";
			AppName = "";

			Guid = Guid.NewGuid();

			MaxProcessTime = TimeSpan.FromMinutes(1);

			OptionDeclarationIdSeed = 1;
			_OptionDeclarations = new ObservableCollection<AppOptionDeclaration>();
			OptionDeclarations = new ReadOnlyObservableCollection<AppOptionDeclaration>(_OptionDeclarations);

			_OutputOptionDeclarations = new ObservableCollection<AppOutputOptionDeclaration>();
			OutputOptionDeclarations = new ReadOnlyObservableCollection<AppOutputOptionDeclaration>(_OutputOptionDeclarations);

			_AcceptExtentions = new ObservableCollection<string>();
			AcceptExtentions = new ReadOnlyObservableCollection<string>(_AcceptExtentions);


			InputOption = new AppInputOptionDeclaration("IN", GetNextOptionDeclarationId());
			SameInputOutputOption = new AppOutputOptionDeclaration("SameInput OutputExtention", GetNextOptionDeclarationId(), FolderItemType.File);
		}