public async Task <IActionResult> Columns([FromBody] GetColumnsForm form) { if (!ModelState.IsValid) { return(BadRequest(ControllerErrorCode.WrongInputData)); } var email = User.Identity.Name; var columns = await _db.GetColumns(email, form); if (columns == null) { return(BadRequest(_db.Columns.GetError())); } return(Ok(columns.GetDTO())); }
public async static Task <IEnumerable <Column> > GetColumns(this ProjectContext db, string userEmail, GetColumnsForm form) { var user = await db.Users.FirstOrDefaultAsync(x => x.Email.Equals(userEmail, StringComparison.OrdinalIgnoreCase)); if (user == null) { _code = ControllerErrorCode.UserNotFound; return(null); } var role = await db.Roles.AsNoTracking().FirstOrDefaultAsync(x => x.User == user && x.Project.Id == form.ProjectId); if (role == null) { _code = ControllerErrorCode.PermissionsDenied; return(null); } var columns = await db.Columns.Where(x => x.Project.Id == role.Project.Id).ToListAsync(); if (columns == null) { _code = ControllerErrorCode.ColumnNotFound; return(null); } return(columns); }