Можно ли как-то улучшить/привести в порядок метод или же все нормально?
[RelayCommand]
async Task Add(string nameCampaign)
{
var campaignModel = campaignFactory.CreateM(nameCampaign);
if (await repository.Create(campaignModel))
{
var campaignViewModel = campaignFactory.CreateVM(nameCampaign);
messenger.Send(new AddCampaignMessage(campaignViewModel));
CloseView();
}
}
Этот метод во ViewModel окна.
Суть метода: метод должен добавить данные в бд и коллекцию, для этого:
- В метод приходит строка забинженного свойства к TextBox.
- Далее создается модель через фабрику на основе строки и эта модель отправляется в репозиторий, чтобы добавить в бд.
- Если в бд она добавилась, то возвращается true.
- Если true, то создается vm кампании на основе строки и она отправляется в мессенджер.
- Сообщение отлавливается другой ViewModel где коллекция и там добавляется.
- Дальше закрывается окно.
Мне нужно, чтобы данные в бд добавились, зная что добавились в бд, добавить в коллекцию, но не таскать ссылки на коллекцию.
Суть вопроса: Я так думаю, что метод перегружен, хочу узнать можно ли улучшить как-то, чтобы было по канонам, правилам, как-то декомпозировать, выделить по разным методам и их вызывать в методе Add, или может быть все правильно?