using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.ModelBinding; using System.Web.Http.Results; using Kendo.Mvc.UI; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.Core.Exceptions; using Kreta.Web.Areas.GRModul.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; using Newtonsoft.Json; namespace Kreta.Web.Areas.GRModul.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize("KretaClaimPackages.GazdasagiUgyintezo.ClaimValue")] public class BeszerzesiIgenyApiController : ApiController { public DataSourceResult GetBeszerzesiIgenyGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { BeszerzesiIgenySearchModel model = JsonConvert.DeserializeObject(data); var helper = new BeszerzesiModulHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var result = helper.BeszerzesiIgenyKereses(model.ConvertModelToCo(ClaimData.SelectedTanevID.Value)); return result.ToDataSourceResult(); } public DataSourceResult GetBeszerzesiIgenyDokGrid(int igenylesId) { var helper = new BeszerzesiModulHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var result = helper.BeszerzesiIgenyDokList(igenylesId); return result.ToDataSourceResult(); } public DataSourceResult GetBeszerzesiIgenyMegjegyzesGrid(int igenylesId) { var helper = new BeszerzesiModulHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var result = helper.BeszerzesiIgenyMegjegyzesList(igenylesId); return result.ToDataSourceResult(); } public JsonResult GetAnyagTorzsAdat(int torzsId) { var helper = new BeszerzesiModulHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Json(ConvertCoToAnyagModel(helper.GetAnyagTorzsAdat(torzsId))); } public JsonResult GetSzallitoTorzsAdat(int torzsId) { var helper = new BeszerzesiModulHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return Json(ConvertCoToSzallitoModel(helper.GetSzallitoTorzsAdat(torzsId))); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveBeszerzesiIgeny(BeszerzesiIgenyModel model) { try { if (ModelState.IsValid) { var co = BeszerzesiIgenyModel.ConvertModelToCo(model); new BeszerzesiModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveBeszerzesiIgeny(co); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (BlException e) { StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message); throw error; } } protected static AnyagModel ConvertCoToAnyagModel(BeszerzesiIgenyCo co) { return new AnyagModel() { //AnyagId = co.AnyagId, //TODO AnyagMegnevezes = co.AnyagMegnevezes, AnyagMennyisegiEgysegId = co.AnyagMennyisegiEgysegId, AnyagRovidLeiras = co.AnyagRovidLeiras, AnyagTetelMegnevezes = co.AnyagTetelMegnevezes, AnyagTetelEgysegar = co.AnyagTetelEgysegar, AnyagTetelMennyisegiEgysegId = co.AnyagTetelMennyisegiEgysegId, AnyagTetelMennyiseg = co.AnyagTetelMennyiseg }; } protected static SzallitoModel ConvertCoToSzallitoModel(BeszerzesiIgenyCo co) { return new SzallitoModel() { //SzallitoId = co.SzallitoId, //TODO SzallitoNev = co.SzallitoNev, IrSzam = co.Iranyitoszam, HelysegNev = co.HelysegNev, KozteruletNev = co.KozteruletNev, KozteruletJellegId = co.KozteruletJellegeId, Hazszam = co.Hazszam, Emelet = co.Emelet, Ajto = co.Ajto, Adoszam = co.Adoszam, KepviseloNeve = co.KepviseloNev, EmailCim = co.EmailCim, Telefonszam = co.Telefonszam, FizetesiMod = co.FizetesiMod }; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveBeszerzesiIgenyElfogadas(int igenyId) { //new GRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).BeszerzesiIgenyElfogadas(igenyId); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveBeszerzesiIgenyElutasitas(int igenyId) { //new GRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).BeszerzesiIgenyElutasitas(igenyId); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveBeszerzesiIgenyHianyPotlas(int igenyId) { //new GRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).BeszerzesiIgenyHianyPotlas(igenyId); return new HttpResponseMessage(HttpStatusCode.OK); } } }