پاسخ‌های با جزییات بیشتر از API به کاربر

اگر همه چیز به خوبی انجام بشه، API پاسخ درخواست را به HttpStatus = 200 برای کاربر ارسال می‌کنه اما اگر بخواهیم در سایر موارد مثل خطا، پیدا نکردن محتوا و … پاسخی به کاربر ارسال کنیم می‌توان از روش زیر بهره برد:

        private struct stcAPIMessage
        {
            public string Message { get; set; }
            public HttpStatusCode StatusCode { get; set; }
        }

        [HttpPost]
        public IHttpActionResult CreateIssue([FromBody] JObject inputData)
        {
            stcAPIMessage message = new stcAPIMessage();

            try
            {
                var temp = JsonConvert.DeserializeObject<BLL.Jira.Jira_Requests.CreateIssue.Root>(inputData.ToString());
                if (temp != null)
                {
                    if (!string.IsNullOrEmpty(temp.fields.summary))
                    {
                        BLL.Jira.JiraService jiraService = new BLL.Jira.JiraService();
                        var result = jiraService.CreateIssue(temp);
                        if (!string.IsNullOrEmpty(result.id))
                        {
                            return Ok(result);
                        }
                        else
                        {
                            message.Message = "سرویس جیرا پاسخ مناسبی به درخواست ارسالی نداد، لطفاً درخواست ارسالی را بررسی کنید.";
                            message.StatusCode = HttpStatusCode.Conflict;
                        }
                    }
                    else
                    {
                        message.Message = "رشته ارسالی فرمت صحیحی ندارد";
                        message.StatusCode = HttpStatusCode.BadRequest;
                    }
                }
                else
                {
                    message.Message = "رشته ارسالی فرمت صحیحی ندارد";
                    message.StatusCode = HttpStatusCode.BadRequest;
                }
            }
            catch
            {
                message.Message = "خطای غیرمعمول رخ داده است، به ادمین سرویس اطلاع داده شد.";
                message.StatusCode = HttpStatusCode.BadRequest;
            }

            return Content(message.StatusCode, message.Message);
        }