public async Task <PartialViewResult> LoadPortfolioViewMode(PortfolioRequest request, string username, string portfolioName, bool coinsOnly = false) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(portfolioName)) { return(null); } request.ViewUser = new ViewUser { Username = username, PortfolioName = portfolioName, }; request.ViewUser.PortfolioName = Utilities.FormatPortfolioName(request.ViewUser.PortfolioName); request.ViewOtherUser = true; ResultsPair <ViewUser> viewUserResult = AuthorizationLogic.AuthorizeViewUser(request.ViewUser.Username, request.ViewUser.PortfolioName); if (!viewUserResult.Result.IsSuccess) { return(GeneratePartialViewError(viewUserResult.Result.Message)); } request.ViewUser = viewUserResult.Value; if (coinsOnly) { request.PortfolioID = request.ViewUser.SelectedPortfolioID; CoinsVM coinsVM = await GenerateCoinsVM(request); return(PartialView("_FullCoins", coinsVM)); } PortfolioVM vm = await GeneratePortfolioVM(request); return(PartialView("_Portfolio", vm)); }