public IPluginResult InitializePlugin(IEnumerable<IPluginArgument> arguments) { var urlReferrerArgument = arguments.Find<UrlReferrerPluginArgument>(); var session = arguments.Find<SessionPluginArgument>(); NavigationDescription urlReferrer = null; if (urlReferrerArgument.UrlReferrer == null) { urlReferrer = InitNavigationDescriptionByDefault(); session.Session[_previosUrl] = urlReferrer; return new BottomButtonsPluginResult { CancelNavigation = urlReferrer }; } else if (!urlReferrerArgument.UrlReferrer.LocalPath.Contains(string.Format("/{0}/", NameHelper.OrderFulfillmentManagement.Area)) && !urlReferrerArgument.UrlReferrer.Query.Contains(string.Format("%2f{0}%2f", NameHelper.OrderFulfillmentManagement.Area))) { urlReferrer = new NavigationDescription { PublicUrl = urlReferrerArgument.UrlReferrer.ToString() }; session.Session[_previosUrl] = urlReferrer; } var previosUrl = session.Session[_previosUrl] as NavigationDescription; if (previosUrl != null) { return new BottomButtonsPluginResult { CancelNavigation = previosUrl }; } else { var navigationDescription = InitNavigationDescriptionByDefault(); return new BottomButtonsPluginResult { CancelNavigation = navigationDescription }; } }
private NavigationDescription InitNavigationDescriptionByDefault() { string action = null; string controller = null; string area = null; if (_securityContext.CurrentUser.HasUserAnyRoles(RoleType.Appraiser, RoleType.AppraisalCompanyAdmin, RoleType.CompanyAdminAndAppraiser)) { area = NameHelper.Dashboard.Area; controller = NameHelper.Dashboard.HotList.Controller; action = NameHelper.Dashboard.HotList.Index; } else if (_securityContext.CurrentUser.HasUserAnyRoles(RoleType.ClientAdmin, RoleType.Underwriter, RoleType.Processor, RoleType.LoanOfficer, RoleType.CSR, RoleType.JuniorUW, RoleType.CloserFunder, RoleType.OperationsManager, RoleType.SuperUser, RoleType.OrderAdmin, RoleType.UserAdministrator)) { area = NameHelper.Dashboard.Area; controller = NameHelper.Dashboard.NewOrders.Controller; action = NameHelper.Dashboard.NewOrders.Index; } else { //TBD action = NameHelper.Home.Index; controller = NameHelper.Home.Controller; area = string.Empty; } var cancelNavigation = new NavigationDescription { Action = action, Area = area, Conroller = controller }; return cancelNavigation; }