private void LogEvent(IdentityAuditEventArgs eventArgs, DatabaseContext dbCtx) { // LoginFailed always has the AffectedUser as 0 when their is no user for the login, // see https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Core/Security/BackOfficeUserManager.cs#L609. // This is a bug in Umbraco's implementation, so we will ignore the AffectedUser in that case. int affectedUser = eventArgs.Action == AuditEvent.LoginFailed && eventArgs.Username != null && eventArgs.Comment != null ? -1 : eventArgs.AffectedUser; var userLogItem = new UserLogItem( eventArgs.PerformingUser, affectedUser, eventArgs.Username, eventArgs.Action, eventArgs.IpAddress, eventArgs.DateTimeUtc); userLogItem.Save(dbCtx); }
public async Task <IHttpActionResult> GetUserLog() { List <UserLogItem> toReturn = new List <UserLogItem>(); try { using (SqlConnection con = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { using (SqlCommand cmd = new SqlCommand("Select * from UserPurchaseLog where UserId=@id", con)) { cmd.Parameters.AddWithValue("@id", User.Identity.GetUserId()); await con.OpenAsync(); using (SqlDataReader rdr = await cmd.ExecuteReaderAsync()) { while (rdr.Read()) { UserLogItem item = new UserLogItem(); item.Id = Convert.ToInt32(rdr["Id"].ToString()); item.Title = rdr["Title"].ToString(); item.UserId = rdr["UserId"].ToString(); item.Price = double.Parse(rdr["Price"].ToString()); item.Items = int.Parse(rdr["Items"].ToString()); item.PurchaseTime = Convert.ToDateTime(rdr["PurchaseTime"].ToString()); toReturn.Add(item); } return(Ok(toReturn)); } } } } catch (Exception e) { return(InternalServerError(e)); } }
private void RunDatabaseMigrations(ApplicationContext appCtx) { UserLogItem.RunMigrations(appCtx); }