using System.Linq;
using AppSys.Handlers;
using Base;

namespace AppSys {
	public sealed class App : IApp {
		private static readonly IHandler[] Handlers = {
			new HandlerProcesses(),
			new HandlerApps()
		};

		public string[] RecognizedNames => new string[] {
			"sys",
			"os",
			"win"
		};

		public MatchConfidence GetConfidence(Command cmd) {
			return Handlers.Any(handler => handler.Matches(cmd)) ? MatchConfidence.Full : MatchConfidence.None;
		}

		public string ProcessCommand(Command cmd) {
			return Handlers.First(handler => handler.Matches(cmd)).Handle(cmd);
		}
	}
}