using Toolkit.Foundation; namespace Wallet; public class ConfirmUpdateItemHandler(IDecoratorService> itemDecorator, IDecoratorService itemConfigurationDecorator, IDecoratorService itemHeaderConfiguration, IMediator mediator, IPublisher publisher) : INotificationHandler> { public async Task Handle(ConfirmEventArgs args) { if (itemDecorator?.Service is Item<(Guid, string)> item && itemHeaderConfiguration.Service is ItemHeaderConfiguration headerConfiguration && itemConfigurationDecorator.Service is ItemConfiguration itemConfiguration) { string? name = headerConfiguration?.Name; if (name is not null) { publisher.Publish(Notify.As(new ItemHeader(name))); (Guid id, string _) = item.Value; Item<(Guid, string)> newItem = new((id, name)); publisher.Publish(Modified.As(item, newItem)); itemDecorator.Set(newItem); await mediator.Handle>, bool>(new UpdateEventArgs>(new Item<(Guid, string, ItemConfiguration)>((id, name, itemConfiguration)))); } } } }