using System.Collections.Generic; using System.Data; using System.Net; using System.Net.Http; using System.Web.Http; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Security; using Kreta.BusinessLogic.Utils; using Kreta.Web.Areas.Feljegyzes.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; namespace Kreta.Web.Areas.Feljegyzes.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)] public class FaliujsagBejegyzesekApiController : ApiController { public DataSourceResult GetFaliujsagBejegyzesekGrid([System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetFaliujsagBejegyzesekGrid(); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { row[nameof(FaliujsagBejegyzesekGridModel.Tartalom)] = RichTextLogic.CutHtmlTagsAndDecodeAndBR2Space(row.Field(nameof(FaliujsagBejegyzesekGridModel.Tartalom))); } } DataSourceResult result = ds.ToDataSourceResult(); return result; } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)] public DataSourceResult GetFaliujsagBejegyzesekPopupGrid([System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetFaliujsagBejegyzesekPopupGrid(); DataSourceResult result = ds.ToDataSourceResult(); return result; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)] public HttpResponseMessage SaveFaliujsagBejegyzes(FaliujsagBejegyzesModel model) { if (!ClaimData.IsSzuperadmin) { var allowedTags = new List { "span", "#text", "b", "blockquote", "code", "del", "dd", "dl", "dt", "em", "h1", "h2", "h3", "i", "kbd", "li", "ol", "p", "pre", "s", "sup", "sub", "strong", "strike", "ul", "br", "hr", "a", "div" }; model.Tartalom = RichTextLogic.GetLegalHtmlString(model.Tartalom, allowedTags, false, true); ModelState.Merge(model.Validate()); if (ModelState.IsValid) { _ = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveFeljegyzes(model.ToCo(false)); return new HttpResponseMessage(HttpStatusCode.OK); } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveFogadooraFaliujsagBejegyzes(FaliujsagBejegyzesModel model) { new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveFeljegyzes(model.ToCo(true)); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteFaliujsagBejegyzes(FeljegyzesTorlesModel model) { try { new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteElektronikusUzenetOrFaliujsagBejegyzes(model.Id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (CannotBeDeletedException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } } }