Можно ли как-то улучшить/привести в порядок метод или же все нормально?

[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 окна.

Суть метода: метод должен добавить данные в бд и коллекцию, для этого:

  1. В метод приходит строка забинженного свойства к TextBox.
  2. Далее создается модель через фабрику на основе строки и эта модель отправляется в репозиторий, чтобы добавить в бд.
  3. Если в бд она добавилась, то возвращается true.
  4. Если true, то создается vm кампании на основе строки и она отправляется в мессенджер.
  5. Сообщение отлавливается другой ViewModel где коллекция и там добавляется.
  6. Дальше закрывается окно.

Мне нужно, чтобы данные в бд добавились, зная что добавились в бд, добавить в коллекцию, но не таскать ссылки на коллекцию.

Суть вопроса: Я так думаю, что метод перегружен, хочу узнать можно ли улучшить как-то, чтобы было по канонам, правилам, как-то декомпозировать, выделить по разным методам и их вызывать в методе Add, или может быть все правильно?


Ответы (0 шт):