private string GetObjectFilter() { string pattern = @"([^=\;\s]*)\s*=\s*([^\;]*)"; string filter = $"WHERE(Type=CONST({NavObjectTypeClass.GetObjectTypeByString(ObjectType)}),"; foreach (Match match in Regex.Matches(ObjectFilter, pattern, RegexOptions.IgnoreCase)) { filter = filter + match.Groups[1].Value + "=FILTER(" + match.Groups[2].Value + "),"; } filter = filter.Substring(0, filter.Length - 1) + ")"; return(filter); //return $"WHERE(Type=CONST({NavObjectTypeClass.GetObjectTypeByString(ObjectType)}),ID=FILTER({ObjectFilter}))"; }
protected override void ProcessRecord() { try { List <NavisionClientInformation> navisionClientInformationList = NavConnector.CheckRot(); NavConnector navConnector = null; if (navisionClientInformationList.Count == 0) { return; } foreach (NavisionClientInformation navInfo in navisionClientInformationList) { if (navInfo.DatabaseName.Equals(DatabaseName, StringComparison.InvariantCultureIgnoreCase)) { navConnector = new NavConnector(navInfo); break; } } if (navConnector != null) { Regex regex = new Regex(@"([^\\]*).*\s([0-9]*).txt"); int type, id; foreach (string o in SelectedObjectsList) { MatchCollection collection = regex.Matches(o); if (collection.Count > 0) { Match match = regex.Matches(o)[0]; type = (int)(NavObjectTypeClass.GetObjectTypeByString(match.Groups[1].Value)); int.TryParse(match.Groups[2].Value, out id); if (navConnector.CompileObject(type, id) != 0) { ErrorObjects.Add(o); } } } } } catch (Exception e) { WriteObject(e); return; } WriteObject(ErrorObjects); }
private int ExecuteCmdLet() { try { List <NavisionClientInformation> navisionClientInformationList = NavConnector.CheckRot(); NavConnector navConnector = null; if (navisionClientInformationList.Count == 0) { return(-1); } foreach (NavisionClientInformation navInfo in navisionClientInformationList) { if (navInfo.DatabaseName.Equals(DatabaseName, StringComparison.InvariantCultureIgnoreCase)) { navConnector = new NavConnector(navInfo); break; } } if (navConnector != null) { string path = Path.Combine(TempFolder, ObjectType.ToLower()); Directory.CreateDirectory(path); if (String.IsNullOrEmpty(ObjectFilter)) { throw new Exception("ObjectFilter null."); } string temp = navConnector.GetAllObjectText(NavObjectTypeClass.GetObjectTypeByString(ObjectType), GetObjectFilter()); path = Path.Combine(path, "Export.txt"); File.WriteAllText(path, temp); return(1); } return(-1); } catch (Exception e) { throw e; } }