using System;
using System.Text.RegularExpressions;
using LeafWeb.Core.Entities;
using LeafWeb.Core.Utility;

namespace LeafWeb.Core.Remote
{
	public static class PiscalUtility
	{
		public static string GetPiscalDirectoryName(int id, string identifier)
		{
			return $"{id}_{identifier.FilterAlphaNumeric()}";
		}

		public static string GetPiscalDirectoryName(LeafInput leafInput)
		{
			return GetPiscalDirectoryName(leafInput.Id, leafInput.Identifier);
		}

		public static int GetIdFromDirectoryName(string directoryName)
		{
			var match = Regex.Match(directoryName, @"\d_");
			if (!match.Success)
				throw new FormatException("DirectoryName expected to be formatted {number}_{identifier}: " + directoryName);
			return int.Parse(match.Captures[0].Value);
		}
	}
}