В ASP.NET MVC у меня есть 2 действия «Вход в систему», которые делают почти одно и то же, но используют другую модель и возвращают разные представления. Как я могу убедиться, что я следую правилу СУХОГО с этими действиями?
Я попытался создать отдельную функцию, которая получает нужные мне параметры, но я не могу сделать это с другой моделью.
Вот два действия:
Public Function Login(model As AccountViewModels.InternalLoginViewModel, location As String) As ActionResult
...
If ... Then
...
Return View(model)
End If
If Not ModelState.IsValid Then
Return View(model)
End If
...
If authenticationResult.Success Then
...
ElseIf ... Then
Dim appUser As ApplicationUser = authService.GetApplicationUser(model.EmailUsername)
...
ElseIf .. Then
Return RedirectToAction("OldAppnuserRegister", MVC_CONTROLLER_ACCOUNT, authenticationResult.OldUser.GetRouteValues(location))
ElseIf ... Then
Return RedirectToAction("Index", MVC_CONTROLLER_MANAGE, New With {.userKey = authService.GetApplicationUser(model.EmailUsername).Key.ToString})
End If
...
Return View(model)
End Function
---------------
Public Function RepLogin(model As RepSessionViewModels.InternalLoginViewModel, location As String) As ActionResult
...
If ... Then
...
Return View("~/Views/RepSession/SelectProvider.vbhtml", model)
End If
If Not ModelState.IsValid Then
Return View("~/Views/RepSession/SelectProvider.vbhtml", model)
End If
...
If authenticationResult.Success Then
...
ElseIf ... Then
Dim appUser As ApplicationUser = authService.GetApplicationUser(model.Email)
...
ElseIf ... Then
Return RedirectToAction("OldRepRegister", MVC_CONTROLLER_ACCOUNT, authenticationResult.OldUser.GetRouteValues(location))
ElseIf ... Then
Return RedirectToAction("Index", MVC_CONTROLLER_MANAGE, New With {.userKey = authService.GetApplicationUser(model.Email).Key.ToString})
End If
...
Return View("~/Views/RepSession/SelectProvider.vbhtml", model)
End Function
Я заменил повторный код на "...", чтобы сделать его более читабельным. Вся помощь приветствуется. Спасибо.