public async Task <StandardResponse> UpdateQuestionMetadata(ClaimsPrincipal identity, QuestionMetadataUpdateViewModel model,
                                                                    ModelStateDictionary modelState)
        {
            if (!modelState.IsValid)
            {
                return(modelState.StandardError());
            }

            using (var db = new ServiceDb())
            {
                using (var user = await _userService.Become(db, identity, null))
                {
                    var question = await _questionService.UpdateQuestionMetadata(db, user, new UpdateQuestionMeta()
                    {
                        QuestionId = model.QuestionId,
                        RowVersion = model.RowVersion,
                        Votes      = model.Votes,
                        Star       = model.Star
                    });

                    await db.SaveChangesAsync();

                    return(StandardResponse.For(QuestionMetaViewModel.From(question)));
                }
            }
        }
        public async Task <StandardResponse> GetQuestionMetadata(ClaimsPrincipal identity, GetQuestionViewModel model, ModelStateDictionary modelState)
        {
            if (!modelState.IsValid)
            {
                return(modelState.StandardError());
            }

            using (var db = new ServiceDb())
            {
                using (var user = await _userService.Become(db, identity, null))
                {
                    var meta = await _questionService.GetQuestionMetadata(db, user, model.Id);

                    return(StandardResponse.For(QuestionMetaViewModel.From(meta)));
                }
            }
        }