MVC - Przechwycenie danych z kontrolera

0

Witam

Mam sobie kontroler, a w tym kontrolerze metody, które zwracają JsonResult.
Jak FE odpali jakąś metodę w kontrolerze to przekazuje jej parametry i tam w środku tej metody są odpalane metody z WCFa, a na koniec zwracany jest wynik do FE w postaci JSONa.

To co potrzebuję zrobić to przechwycić wynik wykonania metody z WCFa i zwalidować z poziomu kontrolera poprawność danych zanim ten wynik zostanie przesłany w postaci JSONa na FE.
Trop na jaki wpadłem to użycie filtrów akcji, ale nie wiem czy z ich poziomu można się dostać do danych, które dzieją się wewnątrz metod kontrolera.
Jest taki sposób? Ewentualnie jak to inaczej zrobić?

public class ImportFileComponentController : BaseController
{
        private readonly IReportsService _reportsService;

        protected override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            base.OnResultExecuting(filterContext);  // <--- tutaj nie ma danych wynikowych z WCFa
        }

        public ImportFileComponentController(IReportsService reportsService)
        {
            _reportsService = reportsService;
        }        

        [HttpPost]
        public JsonResult UploadFile(HttpPostedFileBase file)
        {
            var result = _reportsService.ImportFile(file);  //<---- jak wyciągnąć dane wynikowe po wykonaniu tej metody z WCF?

            return Json(new
                {
                    success = result.isSuccess,
                    errors = result.Messages,
                    filename = result.FileName
                }, "text/html");
        }
}
0

Opakuj sobie tę metodę w jakiś serwis i tam zrób walidację. W filtrze możesz tylko zobaczyć co wchodzi do metody kontrolera i co z niej wychodzi.

0

Tylko, że jeśli walidacja nie przejdzie to potrzebuję wywołać popu na FE i przerwać działanie metody w kontrolerze.

0

Wynajdujesz koło na nowo, jeśli akcja w kontrolerze się nie powiedzie to zwracasz http status 400: Bad Request, po bożemu ;)

0
altek napisał(a):

To co potrzebuję zrobić to przechwycić wynik wykonania metody z WCFa i zwalidować z poziomu kontrolera poprawność danych zanim ten wynik zostanie przesłany w postaci JSONa na FE.
Trop na jaki wpadłem to użycie filtrów akcji, ale nie wiem czy z ich poziomu można się dostać do danych, które dzieją się wewnątrz metod kontrolera.
Jest taki sposób? Ewentualnie jak to inaczej zrobić?

Ale czemu chcesz używać filtrów do tego? Czemu tego po prostu nie zrobić po odebraniu response z WCF w kodzie? Tyle, że przeniósłbym to z kontrolerów do jakiegoś serwisu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1