// // GET: /Policies/ public ActionResult Index(string lang = null, string policies = null, bool editMode = false) { PoliciesForUserViewModel model = _policyServices.GetPoliciesForUserOrSession(false, lang); if (policies != null) { string decodedPolicies = Encoding.UTF8.GetString(Convert.FromBase64String(policies)); if (!String.IsNullOrWhiteSpace(decodedPolicies)) { var policyIds = decodedPolicies.Replace("{", "").Replace("}", "").Split(','); model.Policies = model.Policies.Where(x => policyIds.Contains(x.PolicyTextId.ToString())).ToList(); } } model.EditMode = editMode; return(View(model)); }
private IEnumerable <int> MissingPolices() { if (_missingPolicies != null) { return(_missingPolicies); } var language = _workContext.GetContext().CurrentCulture; IEnumerable <PolicyTextInfoPart> neededPolicies = _userExtensionServices.GetUserLinkedPolicies(language); var userPolicies = _policyServices.GetPoliciesForUserOrSession(false, language).Policies.Where(w => w.Accepted || (w.AnswerDate > DateTime.MinValue && !w.PolicyText.UserHaveToAccept)).Select(s => s.PolicyTextId).ToList(); _missingPolicies = neededPolicies.Select(s => s.Id).ToList().Where(w => !userPolicies.Any(a => a == w)); return(_missingPolicies); }
// GET api/policiesapi public PoliciesApiModel Get(string lang) { PoliciesForUserViewModel model = _policySerivces.GetPoliciesForUserOrSession(false, lang); return(new PoliciesApiModel { Language = lang, PoliciesForUser = new SimplePoliciesForUserViewModel { Policies = model.Policies.Select(s => new SimplePolicyForUserViewModel { Accepted = s.Accepted, AnswerDate = s.AnswerDate, AnswerId = s.AnswerId, OldAccepted = s.OldAccepted, PolicyTextId = s.PolicyTextId, UserId = s.UserId }).ToList() } }); }
public IEnumerable <PolicyForUserViewModel> CheckoutPoliciesForUser(IUser user = null, string culture = null) { var settings = GetSettings(); if (settings.PolicyTextReferences.Contains(CheckoutPolicySettingsPart.NoPolicyOption)) { // no policy is configured for checkout return(Enumerable.Empty <PolicyForUserViewModel>()); } // check the user and culture var workContext = _workContextAccessor.GetContext(); var userToCheck = user ?? workContext.CurrentUser; var cultureToCheck = string.IsNullOrWhiteSpace(culture) ? workContext.CurrentCulture : culture; // get checkout policies for the language (if any) if (!_checkoutPoliciesByLanguage.ContainsKey(cultureToCheck)) { // fetch the required policies for the language _checkoutPoliciesByLanguage.Add( cultureToCheck, CheckoutPoliciesForCulture(cultureToCheck)); } var checkoutPolicies = _checkoutPoliciesByLanguage[cultureToCheck]; if (!checkoutPolicies.Any()) { // no policy is configured for checkout return(Enumerable.Empty <PolicyForUserViewModel>()); } // State of all the site's policies for the user. This includes the ones // for which the user hasn't given an answer yet. var userPolicies = _policyServices .GetPoliciesForUserOrSession(userToCheck, false, cultureToCheck) .Policies; // out of those, only return the ones that are configured for checkout return(userPolicies .Where(up => checkoutPolicies.Any(cp => cp.Id == up.PolicyText.Id))); }
public void LoggedIn(IUser user) { try { var policy = _policyService.GetPoliciesForUserOrSession(true); // attacca il cookie delle policy quando un utente si logga } catch { } }