Exemplo n.º 1
0
        public LoginStatus GuestSignIn()
        {
            var guestEmail = HtmlUtility.GetRandomEmail();
            var status     = SignIn(ApplicationConfig.VisitorAuthenticationScheme, guestEmail, null, true, true);

            return(status);
        }
Exemplo n.º 2
0
        public void AnonymizeUser(int userId)
        {
            var user = Get(userId);
            //addresses
            var addresses = _addressService.Get(x => x.EntityId == userId && x.EntityName == nameof(User)).ToList();
            var orders    = _orderService.Get(x => x.UserId == userId).ToList();
            var reviews   = _reviewService.Get(x => x.UserId == userId).ToList();
            var email     = user.Email;

            Transaction.Initiate(transaction =>
            {
                //set deleted to true
                user.Deleted = true;
                //randomize email
                user.Email              = HtmlUtility.GetRandomEmail();
                user.FirstName          = string.Empty;
                user.LastName           = string.Empty;
                user.Name               = string.Empty;
                user.Active             = false;
                user.CompanyName        = string.Empty;
                user.LastLoginIpAddress = string.Empty;
                user.MobileNumber       = string.Empty;
                user.Remarks            = string.Empty;
                user.ReferrerId         = 0;
                user.NewslettersEnabled = false;
                Update(user, transaction);

                //delete sent emails
                _emailService.Delete(
                    x => x.TosSerialized.Contains(email) || x.CcsSerialized.Contains(email) ||
                    x.BccsSerialized.Contains(email), transaction);

                //delete previous passwords
                _previousPasswordService.Delete(x => x.UserId == userId, transaction);

                //delete addresses
                foreach (var address in addresses)
                {
                    _addressService.Delete(address, transaction);
                }

                //orders
                foreach (var order in orders)
                {
                    order.BillingAddressSerialized  = null;
                    order.ShippingAddressSerialized = null;
                    order.UserIpAddress             = string.Empty;
                    order.UserGstNumber             = string.Empty;
                    _orderService.Update(order, transaction);
                }

                //review
                foreach (var review in reviews)
                {
                    _reviewService.Delete(review, transaction);
                }
            });
        }