[ROOT]  doc  DocFrag  SELECT Assembly, DocFragType, Description.FirstLine()   <  SKIP 948  >   <  TAKE 192  >   

192 items

DocFragIdAssemblyDocFragTypeDescription.FirstLine()
ARCQuery.QueryExpressionStrict.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.QueryExpressionStrict.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.QueryExpressionStrict.SyntaxHelpARCQueryClassMemberSTRICT {strictnessLevel}
ARCQuery.QueryExpressionTakeARCQueryClassTakes a specific number of elements from the current query result.
ARCQuery.QueryExpressionTake.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.ValueComparerDateTime.StartPeriodARCQueryClassMemberThe start of the interval which this instance compares against.
ARCQuery.ValueComparerDateTime.EndPeriodARCQueryClassMemberThe end of the interval which this instance compares against.
ARCQuery.ValueComparerDateTime.ToDebugPropertiesARCQueryClassMemberExposes all members of this class.
ARCQuery.ForeignKey+IKIPEqualityComparerARCQueryClassUsed by -TryGetPInternal- when it needs distinct list of foreign entities, based on their keys
ARCQuery.ForeignKey+EntityTypeAndKeyARCQueryClassDescribes an entity type and a key.
ARCQuery.ForeignKey+EntityTypeAndKey.EntityTypeARCQueryClassMemberFor -IPRelationsKeysPointingTo-, corresponds to foreign entity type.
ARCQuery.ForeignKey+EntityTypeAndKey.KeyARCQueryClassMemberNOTE: Key in EntityTypeAndKey was relaxed from PK to IK 25 Feb 2022 in order for experiment in -ForeignKey- to work.
ARCQuery.ForeignKey+EntityTypeAndKey.OppositeTermARCQueryClassMemberCorresponds to -PKRelAttributeP-.- OppositeTerm-.
ARCQuery.ForeignKey+ForeignKeySingleStepARCQueryClassDescribes how to traverse between related entities.
ARCQuery.QueryExpressionDataStorageARCQueryClassExperimental as of Mar 2022: Resets value for -DataStorage-
ARCQuery.TranslationSingle.TryGetMacroARCQueryClassMemberReturns a -PropertyStream- representation of this translation.
ARCQuery.ForeignKey+ForeignKeySingleStep.ForeignEntitiesCollectionARCQueryClassMemberThe collection containing all the (foreign) entities for the type that this step leads to
ARCQuery.QueryExpressionDataStorage.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.TranslationSingle.TryGetPARCQueryClassMemberMade virtual 13 Jan 2022. Possibly the same could be done for all other methods here since _properties is Protected anyway.
ARCQuery.QueryExpressionSelfCreate+ISelfCreateCollectionARCQueryClassProvides a standardized mechanism for describing classes that are able to autogenerate collection of themeselves.
ARCQuery.QueryExpressionDataStorage.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.TranslationSingle.TryGetVARCQueryClassMemberNote that 'normally' this method would be irrelevant for a -PRich- object because we will usually be an entity object (like 'Customer') not having an intrinsic value ourselves per se (because we will instead be containing a list of values).
ARCQuery.ForeignKeyDirectionARCQueryEnumDescribes the type of traversing to a foreign entity possible.
ARCQuery.QueryExpressionDataStorage.SyntaxHelpARCQueryClassMemberDATASTORAGE {new hierarchical level} [link adjustment]
ARCQuery.TranslationSingle.ToStringARCQueryClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.ForeignKeyDirection.ToOneARCQueryEnumMemberTraverse to one entity, like traversing from OrderLine to Order (based on OrderLine containing foreign key OrderId) or Order to Customer (based on Order containing foreign key CustomerId).
ARCQuery.QueryExpressionDataStorage.LinkAdjustmentARCQueryClassMemberSee -LinkAdjustment- for documentation.
ARCQuery.TranslationSingle.ReferenceCountARCQueryClassMemberMay be set from outside, for instance with System.Threading.Interlocked.Increment.
ARCQuery.ForeignKeyDirection.ToManyARCQueryEnumMemberTraverse to many entities, like traversing from Customer to Order (based on Order containing foreign key CustomerId) or Order to OrderLine (based on OrderLine containing foreign key OrderId).
ARCQuery.QueryExpressionDataStorage.GlobalDataStorageARCQueryClassMemberTODO: Find some better initialization here.
ARCQuery.UtilQueryARCQueryClassUtility methods for -ARCQuery-.
ARCQuery.AggregationTypeARCQueryEnumUsed by -QueryExpressionPivot- and -QueryExpressionAggregate-.
ARCQuery.QueryExpressionHintARCQueryClassDescribes if hints are to be generated (as query progresses) for potential new queries.
ARCQuery.UtilQuery.IndexOfOutsideOfARCQueryClassMemberEquivalent to string.IndexOf except that any character encountered inside pairs of the 'outsideOf'-char are not counted.
ARCQuery.AggregationType.CountARCQueryEnumMember 
ARCQuery.QueryExpressionHint.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.UtilQuery.IndexOfAnyOutsideOfARCQueryClassMemberEquivalent to string.IndexOfAny except that any character encountered inside pairs of the 'outsideOf'-char are not counted.
ARCQuery.AggregationType.SumARCQueryEnumMember 
ARCQuery.QueryExpressionHint.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.UtilQuery.SplitOutsideOfARCQueryClassMemberEquivalent to string.Split except that any character encountered inside pairs of the 'outsideOf'-char are not counted as separators.
ARCQuery.RelationalOperatorARCQueryEnumRelational / comparision operators.
ARCQuery.QueryExpressionHint.SyntaxHelpARCQueryClassMemberHINT {ON|OFF}
ARCQuery.UtilQuery.SpecialLinkPrefixesARCQueryClassMemberContains prefixes for which links (see -LinkInsertionInDocumentation-) are also desired without the prefix.
ARCQuery.RelationalOperator.EQARCQueryEnumMember 
ARCQuery.QueryExpressionLimitARCQueryClassLimits the final HTML presentation of results (limits the number of elements being presented).
ARCQuery.ValueComparerARCQueryClassCan evaluation expressions like 'WHERE Created = ThisYear.
ARCQuery.RelationalOperator.CONTAINSARCQueryEnumMember 
ARCQuery.QueryExpressionLimit.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.ValueComparer.TryGetPreviousARCQueryClassMemberSuggestion for previous query (browsing 'backwards')
ARCQuery.RelationalOperator.NEQARCQueryEnumMember 
ARCQuery.QueryExpressionLimit.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.ValueComparer.TryGetNextARCQueryClassMemberSuggestion for next query (browsing 'forwards')
ARCQuery.RelationalOperator.NOTCONTAINSARCQueryEnumMember 
ARCQuery.QueryExpressionLimit.SyntaxHelpARCQueryClassMemberSyntax: LIMIT {limit} like 'LIMIT 42'
ARCQuery.ValueComparerDateTimeARCQueryClass-ValueComparerDateTime- is an attempt at offering a human language interface for date and time queries.
ARCQuery.RelationalOperator.GTARCQueryEnumMember 
ARCQuery.QueryExpressionLogARCQueryClassA debugging tool used to extract detailed log information about the execution of the query.
ARCQuery.ValueComparerDateTime.TryGetPreviousARCQueryClassMemberSuggestion for previous query (browsing 'backwards')
ARCQuery.RelationalOperator.LTARCQueryEnumMember 
ARCQuery.QueryExpressionLog.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.ValueComparerDateTime.TryGetNextARCQueryClassMemberSuggestion for next query (browsing 'forwards')
ARCQuery.RelationalOperator.GEQARCQueryEnumMember 
ARCQuery.QueryExpressionLog.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.ValueComparerDateTime.TryParseARCQueryClassMemberNote: This parser is probably exhaustive but not necessarily logical
ARCQuery.RelationalOperator.LEQARCQueryEnumMember 
ARCQuery.QueryExpressionLog.SyntaxHelpARCQueryClassMember'Log'.
ARCQuery.ValueComparerDateTime.ResolutionARCQueryClassMemberSee -ResolutionEnum-.
ARCQuery.RelationalOperator.LIKEARCQueryEnumMemberCase sensitive string wildcard comparision.
ARCQuery.QueryExpressionOrderByARCQueryClassOrders collection.
ARCQuery.ValueComparerDateTime.StepsARCQueryClassMemberValue 0 would mean 'This', like ThisHour, Today, ThisMonth and so on.
ARCQuery.RelationalOperator.ILIKEARCQueryEnumMemberCase insensitive string wildcard comparision.
ARCQuery.QueryExpressionOrderBy.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.ValueComparerDateTime.IsGlidingARCQueryClassMemberThe modifier 'Gliding' (or just 'G') can be appended in order to mean continous gliding periode, so for instance
ARCQuery.RelationalOperator.NOTLIKEARCQueryEnumMemberCase sensitive string wildcard comparision.
ARCQuery.QueryExpressionOrderBy.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.ValueComparerDateTime.IsBeforeARCQueryClassMemberThe modifier 'Before' can be prepended in order to mean from any time before the specified time.
ARCQuery.RelationalOperator.NOTILIKEARCQueryEnumMemberCase insensitive string wildcard comparision.
ARCQuery.QueryExpressionOrderBy.SyntaxHelpARCQueryClassMemberORDER BY {key} [DESC] / [ASC]
ARCQuery.ValueComparerDateTime.IsAfterARCQueryClassMemberThe modifier 'After' can be prepended in order to mean any time after the specified time.
ARCQuery.StrictnessARCQueryEnumDescribes level of -Strictness- when executing query.
ARCQuery.QueryExpressionPivotARCQueryClassCreates a table by querying over two keys like
ARCQuery.ValueComparerDateTime.IsIntervalARCQueryClassMemberNormally the interval which is compared against is the timespan corresponding to -Resolution-.
ARCQuery.Strictness.ONARCQueryEnumMember 
ARCQuery.QueryExpressionPivot.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.ValueComparerDateTime.InitValueARCQueryClassMemberFor debugging purposes. The initial 'now' value used before calculating -StartPeriod- and -EndPeriod-.
ARCAPI.BaseController.GetTimestampIsOldWarningHTMLARCAPIClassMemberIf -TimestampIsOld- is found in the rootStorage-parameter, returns warning message in HTML format.
ARCQuery.QueryExpressionTake.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.Strictness.OFFARCQueryEnumMember 
ARCAPI.BaseController.ToStringARCAPIClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryExpressionTake.SyntaxHelpARCQueryClassMemberTAKE {Count}
ARCQuery.QuantileARCQueryEnumDescribes quantiles like -TERTILE- and -QUARTILE-.
ARCAPI.EditControllerARCAPIClassOffers a simple HTML editing environment of the raw -PropertyStream- from the given key.
ARCQuery.QueryExpressionThenByARCQueryClassAllows sorting by multiple columns.
ARCQuery.Quantile.MEDIANARCQueryEnumMemberDivide into two parts
ARCAPI.EditController.APIMethodARCAPIClassMemberThe (only) API method that this controller supports.
ARCQuery.QueryExpressionThenBy.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.Quantile.TERTILEARCQueryEnumMemberDivide into three parts
ARCAPI.EditController.ToStringARCAPIClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryExpressionThenBy.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.Quantile.QUARTILEARCQueryEnumMemberDivide into four parts
ARCAPI.GQControllerARCAPIClassOffers GraphQL queries.
ARCQuery.QueryExpressionThenBy.SyntaxHelpARCQueryClassMemberTHEN BY {key} [DESC] / [ASC]
ARCQuery.Quantile.QUINTILEARCQueryEnumMemberDivide into five parts
ARCAPI.GQController.APIMethodARCAPIClassMemberThe (only) API method that this controller supports.
ARCQuery.QueryExpressionTitleARCQueryClassThe title to be used in the final presentation of the query result.
ARCQuery.Quantile.SEXTILEARCQueryEnumMemberDivide into 6 parts
ARCAPI.GQController.ToStringARCAPIClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryExpressionTitle.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.Quantile.SEPTILEARCQueryEnumMemberDivide into 7 parts
ARCAPI.RQControllerARCAPIClassRQ = REST Query. Executes a REST like query request against the given -DataStorage-.
ARCQuery.QueryExpressionTitle.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.Quantile.OCTILEARCQueryEnumMemberDivide into 8 parts
ARCAPI.RQController.APIMethodARCAPIClassMemberThe (only) API method that this controller supports.
ARCQuery.QueryExpressionTitle.SyntaxHelpARCQueryClassMemberTITLE {title}
ARCQuery.Quantile.DECILEARCQueryEnumMemberDivide into 10 parts
ARCAPI.RQController.ToStringARCAPIClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryExpressionWhereARCQueryClassExecutes a 'WHERE {key} {operator} {value}' against the given collection.
ARCQuery.Quantile.DUODECILEARCQueryEnumMemberDivide into 12 parts
ARCAPI.DataStorageARCAPIClassThe all-in-memory global application data storage.
ARCQuery.QueryExpressionWhere.ExecuteARCQueryClassMemberTransforms the given input collection into a resulting collection.
ARCQuery.Quantile.HEXADECILEARCQueryEnumMemberDivide into 16 parts
ARCAPI.DataStorage.CreateARCAPIClassMemberCreates a -DataStorage- instance with default parameters.
ARCQuery.QueryExpressionWhere.IsMatchARCQueryClassMemberReturns TRUE if property matches criteria.
ARCQuery.Quantile.VENTILEARCQueryEnumMemberDivide into 20 parts
ARCAPI.DataStorage..ctorARCAPIClassMemberThis method will:
ARCQuery.QueryExpressionWhere.TryCheckForExistenceOfKeyARCQueryClassMemberUsed by query expressions in order to catch wrong field names used or misspelling of field names.
ARCQuery.Quantile.PERCENTILEARCQueryEnumMemberDivide into 100 parts
ARCAPI.DataStorage.StorageARCAPIClassMemberThe actual storage.
ARCQuery.QueryExpressionWhere.SyntaxHelpARCQueryClassMemberWHERE {key} {operator} {value}
ARCQuery.Quantile.PERMILLEARCQueryEnumMemberDivide into 1000 parts
ARCAPI.DataStorage.ControllerStorageARCAPIClassMemberUsually (but not always) a branch of -Storage- (like Storage["log"]["{nodeId}"]["Controller"]).
ARCQuery.QueryExpressionWhere.ValueARCQueryClassMemberThe Value should ideally be as strongly typed as possible. Note that it may be of type -ValueEnum- relevant for queries like WHERE Name = NULL.
ARCQuery.QueryProgressPARCQueryEnumDescribes class -QueryProgress-.
ARCAPI.DataStorage.DocLinksARCAPIClassMemberNote that may be null.
ARCQuery.QueryProgressARCQueryClassKeeps track of execution of query (that is, a query consisting of multiple -QueryExpression-), and also stores final result.
ARCQuery.QueryProgressP.TitleARCQueryEnumMemberThe title to be used in the final presentation of the query result.
ARCAPI.DataStorage.LockARCAPIClassMemberLocking object for thread-safe access from simultaneous API requests.
ARCQuery.QueryProgress.ToJSONSerializeableARCQueryClassMemberOverride of default interface method -ToJSONSerializeable- is necessary because resulting data is 'hidden' within -Result-.
ARCQuery.QueryProgressP.QueriesARCQueryEnumMember 
ARCAPI.DataStorage.ExternalReceiverARCAPIClassMemberTypically used by -AddController-.
ARCQuery.QueryProgress.PreviousQueryJustExecutedARCQueryClassMemberTODO: This is somewhat loosely associated.
ARCQuery.QueryProgressP.StrCurrentTypeARCQueryEnumMemberNormally the -ToStringVeryShort- representation of the type of objects in the -Result- collection.
ARCAPI.DataStorage.DoNotStoreInternallyARCAPIClassMemberTypically used by -AddController-.
ARCQuery.QueryProgress.NextQueryToExecuteARCQueryClassMemberTODO: This is somewhat loosely associated.
ARCQuery.QueryProgressP.CurrentStrictnessARCQueryEnumMemberDescribes -Strictness- ON / OFF when executing query.
ARCAPI.BaseControllerPARCAPIEnumDescribes class -BaseController-.
ARCQuery.QueryProgress.ToHTMLSimpleSingleARCQueryClassMemberAlternative ('override') to -ToHTMLSimpleSingle-.
ARCQuery.QueryProgressP.CreateHintsARCQueryEnumMemberDescribes if hints are to be generated (as query progresses) for new queries.
ARCAPI.BaseControllerP.CountRequestARCAPIEnumMemberNumber of calls to -APIMethod- since application initialization
ARCQuery.QueryProgress.OrderAndReconstructKeysARCQueryClassMemberPart 1:
ARCQuery.QueryProgressP.UseCacheARCQueryEnumMemberDescribes if cache is to be used or not.
ARCAPI.BaseControllerP.CountExceptionARCAPIEnumMemberNumber of exceptions at call to -APIMethod- since application initialization
ARCQuery.QueryProgress.GetHTMLLinksToIndividualQueryPartsARCQueryClassMemberIs able to generate the following:
ARCQuery.QueryProgressP.LinkAdjustmentARCQueryEnumMemberExperimental: Adjustment to be done by -QueryProgress-.- ToHTMLSimpleSingle- (when it ascertains how to go back to root level).
ARCAPI.BaseControllerP.LogLevelARCAPIEnumMember 
ARCQuery.QueryProgress.ToStringARCQueryClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryProgressP.LimitARCQueryEnumMemberLimits the final HTML presentation of results (limits the number of elements being presented). Does not affect the query in itself. Used in order to avoid building huge HTML pages which will not be consumed anyway.
ARCAPI.ResponseFormatARCAPIEnumThe response format, HTML or JSON, for an API request.
ARCQuery.QueryProgress.DataStorageARCQueryClassMemberNote how this property will point to the hierarhical level in the data storage from which the first -QueryExpression- was found in the query string.
ARCQuery.QueryProgressP.TerminateReasonARCQueryEnumMemberThe reason for a query being terminated. This property should contain a user friendly message about the problem and how to fix it.
ARCAPI.ResponseFormat.JSONARCAPIEnumMember 
ARCQuery.QueryProgress.ResultARCQueryClassMemberThis gets updated continously as the different query expressions get evaluated.
ARCQuery.QueryProgressP.AllLogEntriesForThisQueryARCQueryEnumMember 
ARCAPI.ResponseFormat.HTMLARCAPIEnumMember 
ARCQuery.QueryProgress.ExecutedQueriesARCQueryClassMemberThe result from calling -Execute- for each query in -Queries-.
ARCQuery.TranslationsPARCQueryEnumThis enum has no values because the keys are the actual string to be translated.
Assembly AgoBrowse Assembly 
ARCQuery.QueryProgress.AdditionalJavascriptUrlEncoderARCQueryClassMemberReturns the Javascript code for converting characters that are difficult to pass in URLs to a format understood by -Decode-.
ARCQuery.TranslationSinglePARCQueryEnumDescribes class -TranslationSingle-.
AgoBrowse.ProgramAgoBrowseClass 
ARCQuery.TranslationsARCQueryClassOffers a very simple system for keeping track of translation between different ("western") languages.
ARCQuery.TranslationSingleP.TextARCQueryEnumMember 
AgoBrowse.Program.InitStreamProcessorAgoBrowseClassMemberInitializes stream processor.
ARCQuery.Translations.ToStringARCQueryClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.TranslationSingleP.IsMissingARCQueryEnumMemberValue TRUE indicates that the Text given is simply the original key, in other words, the translation for the key is actually missing.
AgoBrowse.RootAgoBrowseClassContains the user friendly welcome text (front page) for the application.
ARCQuery.TranslationsCollectionARCQueryClassThis would consist of one key per language, with keys like "de_DE", "fr_FR", "nb_NO".
ARCQuery.EntityMethodKey+MethodTypeARCQueryEnumExplains type of method signature found (trough reflection) for corresponding entity class.
AgoBrowse.Root.ToHTMLSimpleSingleAgoBrowseClassMemberAlternative ('override') to -ToHTMLSimpleSingle-.
ARCQuery.TranslationsCollection.TrySetPPARCQueryClassMemberReplaces default interface method -TrySetPP-.
ARCQuery.EntityMethodKey+MethodType.SimpleARCQueryEnumMemberSignature like 'bool TryGet{KeyName}(out IP retval, out string errorResponse)'
ARCQuery.EntityMethodKey+MethodType.ComplexARCQueryEnumMemberSignature like 'bool TryGet{KeyName}(IP dataStorage, IK thisKey, out IP retval, out string errorResponse)'
AgoBrowse.Root.TryGetPAgoBrowseClassMemberMade virtual 13 Jan 2022. Possibly the same could be done for all other methods here since _properties is Protected anyway.
ARCQuery.QueryExpressionWhere+WildcardPositionTypeARCQueryEnumPosition of wildcard in value, like '*ABC' (-AtStart-), 'ABC*' (-AtEnd-) and
AgoBrowse.Root.TryGetVAgoBrowseClassMemberNote that 'normally' this method would be irrelevant for a -PRich- object because we will usually be an entity object (like 'Customer') not having an intrinsic value ourselves per se (because we will instead be containing a list of values).
ARCQuery.QueryExpressionWhere+WildcardPositionType.AtStartARCQueryEnumMemberExample: '*ABC'.
AgoBrowse.Root.ToStringAgoBrowseClassMemberTODO: Decide on what we actually want with ToString for this class.
ARCQuery.QueryExpressionWhere+WildcardPositionType.AtEndARCQueryEnumMemberExample: 'ABC*'.
AgoBrowse.Controllers.CompileControllerAgoBrowseClassCompiles a hierarchical 'picture book' from the requested position in the -DataStorage-.
ARCQuery.QueryExpressionWhere+WildcardPositionType.AtStartAndEndARCQueryEnumMemberExample: '*ABC*'.
AgoBrowse.Controllers.CompileController.APIMethodAgoBrowseClassMemberThe (only) API method that this controller supports.
ARCQuery.QueryExpressionWhere+ValueEnumARCQueryEnumHelper enum used internally by -QueryExpressionWhere- in order to represent queries like WHERE Name = NULL, WHERE Name = NOTNULL and WHERE Name = * (ALL).

Generated 2025-06-22 11:41:45.944 UTC