public async Task <ContactCommandResult> ManageContact(ContactCommand cmd) { return(cmd.GetType().Name switch { nameof(SaveContact) => await HandleSaveContact((SaveContact)cmd), nameof(DeleteContact) => await HandleDeleteContact((DeleteContact)cmd), _ => throw new NotSupportedException($"{cmd.GetType().Name} is not supported") });
private void AddContact(ContactCommand contactCommand) { Contact contactWithId = _contactService.Add(Mapper.Map <Contact>(contactCommand.Contact)); ContactMobileViewModel contactViewModel = Mapper.Map <ContactMobileViewModel>(contactWithId); _contactMobileAppService.ObservableContacts.Add(contactViewModel); _contactEvents.Enqueue(new AddContactEvent(contactWithId)); }
public void ProcessQueue(ContactCommand contactCommand) { _contactCommands.Enqueue(contactCommand); while (_contactCommands.Count > 0) { ContactCommand command = _contactCommands.Dequeue(); if (command is AddContactCommand) { AddContact(command); } } }
public async Task <ContactCommandResult> ManageContact(ContactCommand cmd) => cmd switch {