/// <summary> /// Change the settings for layer visible or not in settings /// </summary> /// <param name="id">LayerId</param> /// <param name="visible">Visible yes / no</param> /// <returns></returns> public async Task <IActionResult> ChangeEnabledLayer(int id, bool visible) { string projectid = HttpContext.Session.GetString("Project"); Project p = _context.Projects.Find(new Guid(projectid)); User me = UserHelper.GetCurrentUser(User, _context); Layer l = _context.Layers.Find(id); if ((p != null) && (me != null) && (l != null)) { UserHasProjectLayer upl = _context.UsersHaveProjectLayers.Where(m => m.User == me && m.Project == p && m.Layer == l).FirstOrDefault(); if (upl == null) { upl = new UserHasProjectLayer() { Layer = l, Project = p, User = me, Visible = visible, Transparency = 1 }; _context.UsersHaveProjectLayers.Add(upl); } else { upl.Visible = visible; _context.Entry(upl).State = EntityState.Modified; } await _context.SaveChangesAsync(); return(Content("OK")); } return(Content("Error")); }
public async Task<IActionResult> Edit(Guid id, [Bind("GroupId,GroupName,ID_Extern,GroupStatusId, CreatorId")] Group mgroup) { if (id != mgroup.GroupId) { return NotFound(); } if (ModelState.IsValid) { Status ok = await _context.Statuses.Where(m => m.Id == StatusEnum.changed).FirstOrDefaultAsync(); mgroup.StatusId = ok.Id; // if group has Gruppe bereit -> change the corresponding projects to Bereit if (mgroup.GroupStatusId == GroupStatusEnum.Gruppe_bereit) { List<ProjectGroup> pgs = await _context.ProjectsGroups.Where(m => m.GroupId == mgroup.GroupId).ToListAsync(); foreach (ProjectGroup pg in pgs) { Project p = await _context.Projects.Include(m=>m.ProjectStatus).Where(m => m.ProjectId == pg.ProjectId).FirstOrDefaultAsync(); if (p.ProjectStatus.Id == ProjectStatusEnum.Projekt_neu) { ProjectStatus bereit = await _context.ProjectStatuses.Where(m => m.Id == ProjectStatusEnum.Projekt_bereit).FirstAsync(); p.ProjectStatus = bereit; _context.Entry(p).State = EntityState.Modified; } } } try { _context.Update(mgroup); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GroupExists(mgroup.GroupId)) { return NotFound(); } else { throw; } } return RedirectToAction(nameof(Index)); } ViewData["GroupStatusId"] = new SelectList(_context.GroupStatuses, "Id", "Description", mgroup.GroupStatusId); ViewData["StatusId"] = new SelectList(_context.Statuses, "Id", "Descrpition", mgroup.StatusId); return View(mgroup); }
public async Task <IActionResult> Delete(Guid id) { 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.StatusId = StatusEnum.deleted; ChangeLog cl = new ChangeLog() { Log = "deleted geometry", 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)); }
// GET: Users/Edit/5 public async Task <IActionResult> Edit(string?id) { User me = UserHelper.GetCurrentUser(User, db); if (!User.IsInRole("DM")) { id = me.UserId; } else if (id == null) { id = me.UserId; } if (id == null) { return(NotFound()); } var edituser = await db.Users.FindAsync(id); List <UserPoco> ups = await GetAllUsers(); if (edituser == null) { if (ups.Where(m => m.username == id).Any()) { UserPoco up = ups.Where(m => m.username == id).First(); edituser = new User(); edituser.Name = up.lastName; edituser.FirstName = up.firstName; edituser.Email = up.email; edituser.UserId = up.username; edituser.Status = db.Statuses.Where(m => m.Id == StatusEnum.unchanged).FirstOrDefault(); db.Entry(edituser).State = EntityState.Added; db.Users.Add(edituser); await db.SaveChangesAsync(); } } EditUserViewModel euvm = new EditUserViewModel() { UserId = edituser.UserId, Email = edituser.Email, FirstName = edituser.FirstName, Name = edituser.Name, enabled = ups.Where(m => m.username == edituser.UserId).FirstOrDefault().enabled, roles = ups.Where(m => m.username == edituser.UserId).FirstOrDefault().roles }; return(View(euvm)); }
public static async Task CreateDynamicView(BioDivContext db, ReferenceGeometry rg, ProjectGroup g, List <Group> myGroups, GeometrieViewModel gvm) { foreach (Record r in rg.Records.Where(m => m.StatusId != StatusEnum.deleted)) { bool isReadOnly = true; if (g == null) { isReadOnly = false; } else if ((g.GroupStatusId != GroupStatusEnum.Gruppendaten_gueltig) && (g.GroupStatusId != GroupStatusEnum.Gruppendaten_erfasst)) { if (myGroups.Where(m => m.GroupId == r.ProjectGroupGroupId).Count() > 0) { isReadOnly = false; } } RecordViewModel rvm = new RecordViewModel() { Record = r }; List <PropertyVm> dynamicForm = new List <PropertyVm>(); // BDC Guid PropertyVm dynamicFieldGUID = new PropertyVm(typeof(string), "Field_" + r.RecordId); dynamicFieldGUID.DisplayName = "BDCGuid"; dynamicFieldGUID.Value = r.BDCGuid; dynamicFieldGUID.GetCustomAttributes = () => new object[] { new Helpers.FormFactory.GuidAttribute() }; dynamicForm.Add(dynamicFieldGUID); if (r.Form != null) { foreach (FormField ff in r.Form.FormFormFields.Select(fff => fff.FormField).OrderBy(m => m.Order)) { FormField origFormField = ff; if (ff.PublicMotherFormField != null) { origFormField = ff.PublicMotherFormField; } if (origFormField.FieldTypeId == FieldTypeEnum.Text) { PropertyVm dynamicField = new PropertyVm(typeof(string), "Field_" + ff.FormFieldId.ToString()); dynamicField.DisplayName = origFormField.Title; TextData td = r.TextData.Where(m => m.FormField == ff).FirstOrDefault(); if (td != null) { dynamicField.Value = td.Value; } dynamicField.NotOptional = ff.Mandatory; dynamicForm.Add(dynamicField); } else if (origFormField.FieldTypeId == FieldTypeEnum.DateTime) { PropertyVm dynamicField = new PropertyVm(typeof(DateTime), "Field_" + ff.FormFieldId.ToString()); dynamicField.DisplayName = origFormField.Title; TextData td = r.TextData.Where(m => m.FormField == ff).FirstOrDefault(); DateTime myDT = new DateTime(); try { myDT = DateTime.ParseExact(td.Value.Replace("{0:", " ").Replace("}", ""), formats, CultureInfo.InvariantCulture, DateTimeStyles.None); } catch (Exception e) { } if (td != null) { dynamicField.Value = myDT; } dynamicField.NotOptional = ff.Mandatory; dynamicForm.Add(dynamicField); } else if (origFormField.FieldTypeId == FieldTypeEnum.Choice) { PropertyVm dynamicField = new PropertyVm(typeof(string), "Field_" + ff.FormFieldId.ToString()); dynamicField.DisplayName = origFormField.Title; TextData td = r.TextData.Where(m => m.FormField == ff).FirstOrDefault(); if (td != null) { dynamicField.Value = td.Value; } await db.Entry(origFormField).Collection(m => m.FieldChoices).LoadAsync(); if (origFormField.FieldChoices != null) { List <string> choices = new List <string>(); foreach (FieldChoice fc in origFormField.FieldChoices.OrderBy(m => m.Order)) { choices.Add(fc.Text); } dynamicField.Choices = choices; } dynamicField.NotOptional = ff.Mandatory; dynamicForm.Add(dynamicField); } else if (origFormField.FieldTypeId == FieldTypeEnum.Boolean) { PropertyVm dynamicField = new PropertyVm(typeof(bool), "Field_" + ff.FormFieldId.ToString()); dynamicField.DisplayName = origFormField.Title; BooleanData bd = r.BooleanData.Where(m => m.FormField == ff).FirstOrDefault(); if (bd != null) { dynamicField.Value = bd.Value; } dynamicField.NotOptional = ff.Mandatory; dynamicField.GetCustomAttributes = () => new object[] { new FormFactory.Attributes.LabelOnRightAttribute() }; dynamicForm.Add(dynamicField); } } PropertyVm dynamicHiddenField = new PropertyVm(typeof(string), "RecordId"); dynamicHiddenField.Value = r.RecordId.ToString(); dynamicHiddenField.NotOptional = true; dynamicHiddenField.IsHidden = true; dynamicForm.Add(dynamicHiddenField); if (isReadOnly) { foreach (PropertyVm pv in dynamicForm) { pv.Readonly = true; } } rvm.Readonly = isReadOnly; rvm.DynamicForm = dynamicForm; rvm.Group = r.ProjectGroup.Group; gvm.Records.Add(rvm); } } return; }
public async Task <IActionResult> Delete(Guid id) { User user = Helpers.UserHelper.GetCurrentUser(User, db); Record r = await db.Records .Include(m => m.ProjectGroup).ThenInclude(pg => pg.Group).ThenInclude(g => g.GroupUsers) .Where(m => m.RecordId == id).FirstOrDefaultAsync(); if (r == null) { return(StatusCode(404)); } // No right for it, User is not in Group if ((r.ProjectGroup.Group.GroupUsers.Any(m => m.UserId == user.UserId)) || User.IsInRole("DM")) { r.StatusId = StatusEnum.deleted; ChangeLog cl = new ChangeLog() { Log = "deleted record", User = user }; db.ChangeLogs.Add(cl); ChangeLogRecord clr = new ChangeLogRecord() { ChangeLog = cl, Record = r }; db.ChangeLogsRecords.Add(clr); db.Entry(r).State = EntityState.Modified; await db.SaveChangesAsync(); return(Content("OK")); } // No right for it, User is not in Group return(StatusCode(403)); }