/// <summary> /// Gets the stringified query expression format of the current instance. A formatted string for field-operation-parameter will be /// conjuncted by the value of the <see cref="RepoDb.Enumerations.Conjunction"/> property. /// </summary> /// <param name="index">The parameter index for batch operation.</param> /// <param name="dbSetting">The currently in used <see cref="IDbSetting"/> object.</param> /// <returns>A stringified formatted-text of the current instance.</returns> public string GetString(int index, IDbSetting dbSetting) { // Fix first the parameters Fix(); // Variables var groupList = new List <string>(); var conjunction = Conjunction.GetText(); var separator = string.Concat(" ", conjunction, " "); // Check the instance fields var queryFields = QueryFields.AsList(); if (queryFields?.Count > 0) { var fields = QueryFields .Select(qf => qf.AsFieldAndParameter(index, dbSetting)).Join(separator); groupList.Add(fields); } // Check the instance groups var queryGroups = QueryGroups.AsList(); if (queryGroups?.Count > 0) { var groups = QueryGroups .Select(qg => qg.GetString(index, dbSetting)).Join(separator); groupList.Add(groups); } // Return the value return(IsNot ? string.Concat("NOT (", groupList.Join(conjunction), ")") : string.Concat("(", groupList.Join(separator), ")")); }