Skip to content

SAIF.Framework.Common API reference

This page lists all public types exposed by SAIF.Framework.Common. Each type links to its full API reference page.

Types

Type Kind Namespace Purpose
Enforce Class SAIF Static fail-fast guard class used to validate method arguments and internal state before use; the guard layer that IEnumerableExtensions, DictionaryExtensions, and other members throughout the library call at the top of their bodies.
DateRange Class SAIF.Common Concrete, mutable begin/end date-pair implementation of IDateRange, with value-equality semantics, string round-tripping, and a shared empty-range singleton.
NullableDateRange Class SAIF.Common Date range whose end date may be open-ended (null), used to classify overlap relationships between two such ranges via DateRangeOverlapResult.
DateMaker Class SAIF.Common Static helpers for building and formatting DateTime values from EDI-style date/time string fragments used by trading-partner file formats.
Julian Class SAIF.Common Static helpers for validating and converting between Julian-format date strings (year + day-of-year) and DateTime, matching an EDI/legacy Julian date convention.
Serializer Class SAIF.Common Static JSON/XML serialization helpers built on DataContractJsonSerializer and XmlSerializer, used to persist and reload plain data objects.
Reflector Class SAIF.Common Single-method reflection helper that enumerates the public properties of a type, used by mapping/binding code that needs a type's property set without hand-written reflection calls.
SequenceGenerator Class SAIF.Common Abstract base for in-memory monotonic sequence generators; concrete subclasses (Sequence, LongSequence) supply the increment logic for a specific numeric type.
Sequence Class SAIF.Common In-memory int sequence generator; not thread-safe, so concurrent callers can observe or produce duplicate values.*
LongSequence Class SAIF.Common In-memory long sequence generator for value ranges that exceed int capacity; not thread-safe.*
EntityBase Class SAIF.Common Marker base class (no members) that identifies a type as a data entity by implementing IDataEntity; consuming libraries use it as a common generic constraint anchor.
ValidationResult Class SAIF.Common Serializable, mutable implementation of IValidationResult that aggregates validation failures and free-text messages and derives its IsValid flag from whether any failures are present.
ValidationFailure Class SAIF.Common Implementation of IValidationFailure describing one field-level validation error: which property failed, the attempted value, and the message to surface.
SaifValidationException Class SAIF.Common Exception thrown to signal a validation failure, optionally carrying a full IValidationResult so callers can surface all failures rather than a single message. (BR-044)
IDateRange Interface SAIF.Common Contract for a begin/end date pair, implemented by DateRange and consumed throughout DateRangeExtensions.
IDateRangeList Interface SAIF.Common Contract for a type that can project itself into a sequence of IDateRange values, used by DateRangeExtensions overlap/contiguity checks.
IValidationResult Interface SAIF.Common Contract for an aggregate validation outcome, implemented by ValidationResult and referenced by SaifValidationException.
IValidationFailure Interface SAIF.Common Contract for a single field-level validation error, implemented by ValidationFailure.
ISequenceGenerator Interface SAIF.Common Contract for a monotonic value generator, implemented by SequenceGenerator<T> and its subclasses Sequence/LongSequence.
IDataEntity Interface SAIF.Common Marker interface (no members) identifying a type as a data entity; implemented by EntityBase<TEntity> for use as a generic constraint anchor by consuming libraries.
ContiguousOptions Enum SAIF.Common Controls how strictly adjacency is judged when testing whether a sequence of date ranges is contiguous. (BR-007)
IncludeComparisons Enum SAIF.Common Controls which boundary of a comparison range is treated as inclusive, used by IComparableExtensions.IsBetween. (BR-036)
OverlappingDateOptions Enum SAIF.Common Controls whether two date ranges sharing an identical boundary date count as overlapping. (BR-004)
ContextException Class SAIF.Common.Classes Abstract base for exceptions that signal a UI/view context problem (missing, invalid, disabled), carrying the target view name and an optional model for the handler to act on.
NoContextException Class SAIF.Common.Classes Signals that no context/view could be resolved at all; defaults TargetView to "NoContext". (BR-048)
InvalidContextException Class SAIF.Common.Classes Signals that the resolved context/view is invalid for the current request; defaults TargetView to "InvalidContext". (BR-048)
InvalidContextForUserException Class SAIF.Common.Classes Signals that the resolved context/view is invalid specifically for the current user; defaults TargetView to "InvalidContextForUser". (BR-048)
DisabledViewException Class SAIF.Common.Classes Signals that the target view exists but is currently disabled; defaults TargetView to "DisabledView" and can carry a model describing the disabled state. (BR-048)
DateRangeOverlapResult Enum SAIF.Common.Enums Classifies how two NullableDateRange values relate to one another — the full set of directional overlap states returned by NullableDateRange.GetOverlapState. (BR-006)
LogType Enum SAIF.Common.Enums Identifies which of a console application's fixed log slots a message should be routed to, used by IConsoleLogService/ILogWriter. (BR-092)
ILogWriter Interface SAIF.Common.Interfaces Contract for a single log destination (one file), covering timestamp formatting and buffered writes. No implementation ships in this library. (BR-091, BR-094)*
IConsoleLogService Interface SAIF.Common.Interfaces Contract for a multi-log logging façade that registers named/typed log files and routes writes and exceptions to them. No implementation ships in this library. (BR-091, BR-094)*
StringUtilities Class SAIF.Common.Utility Static character-class filters that extract or strip specific categories of characters (digits, letters, punctuation, symbols, control characters, whitespace) from a string. (BR-075)
BooleanExtensions Class SAIF.Common.Extensions Renders a bool as one of several fixed flag-string conventions used by file/UI formats. (BR-073)
ByteExtensions Class SAIF.Common.Extensions Byte-array helpers for locating a known signature (e.g. a PDF header), stripping a leading header, and hashing a payload. (BR-053, BR-054, BR-056)
DateExtensions Class SAIF.Common.Extensions Convenience predicates and formatters for DateTime/DateTime? values: current/future/past classification, min/max detection, short-date rendering, and epoch conversion.
DateRangeExtensions Class SAIF.Common.Extensions The library's date-range algorithm surface: equality, open-endedness, overlap and contiguity testing, and range filtering, operating on IDateRange/IEnumerable<IDateRange>. (BR-001, BR-003, BR-004, BR-005) through BR-011, BR-034, BR-036, BR-037
DictionaryExtensions Class SAIF.Common.Extensions Dictionary merge and safe-read/upsert helpers layered on Enforce guards. (BR-082, BR-083, BR-084)
DotNet40Extensions Class SAIF.Common.Extensions JSON load/deserialize helpers for string, mirroring a subset of Serializer's functionality for call sites that only have a JSON string/path and not a generic serializer reference.
ExceptionExtensions Class SAIF.Common.Extensions Formats an exception and its full InnerException chain for display or for a delimited application error log. (BR-049) through BR-052
ExpressionExtensions Class SAIF.Common.Extensions Strongly-typed property access via expression trees: resolving a PropertyInfo from a lambda and setting a property's value without reflecting by string name. (BR-061) through BR-064
FileExtensions Class SAIF.Common.Extensions Materializes a Stream into an in-memory byte array via MemoryStream. (BR-089)
GenericExtensions Class SAIF.Common.Extensions Generic-object helpers: throw-if-null with a custom exception type, a reference/value-aware null test, and JSON/XML string conversion shortcuts. (BR-058)
IComparableExtensions Class SAIF.Common.Extensions Range-membership test for any IComparable value, with boundary-inclusivity controlled by IncludeComparisons. (BR-036)
IEnumerableExtensions Class SAIF.Common.Extensions General-purpose LINQ gap-fillers: eager iteration, string-joining, membership testing, trailing-item selection, keyed distinct, and full/left outer joins. (BR-039, BR-085) through BR-088
NumericExtensions Class SAIF.Common.Extensions Numeric string testing and decimal precision helpers. (BR-079) through BR-081
SecurityPrincipalExtensions Class SAIF.Common.Extensions Extracts the account name and domain portions from an IIdentity's Name (typically a Windows identity in DOMAIN\user form). (BR-071)
StringExtensions Class SAIF.Common.Extensions The library's largest extension surface: null/blank testing, boolean parsing, slicing/truncation, case conversion (including delegation to TitleCase), Unicode normalization, numeric-character testing, decimal conversion, and string wrapping. (BR-072, BR-074, BR-076) through BR-078
UriExtensions Class SAIF.Common.Extensions Derives ASP.NET MVC-style application/controller/action/page name fragments from a request Uri's path segments. (BR-068, BR-069, BR-070)
IncludeComparisons Enum SAIF.Common.Extensions Duplicate of SAIF.Common.IncludeComparisons, declared separately in the SAIF.Common.Extensions namespace; controls which boundary of a comparison range is treated as inclusive. (BR-036)
DateRangeExtensions.OverlappingOptions Enum SAIF.Common.Extensions Nested enum controlling whether two date ranges sharing an identical boundary date count as overlapping, used by DateRangeExtensions.IsOverlapping. (BR-004)
DateRangeExtensions.ContiguousOptions Enum SAIF.Common.Extensions Nested enum controlling how strictly adjacency is judged when testing whether a sequence of date ranges is contiguous, used by DateRangeExtensions.IsContiguous. (BR-007)

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Common/SAIF.Common/Interfaces/IDateRange.cs
  • Common/SAIF.Common/Interfaces/IValidationResult.cs
  • Common/SAIF.Common/Interfaces/IValidationFailure.cs
  • Common/SAIF.Common/Interfaces/ISequenceGenerator.cs
  • Common/SAIF.Common/Interfaces/IDataEntity.cs
  • Common/SAIF.Common/Interfaces/ILogWriter.cs
  • Common/SAIF.Common/Interfaces/IConsoleLogService.cs
  • Common/SAIF.Common/Classes/Enforce.cs
  • Common/SAIF.Common/Classes/DateRange.cs
  • Common/SAIF.Common/Classes/NullableDateRange.cs
  • Common/SAIF.Common/Classes/DateMaker.cs
  • Common/SAIF.Common/Classes/Julian.cs
  • Common/SAIF.Common/Classes/Serializer.cs
  • Common/SAIF.Common/Classes/Reflector.cs
  • Common/SAIF.Common/Classes/SequenceGenerator.cs
  • Common/SAIF.Common/Classes/Sequence.cs
  • Common/SAIF.Common/Classes/LongSequence.cs
  • Common/SAIF.Common/Classes/EntityBase.cs
  • Common/SAIF.Common/Classes/ValidationResult.cs
  • Common/SAIF.Common/Classes/ValidationFailure.cs
  • Common/SAIF.Common/Classes/SaifValidationException.cs
  • Common/SAIF.Common/Classes/ContextException.cs
  • Common/SAIF.Common/Utility/StringUtilities.cs
  • Common/SAIF.Common/Utility/TitleCase.cs
  • Common/SAIF.Common/Enums/Enums.cs
  • Common/SAIF.Common/Enums/DateRangeOverlapResult.cs
  • Common/SAIF.Common/Enums/LogType.cs
  • Common/SAIF.Common/Extensions/BooleanExtensions.cs
  • Common/SAIF.Common/Extensions/ByteExtensions.cs
  • Common/SAIF.Common/Extensions/DateExtensions.cs
  • Common/SAIF.Common/Extensions/DateRangeExtensions.cs
  • Common/SAIF.Common/Extensions/DictionaryExtensions.cs
  • Common/SAIF.Common/Extensions/DotNet40Extensions.cs
  • Common/SAIF.Common/Extensions/ExceptionExtensions.cs
  • Common/SAIF.Common/Extensions/ExpressionExtensions.cs
  • Common/SAIF.Common/Extensions/FileExtensions.cs
  • Common/SAIF.Common/Extensions/GenericExtensions.cs
  • Common/SAIF.Common/Extensions/IComparableExtensions.cs
  • Common/SAIF.Common/Extensions/IEnumerableExtensions.cs
  • Common/SAIF.Common/Extensions/NumericExtensions.cs
  • Common/SAIF.Common/Extensions/SecurityPrincipalExtensions.cs
  • Common/SAIF.Common/Extensions/StringExtensions.cs
  • Common/SAIF.Common/Extensions/UriExtensions.cs
  • Common/SAIF.Common/Properties/AssemblyInfo.cs