public IHttpActionResult DeleteAssignments(Guid id, Guid userId, ThreadAccessLevels accessLevel) { if (id == Guid.Empty) { return(BadRequest("id is empty")); } if (userId == Guid.Empty) { return(BadRequest("user id is empty")); } var thread = UnitOfWork.FormTemplatesRepository.FindIncluding(id, t => t.Assignments); if (thread == null) { return(NotFound()); } var assignment = thread.Assignments.SingleOrDefault(a => a.OrgUserId == userId); if (assignment == null) { return(NotFound()); } var result = UnitOfWork.ThreadAssignmentsRepository.AssignAccessLevel(id, userId, accessLevel, grant: false); if (result != null) { return(Ok(Mapper.Map <ThreadAssignmentDTO>(result))); } return(Ok(new ThreadAssignmentDTO())); }
private ThreadAssignment FlagAccessLevel(ThreadAssignment assignment, ThreadAccessLevels accessLevel, bool grant) { switch (accessLevel) { case ThreadAccessLevels.AllowView: { assignment.CanView = grant; break; } case ThreadAccessLevels.AllowAdd: { assignment.CanAdd = grant; if (grant) assignment.CanView = true; break; } case ThreadAccessLevels.AllowEdit: { assignment.CanEdit = grant; if (grant) assignment.CanView = true; break; } case ThreadAccessLevels.AllowDelete: { assignment.CanDelete = grant; if (grant) assignment.CanView = true; break; } default: break; } return assignment; }
public IHttpActionResult AddAssignments(Guid id, Guid userId, ThreadAccessLevels accessLevel) { if (id == Guid.Empty) { return(BadRequest("id is empty")); } if (userId == Guid.Empty) { return(BadRequest("user id is empty")); } var thread = UnitOfWork.FormTemplatesRepository.Find(id); if (thread == null) { return(NotFound()); } var orgUser = UnitOfWork.OrgUsersRepository.Find(userId); if (orgUser == null) { return(NotFound()); } var result = UnitOfWork.ThreadAssignmentsRepository.AssignAccessLevel(id, userId, accessLevel, grant: true); return(Ok(Mapper.Map <ThreadAssignmentDTO>(result))); }
public ThreadAssignment AssignAccessLevel(Guid formTemplateId, Guid userId, ThreadAccessLevels accessLevel, bool grant) { var thread = this.CurrentUOW.FormTemplatesRepository.Find(formTemplateId); var assignment = thread.Assignments.SingleOrDefault(a => a.OrgUserId == userId); if (assignment != null) { assignment = FlagAccessLevel(assignment, accessLevel, grant); this.CurrentUOW.ThreadAssignmentsRepository.InsertOrUpdate(assignment); } else { assignment = new ThreadAssignment() { FormTemplateId = formTemplateId, OrgUserId = userId }; assignment = FlagAccessLevel(assignment, accessLevel, grant); this.CurrentUOW.ThreadAssignmentsRepository.InsertOrUpdate(assignment); } this.CurrentUOW.Save(); return thread.Assignments.SingleOrDefault(a => a.OrgUserId == userId); }