public async Task <IActionResult> AddChangelog(Guid id, bool update = false) { User user = Helpers.UserHelper.GetCurrentUser(User, db); ReferenceGeometry rg = await db.Geometries.FindAsync(id); if (rg != null) { ChangeLog cl = new ChangeLog() { User = user, Log = "Created new geometry" }; if (update) { cl.Log = "Changed geometry"; } ChangeLogGeometry clg = new ChangeLogGeometry() { ChangeLog = cl, Geometry = rg }; db.ChangeLogs.Add(cl); db.ChangeLogsGeometries.Add(clg); await db.SaveChangesAsync(); return(Json("OK")); } return(Json("GeometryId not found")); }
public async Task <IActionResult> Rename(Guid id, string newName) { User user = Helpers.UserHelper.GetCurrentUser(User, db); ReferenceGeometry rg = await db.Geometries .Include(m => m.ProjectGroup).ThenInclude(pg => pg.Group).ThenInclude(g => g.GroupUsers) .Where(m => m.GeometryId == id).FirstOrDefaultAsync(); if (rg == null) { return(StatusCode(404)); } // No right for it, User is not in Group if ((rg.ProjectGroup.Group.GroupUsers.Any(m => m.UserId == user.UserId)) || User.IsInRole("DM")) { rg.GeometryName = newName; ChangeLog cl = new ChangeLog() { Log = "renamed geometry to " + newName, User = user }; db.ChangeLogs.Add(cl); ChangeLogGeometry clg = new ChangeLogGeometry() { ChangeLog = cl, Geometry = rg }; db.ChangeLogsGeometries.Add(clg); db.Entry(rg).State = EntityState.Modified; await db.SaveChangesAsync(); return(Content("OK")); } // No right for it, User is not in Group return(StatusCode(403)); }