BloggingSystem.Services.Controllers.TagsController.GetPosts C# (CSharp) Method

GetPosts() private method

private GetPosts ( int tagID, [ sessionKey ) : IEnumerable
tagID int
sessionKey [
return IEnumerable
        public IEnumerable<PostModel> GetPosts(int tagID,
            [ValueProvider(typeof(HeaderValueProviderFactory<string>))]string sessionKey)
        {
            var tagPosts = this.PerformOperation(() =>
            {
                UserValidator.ValidateSessionKey(sessionKey);

                var context = new BloggingSystemContext();
                using (context)
                {
                    var loggedUserEntity = context.Users.FirstOrDefault<User>(u => u.SessionKey == sessionKey);
                    if (loggedUserEntity == null)
                    {
                        throw new InvalidOperationException("Invalid user or pasword!");
                    }

                    var tagEntity = context.Tags.Find(tagID);
                    if (tagEntity == null)
                    {
                        var errorResponse = this.Request.CreateErrorResponse(
                            HttpStatusCode.NotFound, "Tag with provided ID not found!");
                        throw new HttpResponseException(errorResponse);
                    }

                    var tagPostModels = new List<PostModel>();
                    var tagPostEntities = tagEntity.Posts.OrderByDescending(p => p.PostDate);
                    foreach (var tagPostEntity in tagPostEntities)
                    {
                        tagPostModels.Add(PostsMapper.ToModel(tagPostEntity));
                    }

                    return tagPostModels;
                }
            });

            return tagPosts;
        }
    }
TagsController