Денис Сайфутдинов: Скорее всего устройство отдает данные через COM порт, для которого делаете клиента, что будет получать данные и уже нужным вам методом пересылать на сервер.
Сергей Протько: 1. Чтобы не плодить в коде клиента множество различных url. 2. Если действие прописано в URL, то как выполнить несколько разнообразных действий?
Михаил: TaskCompletionSource это обьект для отслеживания состояния, он ничего не запускает. await применяется к истансу Task, а не к TaskCompletionSource.
llexus: Тогда сделайте базовый контроллер для всех контроллеров, а в нем переопределие метод OnActionExecuting и в нем если профиль не заполнен, то filterContext.Result = new RedirectResult(Url.Action("Index", "Profile"));