/// <summary> /// After user has logged in do some actions /// </summary> public async static Task OnPostLogonAsync(string userName, string csrUserName = null) { var customerId = await UserSecurity.GetUserIdAsync(userName); var contact = UserClient.GetCustomer(customerId.ToString(CultureInfo.InvariantCulture), false); if (!string.IsNullOrEmpty(csrUserName)) { CustomerSession.CsrUsername = csrUserName; } if (contact != null) { var lastVisited = contact.ContactPropertyValues.FirstOrDefault(x => x.Name == ContactPropertyValueName.LastVisit); if (lastVisited != null) { lastVisited.DateTimeValue = DateTime.UtcNow; } else { lastVisited = new ContactPropertyValue { Name = ContactPropertyValueName.LastVisit, DateTimeValue = DateTime.UtcNow, ValueType = PropertyValueType.DateTime.GetHashCode() }; contact.ContactPropertyValues.Add(lastVisited); } if (!string.IsNullOrEmpty(csrUserName)) { var lastVisitedByCsr = new ContactPropertyValue { Name = ContactPropertyValueName.LastVisitCSR, DateTimeValue = DateTime.UtcNow, ShortTextValue = string.Format("CSR username: {0}", csrUserName), ValueType = PropertyValueType.DateTime.GetHashCode() }; contact.ContactPropertyValues.Add(lastVisitedByCsr); } UserClient.SaveCustomerChanges(contact.MemberId); } }