Ejemplo n.º 1
0
        public async Task <IActionResult> GetReports(int id, [FromQuery] ReportParameters reportParameters)
        {
            var claimsIdentity = this.User.Identity as ClaimsIdentity;
            var userName       = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
            var role           = claimsIdentity.FindFirst(ClaimTypes.Role)?.Value;
            var user           = HttpContext.Items["user"] as User;

            if (user.UserName != userName && role != "Admin")
            {
                return(StatusCode(403));
            }

            var joggings = await _repo.GetJoggingsByUserId(id);

            var weeks = _repo.GetWeeklyReports(joggings, reportParameters);

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(weeks.MetaData));
            return(Ok(weeks));
        }