using System.Xml.Linq; using Toolkit.Foundation; namespace Wallet; public class CreateItemViewModelHandler(IServiceFactory serviceFactory, IDecoratorService itemHeaderConfigurationDecorator) : IHandler, ItemViewModel?> { public Task Handle(CreateEventArgs args, CancellationToken cancellationToken) { string? name = ""; ItemState? state = null; if (args.Parameters is { Length: 5 }) { (name, bool _, bool _, bool _, state) = args.Parameters.CreateValueTuple(); } if (args.Parameters is { Length: 2 }) { (bool _, state) = args.Parameters.CreateValueTuple(); } ItemHeaderConfiguration configuration = new() { Name = name }; itemHeaderConfigurationDecorator.Set(configuration); if (serviceFactory.Create(args.Parameters) is ItemViewModel itemViewModel) { itemViewModel.Add(configuration, state, "", name); itemViewModel.Add(); return Task.FromResult(itemViewModel); } return Task.FromResult(default(ItemViewModel)); } }