public static string[] Splitt(this string MyString, params char[] Separator) { if (MyString == null) { return(null); } else { string[] Result = new string[0]; int LastWordIndex = 0; for (int i = 0; i < MyString.Length; i++) { if (Separator.Contains(MyString[i])) { char[] temp = new char[i - LastWordIndex]; for (int j = LastWordIndex, k = 0; j < i; k++, j++) { temp[k] = MyString[j]; } Array.Resize(ref Result, Result.Length + 1); Result[Result.Length - 1] = new string(temp); LastWordIndex = i; } } return(Result); } }
public override void Validate(object state) { if (state == null) { base.Validate(state); if (Separator.IsNullOrWhiteSpace()) { throw new ChoRecordConfigurationException("Separator can't be null or whitespace."); } if (Separator == EOLDelimiter) { throw new ChoRecordConfigurationException("Separator [{0}] can't be same as EODDelimiter [{1}]".FormatString(Separator, EOLDelimiter)); } if (Separator.Contains(QuoteChar)) { throw new ChoRecordConfigurationException("QuoteChar [{0}] can't be one of Delimiter characters [{1}]".FormatString(QuoteChar, Separator)); } if (Comments != null && Comments.Contains(Separator)) { throw new ChoRecordConfigurationException("One of the Comments contains Delimiter. Not allowed."); } if (RecordStart.IsNullOrWhiteSpace() && RecordEnd.IsNullOrWhiteSpace()) { } else { if (RecordStart.IsNullOrWhiteSpace()) { throw new ChoRecordConfigurationException("RecordStart is missing."); } //else if (RecordEnd.IsNullOrWhiteSpace()) // RecordEnd = RecordStart; //throw new ChoRecordConfigurationException("RecordEnd is missing."); if (RecordStart.Contains("*") || RecordStart.Contains("?")) { _isWildcardComparisionOnRecordStart = true; _recordStartWildCard = new ChoWildcard(RecordStart); } if (!RecordEnd.IsNullOrWhiteSpace() && (RecordEnd.EndsWith("*") || RecordStart.Contains("?"))) { _isWildcardComparisionOnRecordEnd = true; _recordEndWildCard = new ChoWildcard(RecordEnd); } } //Validate Header if (FileHeaderConfiguration != null) { if (FileHeaderConfiguration.FillChar != null) { if (FileHeaderConfiguration.FillChar.Value == ChoCharEx.NUL) { throw new ChoRecordConfigurationException("Invalid '{0}' FillChar specified.".FormatString(FileHeaderConfiguration.FillChar)); } if (Separator.Contains(FileHeaderConfiguration.FillChar.Value)) { throw new ChoRecordConfigurationException("FillChar [{0}] can't be one of Delimiter characters [{1}]".FormatString(FileHeaderConfiguration.FillChar, Separator)); } if (EOLDelimiter.Contains(FileHeaderConfiguration.FillChar.Value)) { throw new ChoRecordConfigurationException("FillChar [{0}] can't be one of EOLDelimiter characters [{1}]".FormatString(FileHeaderConfiguration.FillChar.Value, EOLDelimiter)); } if ((from comm in Comments where comm.Contains(FileHeaderConfiguration.FillChar.Value.ToString()) select comm).Any()) { throw new ChoRecordConfigurationException("One of the Comments contains FillChar. Not allowed."); } } } } else { string[] headers = state as string[]; if (AutoDiscoverColumns && KVPRecordFieldConfigurations.Count == 0) { AutoDiscoveredColumns = true; if (headers != null && IsDynamicObject) { KVPRecordFieldConfigurations = (from header in headers select new ChoKVPRecordFieldConfiguration(header)).ToList(); } else { MapRecordFields(RecordType); } } if (KVPRecordFieldConfigurations.Count <= 0) { throw new ChoRecordConfigurationException("No record fields specified."); } //Validate each record field foreach (var fieldConfig in KVPRecordFieldConfigurations) { fieldConfig.Validate(this); } //Check if any field has empty names if (KVPRecordFieldConfigurations.Where(i => i.FieldName.IsNullOrWhiteSpace()).Count() > 0) { throw new ChoRecordConfigurationException("Some fields has empty field name specified."); } //Check field names for duplicate string[] dupFields = KVPRecordFieldConfigurations.GroupBy(i => i.FieldName, FileHeaderConfiguration.StringComparer) .Where(g => g.Count() > 1) .Select(g => g.Key).ToArray(); if (dupFields.Length > 0 /* && !IgnoreDuplicateFields */) { throw new ChoRecordConfigurationException("Duplicate field name(s) [Name: {0}] found.".FormatString(String.Join(",", dupFields))); } PIDict = new Dictionary <string, System.Reflection.PropertyInfo>(); PDDict = new Dictionary <string, PropertyDescriptor>(); foreach (var fc in KVPRecordFieldConfigurations) { if (fc.PropertyDescriptor == null) { fc.PropertyDescriptor = ChoTypeDescriptor.GetProperties(RecordType).Where(pd => pd.Name == fc.Name).FirstOrDefault(); } if (fc.PropertyDescriptor == null) { continue; } PIDict.Add(fc.PropertyDescriptor.Name, fc.PropertyDescriptor.ComponentType.GetProperty(fc.PropertyDescriptor.Name)); PDDict.Add(fc.PropertyDescriptor.Name, fc.PropertyDescriptor); } RecordFieldConfigurationsDict = KVPRecordFieldConfigurations.Where(i => !i.Name.IsNullOrWhiteSpace()).GroupBy(i => i.Name).Select(g => g.First()).ToDictionary(i => i.Name, FileHeaderConfiguration.StringComparer); RecordFieldConfigurationsDict2 = KVPRecordFieldConfigurations.Where(i => !i.FieldName.IsNullOrWhiteSpace()).GroupBy(i => i.Name).Select(g => g.First()).ToDictionary(i => i.FieldName, FileHeaderConfiguration.StringComparer); AlternativeKeys = RecordFieldConfigurationsDict2.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Name, FileHeaderConfiguration.StringComparer); FCArray = RecordFieldConfigurationsDict.ToArray(); LoadNCacheMembers(KVPRecordFieldConfigurations); } }
protected override void OnLoad(EventArgs e) { if (!Page.IsPostBack) { var objCtrl = new NBrightDataController(); // public attributes var strSeparator = ""; if (!String.IsNullOrEmpty(Separator)) { if (Separator.Contains("src=")) { Separator = Separator.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath); } strSeparator = Separator; } else { if (!HtmlList) { strSeparator = " <img alt=\"*\" src=\"" + Globals.ApplicationPath + "/images/breadcrumb.gif\"> "; } } var strCssClass = ""; if (!string.IsNullOrEmpty(CssClass)) { strCssClass = CssClass; } int intRootLevel = 0; if (Utils.IsNumeric(RootLevel)) { intRootLevel = int.Parse(RootLevel); } var strBreadCrumbs = ""; // process bread crumbs int intTab = 0; if (!(HideWithNoBreadCrumb && (PortalSettings.ActiveTab.BreadCrumbs.Count == 1))) { for (intTab = intRootLevel; intTab <= PortalSettings.ActiveTab.BreadCrumbs.Count - 1; intTab++) { if (intTab != intRootLevel) { strBreadCrumbs += strSeparator; } var objTab = (TabInfo)PortalSettings.ActiveTab.BreadCrumbs[intTab]; var dataRecord = objCtrl.GetByGuidKey(PortalSettings.Current.PortalId, -1, "PL", objTab.TabID.ToString("")); var pagename = ""; if (dataRecord != null) { var dataRecordLang = objCtrl.GetDataLang(dataRecord.ItemID, Utils.GetCurrentCulture()); if (dataRecordLang != null) { pagename = dataRecordLang.GetXmlProperty("genxml/textbox/pagename"); } } else { // no PL data, so use normal tab data pagename = objTab.TabName; } if (HtmlList) { strBreadCrumbs += "<ul class=\"" + strCssClass + "\">"; if (objTab.DisableLink) { strBreadCrumbs += "<li>" + pagename + "</li>"; } else { strBreadCrumbs += "<li>" + "<a href=\"" + objTab.FullUrl + "\">" + pagename + "</a>" + "</li>"; } strBreadCrumbs += "</ul>"; } else { if (objTab.DisableLink) { strBreadCrumbs += "<span class=\"" + strCssClass + "\">" + pagename + "</span>"; } else { strBreadCrumbs += "<a href=\"" + objTab.FullUrl + "\" class=\"" + strCssClass + "\">" + pagename + "</a>"; } } } } lBreadCrumb = new Literal(); lBreadCrumb.Text = strBreadCrumbs; NBrightPLBreadCrumb.Controls.Add(lBreadCrumb); } }