Beispiel #1
0
        public ActionResult Index(string lang = null, string policies = null, bool editMode = false)
        {
            PoliciesForUserViewModel model = _policyServices.GetPoliciesForCurrentUser(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));
        }
        // GET api/policiesapi
        public PoliciesApiModel Get(string lang)
        {
            PoliciesForUserViewModel model = _policyServices.GetPoliciesForCurrentUser(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()
                }
            });
        }
        private IEnumerable <int> MissingRegistrationPolices()
        {
            if (_missingPolicies != null)
            {
                return(_missingPolicies);
            }
            var language = _workContext.GetContext().CurrentCulture;
            // the following calls fetch information from the db. In the services where
            // they are implemented, they should be cached.
            IEnumerable <PolicyTextInfoPart> neededPolicies = _userExtensionServices
                                                              .GetUserLinkedPolicies(language);
            var userPolicies = _policyServices
                               .GetPoliciesForCurrentUser(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);
        }
 public void LoggedIn(IUser user)
 {
     try {
         var policy = _policyService.GetPoliciesForCurrentUser(true); // attacca il cookie delle policy quando un utente si logga
     } catch { }
 }