اگر همه چیز به خوبی انجام بشه، 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);
}