using System; using System.Collections.Generic; using System.Text; namespace MyDownloader.Extension.AutoDownloads { [Serializable] public enum EnableMode: int { Active = 1, ActiveWithLimit, Disabled } public class DayHourMatrix { public const int DAYS = 7; public const int HOURS = 24; private EnableMode[,] enabledAt = new EnableMode[DAYS, HOURS]; public DayHourMatrix() { } public DayHourMatrix(string data) { if (data == null || (data = data.Trim()).Length == 0) { return; } string[] days = data.Split('|'); for (int i = 0; i < days.Length; i++) { string[] values = days[i].Split(','); if (values.Length == 3) { int day = int.Parse(values[0]); int hour = int.Parse(values[1]); EnableMode em = (EnableMode)int.Parse(values[2]); this[(DayOfWeek)day, hour] = em; } } } public EnableMode this[DayOfWeek day, int hour] { get { return enabledAt[(int)day, hour]; } set { enabledAt[(int)day, hour] = value; } } public override string ToString() { string selected = String.Empty; for (int i = 0; i < DayHourMatrix.DAYS; i++) { for (int j = 0; j < DayHourMatrix.HOURS; j++) { if (this[(DayOfWeek)i, j] != EnableMode.Disabled) { if (selected.Length > 0) { selected += "|"; } // day,hour,mode|day,hour,mode.... selected += i + "," + j + "," + (int)this[(DayOfWeek)i, j]; } } } return selected; } } }