public LoginStatus GuestSignIn() { var guestEmail = HtmlUtility.GetRandomEmail(); var status = SignIn(ApplicationConfig.VisitorAuthenticationScheme, guestEmail, null, true, true); return(status); }
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); } }); }