Ejemplo n.º 1
0
        public void Delete(string id)
        {
            var identity = (ClaimsIdentity)User.Identity;
            IEnumerable <Claim> claims = identity.Claims;

            var role = claims.Where(claim => claim.Type == "role").First();

            if (role.Value == "Admin")
            {
                campingTripRepository.RemoveServiceRequestAsync(id);
            }
            else
            {
                var userIdClaim = claims.Where(claim => claim.Type == "user_id").First();

                if (userIdClaim == null)
                {
                    throw new Exception("user_id claim not found");
                }

                if (!int.TryParse(userIdClaim.Value, out int userId))
                {
                    throw new Exception("Invalid value for user_id in users claims");
                }

                campingTripRepository.RemoveServiceRequestByIdAndProviderIdAsync(id, userId);
            }
        }