using System.Collections.Generic;
using System.Globalization;

namespace MileageTraker.Web.ViewModels.FuelLog
{
	public class FuelLogResultsViewModel
	{
		public IEnumerable<FuelLogIndexViewModel> FuelLogs { get; set; }
		public Dictionary<string, List<string>> AvailableYearMonths { get; set; }
		public IEnumerable<string> SelectedYearMonths
		{
			get
			{
				if (!string.IsNullOrEmpty(Year))
					return AvailableYearMonths[Year];
				return new List<string>();
			}
		}

		// filter parameters
		public string Year { get; set; }
		public string Month { get; set; }
		public string MonthRange { get; set; }
		public bool Unmatched { get; set; }
		public string TagNumber { get; set; }

		public FuelLogResultsViewModel(
			IEnumerable<FuelLogIndexViewModel> fuelLogs, 
			FuelLogQueryViewModel query,
			Dictionary<string, List<string>> availableYearMonths)
		{
			FuelLogs = fuelLogs;
			AvailableYearMonths = availableYearMonths;
			Year = query.Year.HasValue ? query.Year.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
			Month = query.Month.HasValue ? query.Month.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
			MonthRange = query.MonthRange.HasValue ? query.MonthRange.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
			Unmatched = query.Unmatched;
			TagNumber = query.TagNumber;
		}
	}
}