private void SetSharedRequestValues(SiteCatalystRequest request, ValueParser parser) { if (parser.Values != null && parser.Values.Count > 0) { request.RequestingUrl = _queryParser.GetValueIfExists("g"); request.ReferringUrl = _queryParser.GetValueIfExists("r"); request.Channel = _queryParser.GetValueIfExists("ch"); request.PageName = _queryParser.GetValueIfExists("pageName"); request.Account = _queryParser.GetValueIfExists("account"); request.Events = _queryParser.GetValueIfExists("events"); DateTime time = DateTime.MinValue; DateTime.TryParse(_queryParser.GetValueIfExists("t"), out time); request.Time = time; SetSiteCatalystRequestValues(parser, request.Props, "c", "prop"); SetSiteCatalystRequestValues(parser, request.Props, "v", "eVar"); } }
private void SetSiteCatalystRequestValues(ValueParser parser, SortedList<string, SiteCatalystRequestValue> values, string prefix, string newPrefix) { if (values == null) { values = new SortedList<string, SiteCatalystRequestValue>(); } List<string> keys = parser.Values.Keys .Cast<string>() .Where(m => IsSiteCatalystField(m, prefix)) .Distinct() .ToList(); foreach (string key in keys) { string value = parser.Values.Get(key) ?? string.Empty; int varNumber = GetValueFromKey(key, prefix); string name = string.Format("{0}{1}", newPrefix, varNumber); if (varNumber > 0 && !string.IsNullOrEmpty(value) && !values.ContainsKey(name)) { values.Add(name, new SiteCatalystRequestValue() { Name = name, Value = value }); } } }