176 lines
7.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|