kreta/KretaWeb/Areas/UgyfelSzolgalat/ApiControllers/UgyfelSzolgalatApiController.cs
2024-03-13 00:33:46 +01:00

176 lines
7.5 KiB
C#

using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.UgyfelSzolgalat.Models;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Kreta.Web.Areas.UgyfelSzolgalat.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class UgyfelSzolgalatApiController : ApiController
{
private readonly IJiraHelper JiraHelper;
public UgyfelSzolgalatApiController(IJiraHelper jiraHelper)
{
JiraHelper = jiraHelper ?? throw new ArgumentNullException(nameof(jiraHelper));
}
public DataSourceResult GetBejelentesekGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var gridParameters = Converter.GridParameter(request);
var model = JsonConvert.DeserializeObject<UgyfelszolgalatSearchModel>(data);
var response = JiraHelper.GetBejelentesek(ClaimData.IntezmenyAzonosito, model.BejelentesTypusId, model.ServiceDeskId, model.StatusId, gridParameters.FirstRow.ToString(), request.PageSize.ToString());
var result = response.data.ToDataSourceResult();
result.Total = response.dataTotalCount;
return result;
}
public HttpResponseMessage CreateCommentToBejegyzes(CreateBejelentesCommentModel model)
{
try
{
var respons = JiraHelper.CreateCommentToBejelentes(ClaimData.IntezmenyAzonosito, model);
}
catch (BlException ex)
{
if (ex.ExceptionType == BlExceptionType.JiraFileError)
{
if (ex.UnHandledException != null)
{
throw new StatusError(CustomHTTPStatusEnum.JiraFileUploadError, ex.Message)
{
UnHandledException = ex.UnHandledException
};
}
var jsonResult = JObject.FromObject(new { isFileError = true, errorMessage = ErrorResource.ABejelentesSikeresenMegtortentASzuksegesFajlokatProbaljaMegUjraCsatolniABejelentesReszleteinelBRAHibaOka + ex.Message });
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
}
else
{
var jsonResult = JObject.FromObject(new { isFileError = false, errorMessage = ex.Message });
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
}
}
return Request.CreateResponse(HttpStatusCode.OK, model.Id);
}
public HttpResponseMessage CreateBejelentes(CreateBejelentesModel model)
{
try
{
if (ModelState.IsValid)
{
if (model.UserAndBrowserInformation.Length > 0)
{
model.Leiras += Kreta.Core.Constants.General.UgyfelszolgalatSpecialisElvalaszto + model.UserAndBrowserInformation;
model.Leiras += "\n\rBejelentés időpontja: " + DateTime.Now.ToString();
}
var respons = JiraHelper.CreateBejelentes(ClaimData.IntezmenyAzonosito, model);
//JiraRestLogic.SubscribeToBejegyzes(respons.issueId);
}
}
catch (BlException ex)
{
if (ex.ExceptionType == BlExceptionType.JiraFileError)
{
if (ex.UnHandledException != null)
{
throw new StatusError(CustomHTTPStatusEnum.JiraFileUploadError, ex.Message)
{
UnHandledException = ex.UnHandledException
};
}
var jsonResult = JObject.FromObject(new { isFileError = true, errorMessage = ErrorResource.ABejelentesSikeresenMegtortentASzuksegesFajlokatProbaljaMegUjraCsatolniABejelentesReszleteinelBRAHibaOka + ex.Message });
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
}
else
{
var jsonResult = JObject.FromObject(new { isFileError = false, errorMessage = ex.Message });
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
}
}
return Request.CreateResponse(HttpStatusCode.OK);
}
public HttpResponseMessage CreateDbVisszaallitas(CreateDbVisszaallitasModel model)
{
if (model.Datum < DateTime.Today.AddDays(-14))
{
ModelState.AddModelError("CreateDbVisszaallitasModel.Datum", UgyfelszolgalatResource.DatumNemLehetRegebbiKetHetnel);
}
if (model.Datum > DateTime.Today)
{
ModelState.AddModelError("CreateDbVisszaallitasModel.Datum", UgyfelszolgalatResource.DatumNemLehetKesobbiAMaiNapnal);
}
if (ModelState.IsValid)
{
if (model.UserAndBrowserInformation.Length > 0)
{
model.Leiras += " " + model.UserAndBrowserInformation;
model.Leiras += "\n\rBejelentés időpontja: " + DateTime.Now.ToString();
}
var respons = JiraHelper.CreateDbVisszaallitas(ClaimData.IntezmenyAzonosito, model);
//JiraRestLogic.SubscribeToBejegyzes(respons.issueId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public HttpResponseMessage CreateUjUrlIgenyles(CreateUjUrlIgenylesModel model)
{
if (ModelState.IsValid)
{
if (model.UserAndBrowserInformation.Length > 0)
{
model.Leiras += " " + model.UserAndBrowserInformation;
model.Leiras += "\n\rBejelentés időpontja: " + DateTime.Now.ToString();
}
var respons = JiraHelper.CreateUjUrlIgenyles(ClaimData.IntezmenyAzonosito, model);
//JiraRestLogic.SubscribeToBejegyzes(respons.issueId);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
public HttpResponseMessage CreateKonferenciaJelentkezes(CreateKonferenciaJelentkezesModel model)
{
if (ModelState.IsValid)
{
if (model.UserAndBrowserInformation.Length > 0)
{
model.Leiras += " " + model.UserAndBrowserInformation;
model.Leiras += "\n\rBejelentés időpontja: " + DateTime.Now.ToString();
}
var response = JiraHelper.CreateKonferenciaJelentkezes(ClaimData.IntezmenyAzonosito, model);
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
}