Quick-reference surface of the shared Devity libraries — names and signatures only, so an LLM can check "does this already exist?" without grepping the source. Read the actual file under each project (path given) only if you need real implementation details or plan to use/modify it.
Update this file whenever a public member is added, renamed, or removed in any project below.
DevityDialog(Devity.Blazor/DevityDialog.razor) — modal dialog. Parameters:Id,Title,ChildContent,HeaderContent,FooterContent,CloseButtonContent,OnCancel,OnSubmitAttempted,OnClose,OnShown,ShowHeader,ShowFooter,ShowCloseButton,CloseOnOverlayClick,CloseOnEscape,SubmitOnEnter,Large,FullWidth,DangerSubmit,CancelButtonText,SubmitButtonText,CloseButtonTitle,OverlayClass,Class,AnimationMilliseconds. Methods:Show(),Close(),Cancel(),Submit()(allTask).DialogBase(Devity.Blazor/DialogBase.razor) — base class to inherit for a component that wraps/drives aDevityDialog. Members:Open(),OpenAsync()(auto-focusesFocusElement:InputText/InputTextArea/ElementReference), overridableOnOpen().DevitySelect<TValue>(Devity.Blazor/DevitySelect.razor) — generic searchable select bound like a normal Blazor input. Parameters:Items(Dictionary<string, TValue?>),Value,ValueChanged,ValueExpression,ConvertMethod,DefaultShowcasedText,Style,OnOpen,OnClosed.FocusTrap(Devity.Blazor/FocusTrap.razor) — traps keyboard focus withinChildContent. Parameters:ChildContent,Active,FocusOnActivate,Class,TabIndex.@implements IAsyncDisposable.Name<TValue>(Devity.Blazor/Name.razor) — renders a display name for a bound field viaFor(Expression<Func<TValue>>), e.g. for labels driven by data annotations.Toasts(Devity.Blazor/Toasts.razor) — toast notification host component. Nestedrecord Toast(string Text, ToastType Type = ToastType.Info, int DurationMilliseconds = 5000). Instance methods:RunToast(Toast),KillToast(Toast),Hide(Toast).
Devity.Extensions/DateOnlyExtensions.cs
DateOnly.ToReadableString()
Devity.Extensions/DateTimeExtensions.cs
DateTime.ToHtmlDateString(),.ToHtmlString(),.ToReadableString(),.ToReadableStringWithTime()DateTime.GetUntilEndOfDay(),.GetUntilEndOfMonth()DateTime.IsWithinRange(...)IEnumerable<TimeSpan>.Sum()
Devity.Extensions/EnumExtensions.cs
Enum.GetDisplayName()— reads[Display(Name = ...)].
Devity.Extensions/JsonExtensions.cs
object.ToJson(bool indented = true)
Devity.Extensions/NumberExtensions.cs
long.ToHumanReadableSize()
Devity.Extensions/QueryableExtensions.cs
IQueryable<TSource>.DistinctByDb<TSource, TKey>(keySelector)—DistinctBythat works as pureIQueryable(EF Core-safe).
Devity.Extensions/SearchExtensions.cs
string.Has(string needle),string.NormalizeForSearch()
Devity.Extensions/StringExtensions.cs
string.Shorten(int maxLength),string.ToFormattedIban()
Devity.Extensions/Helpers/ClassFacade.cs
ClassFacade.GetPropertyHumanName(PropertyInfo),ClassFacade.GetCleanType(object)
Devity.Extensions/Helpers/DateHelper.cs
DateHelper.GetFirstDayOfMonth([DateTime]),.GetLastDayOfMonth([DateTime]),.DateAndTimeToDateTime(date, time),.DoDateRangesIntersect(...)
Devity.Extensions/Helpers/JsonHelper.cs
JsonHelper.INDENTED_OPTIONS— aJsonSerializerOptionswithWriteIndented = true.
Devity.Extensions/Templates/ — simple string-template engine:
DevityTemplate(string bodyPath),.AddKey(key, value),.AddLoop(key, loop),.AddCondition(key, bool)DevityTemplateLoop<T>(List<T>),.AddKey(key, Expression<Func<T, dynamic>>)DevityTemplate.PopulateTemplate()(extension method, inTemplateExtensions.cs)
Devity.Mailing/ServiceCollectionExtensions.cs
IServiceCollection.AddDevityMailing<T>(ConfigurationManager)whereT : CommonMailService— reads a"Email"config section shaped likeMailKitOptions.IServiceCollection.AddDevityMailing<T>(MailKitOptions)— same, options passed directly.
Devity.Mailing/CommonMailService.cs
abstract class CommonMailService(IEmailService mailService, string subjectFormat)— inherit this for an app's own mail service.SendEmailAsync(DevityEmail)/SendEmailAsync(DevityEmail, MailKitOptions)— HTML-only send (the latter through a per-call SMTP account instead of the one configured at startup).SendMultipartEmailAsync(DevityEmail, string plainTextMessage, IDictionary<string,string>? extraHeaders = null)/SendMultipartEmailAsync(DevityEmail, string plainTextMessage, MailKitOptions, IDictionary<string,string>? extraHeaders = null)— sends amultipart/alternativemessage (HTML fromDevityEmail.Template+ the given plain-text body).extraHeaderssets raw message headers (e.g.List-Unsubscribe). RequiresDevity.NETCore.MailKit>= 2.3.0 (>= 2.4.0 forextraHeaders).
Devity.Mailing/DevityEmail.cs
DevityEmail(string emailAddress, string subjectMessage, DevityTemplate template)—.AddAttachment(path). Properties:EmailAddress,SubjectMessage,Template,Attachments.
Devity.Payout/PayoutService.cs
PayoutService(IConfiguration, ILogger<PayoutService>)GetTokenAsync()CreateCheckoutAsync(...)→PayoutCheckoutResponseDTOGetCheckoutAsync(...)→PayoutCheckoutDTOCreateRefundAsync(...)→PayoutRefundResponseDTOGetBalanceAsync()→PayoutBalanceResponseDTO[]
Devity.Payout/PayoutWebhookType.cs — enum: WithdrawalPaid, WithdrawalFailed,
CheckoutSucceeded, CheckoutExpired, CheckoutRefundRequest, CheckoutRefunded,
CheckoutRefundFailed.
DTOs live under Devity.Payout/DTOs/ (PayoutCheckoutDTO, PayoutCustomerDTO,
PayoutProductDTO, PayoutRefundDTO, PayoutWebhookDTO, etc.) and exceptions under
Devity.Payout/Exceptions/ (PayoutBalanceUnavailableException) — check those directly for
field-level shape when actually integrating.