public static RegulatorFacilitySubmittalQueryArguments Parse(NameValueCollection arguments)
        {
            RegulatorFacilitySubmittalQueryArguments args = new RegulatorFacilitySubmittalQueryArguments();

            ParseTo(arguments, args);
            return(args);
        }
        public static void ParseTo(NameValueCollection arguments, RegulatorFacilitySubmittalQueryArguments args)
        {
            arguments             = arguments.ToLowercaseKey();
            args.SubmittedOnStart = arguments.GetValueLowercaseKey <DateTime?>(SubmittedOnStartArgument_Key, null);
            args.SubmittedOnEnd   = arguments.GetValueLowercaseKey <DateTime?>(SubmittedOnEndArgument_Key, null);

            args.SubmittalActionOnStart = arguments.GetValueLowercaseKey <DateTime?>(SubmittalActionOnStartArgument_Key, null);
            args.SubmittalActionOnEnd   = arguments.GetValueLowercaseKey <DateTime?>(SubmittalActionOnEndArgument_Key, null);

            args.RegulatorCode        = arguments.GetValueLowercaseKey <int>(RegulatorCodeArgument_Key, 0);
            args.CERSID               = arguments.GetValueLowercaseKey <int?>(CERSIDArgument_Key, null);
            args.SubmittalElementType = arguments.GetValueLowercaseKey <SubmittalElementType?>(SubmittalElementType_Key, null);

            int temp;

            string[] statuses = arguments.GetValueLowercaseKey(SubmittalElementStatus_Key, string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string status in statuses)
            {
                if (int.TryParse(status, out temp))
                {
                    args.Statuses.Add((SubmittalElementStatus)temp);
                }
            }
        }