Это базовая клиентская система.
Когда я добавляю адрес, который хочу проверить, он не существует в базу данных.
Это можно сделать с помощью события домена в сущности «Клиент».
Код: Выделить всё
public async Task AddAdress(AddAddressCommand addAddressCommand)
{
await DomainEvents.Raise(new AddingAddress(addAddressCommand));
return Result.Success;
}
Код: Выделить всё
public class AddAddressCommand
{
public Address Address { get; set; }
public AddAddressCommand(Address address)
{
Address = address;
}
}
Код: Выделить всё
public record Address(AddressType AddressType,
string StreetName,
string HouseNumber,
string HousenumberAddition,
string PostalCode,
string Residence
)
{
public AddressType AddressType { get; set; } = AddressType;
public string StreetName { get; set; } = StreetName;
public string HouseNumber { get; set; } = HouseNumber;
public string HouseNumberAddition { get; set; } = HousenumberAddition;
public string PostalCode { get; set; } = PostalCode;
public string Residence { get; set; } = Residence;
}
Код: Выделить всё
public static class DomainEvents
{
public static Func Mediator { get; set; }
public static async Task Raise(T args) where T : INotification
{
var mediator = Mediator.Invoke();
await mediator.Publish(args);
}
}
Я регистрирую экземпляр Mediator в своем app.xaml.cs следующим образом:
Код: Выделить всё
ServiceLocator.Default.RegisterType();
Я нашел множество примеров регистрации MediatR, но все они основаны на веб-API. .
Я не могу понять, как правильно зарегистрировать MediatR.
App.xaml.cs и domainevents находятся в отдельных сборках. >
Я пытался найти сервис типа
Код: Выделить всё
public static class DomainEvents
{
public static Func Mediator { get; set; }
public static async Task Raise(T args) where T : INotification
{
var mediator = ServiceLocator.Default.ResolveType();
mediator = Mediator.Invoke();
await mediator.Publish(args);
}
}
Полагаю, мне нужно что-то вроде
Код: Выделить всё
ServiceLocator.Default.RegisterType(AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(Program).Assembly)))}
Подробнее здесь: https://stackoverflow.com/questions/792 ... pplication