public async Task <IActionResult> ChangeName([FromBody] DeleteSprintForm form)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ControllerErrorCode.WrongInputData));
            }

            var email = User.Identity.Name;

            var isSuccess = await _db.RemoveSprint(email, form);

            if (!isSuccess)
            {
                return(BadRequest(_db.Sprints.GetError()));
            }

            return(Ok());
        }
        public async static Task <bool> RemoveSprint(this ProjectContext db, string userEmail, DeleteSprintForm form)
        {
            var user = await db.Users.FirstOrDefaultAsync(x => x.Email.Equals(userEmail, StringComparison.OrdinalIgnoreCase));

            if (user == null)
            {
                _code = ControllerErrorCode.UserNotFound;
                return(false);
            }

            var sprint = await db.Sprints.Include(x => x.Project).FirstOrDefaultAsync(x => x.Project.Id == form.ProjectId && x.Id == form.SprintId);

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

            var role = await db.Roles.FirstOrDefaultAsync(x => x.Project.Id == form.ProjectId && x.User == user);

            if (role == null || role.Type != ProjectUserRole.ProjectManager)
            {
                _code = ControllerErrorCode.PermissionsDenied;
                return(false);
            }

            db.Sprints.Remove(sprint);

            await db.SaveChangesAsync();

            return(true);
        }