示例#1
0
        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()));
        }
示例#2
0
        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);
        }