示例#1
0
        public async Task <IActionResult> GetSprints([FromBody] GetSprintsForm form)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ControllerErrorCode.WrongInputData));
            }

            var email = User.Identity.Name;

            var sprints = await _db.GetSprints(email, form);

            if (sprints == null)
            {
                return(BadRequest(_db.Sprints.GetError()));
            }

            return(Ok(sprints.GetDTO()));
        }
        public async static Task <IEnumerable <Sprint> > GetSprints(this ProjectContext db, string userEmail, GetSprintsForm 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.FirstOrDefaultAsync(x => x.Project.Id == form.ProjectId && x.User == user);

            if (role == null)
            {
                _code = ControllerErrorCode.PermissionsDenied;
                return(null);
            }

            var sprints = await db.Sprints.Where(x => x.Project.Id == form.ProjectId).ToListAsync();

            if (sprints == null)
            {
                _code = ControllerErrorCode.SprintNotFound;
                return(null);
            }

            return(sprints);
        }