This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,95 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Resources;
using Kreta.Web.Areas.Leptetes.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Leptetes.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class CsoportLeptetesApiController : ApiController
{
public DataSourceResult GetCsoportLeptetesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
DataSet ds = helper.GetCsoportLeptetesGridData(ClaimData.AktivTanevID.Value);
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveCsoportLeptetes(List<CsoportLeptetesRowModel> model)
{
try
{
var errorStr = CsoportCustomValidation(model);
if (string.IsNullOrWhiteSpace(errorStr))
{
LeptetesHelper helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var item in model)
{
helper.CopyCsoportToKovTanev(item.SourceID, item.Nev, item.Evfolyam, item.Osztalybontas, ClaimData.SelectedTanevID.Value);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new StatusError(HttpStatusCode.BadRequest, errorStr);
}
catch (BlException e)
{
StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message);
throw error;
}
}
public string CsoportCustomValidation(List<CsoportLeptetesRowModel> model)
{
var result = string.Empty;
var duplicated = from m in model group m by m.Nev into g where g.Count() > 1 select g.Key;
foreach (var item in duplicated)
{
result += string.Format(LeptetesResource.CsoportEgynelTobbszor, model.Where(x => x.Nev.Contains(item)).FirstOrDefault()?.Nev ?? string.Empty);
}
OsztalyCsoportHelper helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var data = helper.GetOsztalyCsoportCoList();
foreach (var item in model)
{
if (data.Where(x => x.Nev == item.Nev).ToList().Count > 0)
{
result += string.Format(LeptetesResource.CsoportLetezikKovTanevben, item.Nev);
}
CsoportHelper ocshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var csoportData = helper.GetCsoportByCsoportId(item.SourceID);
FeladatEllatasiHelyHelper felHHelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (felHHelper.GetKovTanevIdByAktTanevId(csoportData.FeladatEllatasiHelyId) == 0)
{
result += string.Format(LeptetesResource.CsoportFelhelyNemtalalhato, item.Nev);
}
}
return result;
}
}
}

View file

@ -0,0 +1,124 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Resources;
using Kreta.Web.Areas.Leptetes.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Leptetes.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class OsztalyLeptetesApiController : ApiController
{
public DataSourceResult GetOsztalyLeptetesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
SetOsztalyLeptetesGridDefaultSorting(request);
var helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = Converter.GridParameter(request)
};
DataSet ds = helper.GetOsztalyLeptetesGridData(ClaimData.AktivTanevID.Value);
return ds.ToDataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveOsztalyLeptetes(List<OsztalyLeptetesRowModel> model)
{
try
{
var errorStr = OsztalyCustomValidation(model);
if (string.IsNullOrWhiteSpace(errorStr))
{
LeptetesHelper helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var item in model)
{
helper.CopyOsztalyToKovTanev(item.SourceID, item.Nev, item.Evfolyam, ClaimData.SelectedTanevID.Value);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
throw new StatusError(HttpStatusCode.BadRequest, errorStr);
}
catch (BlException e)
{
StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message);
throw error;
}
}
public string OsztalyCustomValidation(List<OsztalyLeptetesRowModel> model)
{
var result = string.Empty;
var duplicated = from m in model group m by m.Nev into g where g.Count() > 1 select g.Key;
foreach (var item in duplicated)
{
result += string.Format(LeptetesResource.OsztalyEgynelTobbszor, model.Where(x => x.Nev.Contains(item)).FirstOrDefault()?.Nev ?? string.Empty);
}
OsztalyCsoportHelper helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var data = helper.GetOsztalyCsoportCoList();
FeladatEllatasiHelyHelper feHelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var feData = feHelper.GetFeladatEllatasiHelyDDl();
foreach (var item in model)
{
if (data.Where(x => x.Nev == item.Nev).ToList().Count > 0)
{
result += string.Format(LeptetesResource.OsztalyLetezikKovTanevben, item.Nev);
}
OsztalyHelper ocshelper = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var osztalyData = helper.GetOsztalyByOsztalyId(item.SourceID);
FeladatEllatasiHelyHelper ahelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (ahelper.GetKovTanevIdByAktTanevId(osztalyData.FeladatEllatasiHelyId) == 0)
{
result += string.Format(LeptetesResource.OsztalyFelhelyNemtalalhato, item.Nev);
}
}
return result;
}
private void SetOsztalyLeptetesGridDefaultSorting(DataSourceRequest request)
{
// NOTE: Ha a felhasználó nem választott ki semmilyen rendezést a griden,
// akkor évfolyam sorszám alapján és osztály név alapján rendezzük default a gridet,
// egyébként pedig a griden használt rendezés kell!
if (request.Sorts == null || !request.Sorts.Any())
{
request.Sorts = new List<Kendo.Mvc.SortDescriptor>
{
new Kendo.Mvc.SortDescriptor
{
Member = nameof(OsztalyLeptetesGridModel.DicOrder),
SortDirection = System.ComponentModel.ListSortDirection.Ascending
},
new Kendo.Mvc.SortDescriptor
{
Member = nameof(OsztalyLeptetesGridModel.OsztalyNeve),
SortDirection = System.ComponentModel.ListSortDirection.Ascending
}
};
}
}
}
}

View file

@ -0,0 +1,17 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Leptetes.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(TanevEnum.KovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class CsoportLeptetesController : Controller
{
public ActionResult Index()
{
return View();
}
}
}

View file

@ -0,0 +1,17 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Leptetes.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(TanevEnum.KovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class OsztalyLeptetesController : Controller
{
public ActionResult Index()
{
return View();
}
}
}

View file

@ -0,0 +1,24 @@
using System.Web.Mvc;
namespace Kreta.Web.Areas.Leptetes
{
public class LeptetesAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Leptetes";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Leptetes_default",
"Leptetes/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}

View file

@ -0,0 +1,44 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Leptetes.Models
{
public class CsoportLeptetesGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(LeptetesResource.Tanev), ResourceType = typeof(LeptetesResource))]
public string Tanev { get; set; }
[Display(Name = nameof(LeptetesResource.CsoportNeve), ResourceType = typeof(LeptetesResource))]
public string CsoportNeve { get; set; }
[Display(Name = nameof(LeptetesResource.Evfolyam), ResourceType = typeof(LeptetesResource))]
public string Evfolyam { get; set; }
[Display(Name = nameof(LeptetesResource.Osztalybontas), ResourceType = typeof(LeptetesResource))]
public string Osztalybontas { get; set; }
[Display(Name = nameof(LeptetesResource.Tanev), ResourceType = typeof(LeptetesResource))]
public string KovTanev { get; set; }
[Display(Name = nameof(LeptetesResource.CsoportJavasoltNeve), ResourceType = typeof(LeptetesResource))]
public string CsoportJavasoltNeve { get; set; }
[Display(Name = nameof(LeptetesResource.JavasoltEvfolyam), ResourceType = typeof(LeptetesResource))]
public string JavasoltEvfolyam { get; set; }
[Display(Name = nameof(LeptetesResource.JavasoltOsztalybontas), ResourceType = typeof(LeptetesResource))]
public string JavasoltOsztalybontas { get; set; }
[Display(Name = nameof(LeptetesResource.CsoportNeve), ResourceType = typeof(LeptetesResource))]
public string EditCsoportNeve { get; set; }
[Display(Name = nameof(LeptetesResource.Evfolyam), ResourceType = typeof(LeptetesResource))]
public int? EditEvfolyam { get; set; }
[Display(Name = nameof(LeptetesResource.Osztalybontas), ResourceType = typeof(LeptetesResource))]
public int? EditOsztalybontas { get; set; }
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.Web.Areas.Leptetes.Models
{
public class CsoportLeptetesRowModel
{
public int SourceID { get; set; }
public string Nev { get; set; }
public int Evfolyam { get; set; }
public int? Osztalybontas { get; set; }
}
}

View file

@ -0,0 +1,37 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Leptetes.Models
{
public class OsztalyLeptetesGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(LeptetesResource.Tanev), ResourceType = typeof(LeptetesResource))]
public string Tanev { get; set; }
[Display(Name = nameof(LeptetesResource.OsztalyNeve), ResourceType = typeof(LeptetesResource))]
public string OsztalyNeve { get; set; }
[Display(Name = nameof(LeptetesResource.Evfolyam), ResourceType = typeof(LeptetesResource))]
public string Evfolyam { get; set; }
[Display(Name = nameof(LeptetesResource.Tanev), ResourceType = typeof(LeptetesResource))]
public string KovTanev { get; set; }
[Display(Name = nameof(LeptetesResource.OsztalyJavasoltNeve), ResourceType = typeof(LeptetesResource))]
public string OsztalyJavasoltNeve { get; set; }
[Display(Name = nameof(LeptetesResource.JavasoltEvfolyam), ResourceType = typeof(LeptetesResource))]
public string JavasoltEvfolyam { get; set; }
[Display(Name = nameof(LeptetesResource.OsztalyNeve), ResourceType = typeof(LeptetesResource))]
public string EditOsztalyNeve { get; set; }
[Display(Name = nameof(LeptetesResource.Evfolyam), ResourceType = typeof(LeptetesResource))]
public int? EditEvfolyam { get; set; }
public int? DicOrder { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.Web.Areas.Leptetes.Models
{
public class OsztalyLeptetesRowModel
{
public int SourceID { get; set; }
public string Nev { get; set; }
public int Evfolyam { get; set; }
}
}

View file

@ -0,0 +1,124 @@
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Helpers
@using Kreta.Web.Areas.Leptetes.Models
@using Kreta.Resources
@{
var grid = Html.KretaGrid<CsoportLeptetesGridModel>(
"CsoportLeptetesGrid",
new GridApiUrl("CsoportLeptetesApi", "GetCsoportLeptetesGrid"),
allowFilterable: false,
allowSorting: true,
useToolBar: true
).TableHtmlAttributes(new { @class = "tableLayoutFixed" });
grid.Columns(columns =>
{
columns.Bound(x => x.Tanev).Width("100px");
columns.Bound(x => x.CsoportNeve).Width("200px");
columns.Bound(x => x.Evfolyam).Width("100px");
columns.Bound(x => x.Osztalybontas).Width("100px");
});
grid.Columns(columns =>
{
columns.Bound(x => x.KovTanev).Width("100px").Sortable(false);
columns.Bound(x => x.CsoportJavasoltNeve).Width("200px").Sortable(false);
columns.Bound(x => x.JavasoltEvfolyam).Width("100px").Sortable(false);
columns.Bound(x => x.JavasoltOsztalybontas).Width("100px").Sortable(false);
});
grid.Columns(column =>
{
column.Template(@<text></text>).ClientTemplate(
grid.TextBoxForColumnTemplate(Html.For<CsoportLeptetesGridModel>(), x => x.EditCsoportNeve)
).Title(LeptetesResource.CsoportNeve).Width(200);
});
grid.Columns(column =>
{
column.Template(@<text></text>).ClientTemplate(
grid.ComboBoxForColumnTemplateWidthValue(Html.For<CsoportLeptetesGridModel>(), x => x.EditEvfolyam, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetEvfolyamListForCombo" }))
).Title(LeptetesResource.Evfolyam).Width(200);
});
grid.Columns(column =>
{
column.Template(@<text></text>).ClientTemplate(
grid.ComboBoxForColumnTemplateWidthValue(Html.For<CsoportLeptetesGridModel>(), x => x.EditOsztalybontas, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetKovTanevOsztalyok" }), "LeptetesHelper.changeOsztalyBontas")
).Title(LeptetesResource.Osztalybontas).Width(200);
});
grid.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn));
grid.SelectBoxColumn(Html, LeptetesResource.Letrehozas, width: 100);
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name= @LeptetesResource.AKijeloltCsoportokLetrehozasaKovTanevben, ClientAction = "LeptetesHelper.saveCsoportLeptetes()" } });
}
<div class="container-fluid details">
<div class="row">
@(grid)
</div>
</div>
<style>
table td:nth-child(5), table th:nth-child(5) {
border-right: 4px solid #406a7c !important;
}
table td:nth-child(9), table th:nth-child(9) {
border-right: 1px solid #406a7c !important;
}
table td:nth-child(12), table th:nth-child(12) {
border-right: 1px solid #406a7c !important;
}
</style>
<script type="text/javascript">
var LeptetesHelper = (function () {
var helper = function () { };
var gridName = "CsoportLeptetesGrid";
var url = {
saveCsoportLeptetes: "@Url.HttpRouteUrl("ActionApi", new { controller = "CsoportLeptetesApi", action = "SaveCsoportLeptetes" })"
}
helper.saveCsoportLeptetes = function () {
var data = []; var isError = false;
var modRows = KretaGridHelper.getSelectedRowsByGridName(gridName);
$.each(modRows, function (i, v) {
if (v.ki_EditCsoportNeve == '') { isError = true; }
data.push({
SourceID: v.ID,
Nev: v.ki_EditCsoportNeve,
Evfolyam: $("#" + gridName + "_EditEvfolyam_" + v.ID).val(),
Osztalybontas: $("#" + gridName + "_EditOsztalybontas_" + v.ID).val()
});
});
if (!isError)
AjaxHelper.DoPost(url.saveCsoportLeptetes, data, successResponse);
else
KretaWindowHelper.notification("@LeptetesResource.CsoportKotelezo", "error");
}
helper.changeOsztalyBontas = function (data) {
var obj = $("#" + data.sender.element[0].id);
if (obj.val() == '-1') {
obj.closest('td').prev('td').css({ 'opacity': '1' }).removeClass("disabledItem");
}
else {
obj.closest('td').prev('td').css({ 'opacity': '0' }).addClass("disabledItem");
}
}
function successResponse() {
KretaWindowHelper.successFeedBackWindow();
KretaGridHelper.refreshGrid(gridName);
}
return helper;
})();
</script>

View file

@ -0,0 +1,105 @@
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Helpers
@using Kreta.Web.Areas.Leptetes.Models
@using Kreta.Resources
@{
var grid = Html.KretaGrid<OsztalyLeptetesGridModel>(
"OsztalyLeptetesGrid",
new GridApiUrl("OsztalyLeptetesApi", "GetOsztalyLeptetesGrid"),
allowFilterable: false,
allowSorting: true,
useToolBar: true
).TableHtmlAttributes(new { @class = "tableLayoutFixed" });
grid.Columns(columns =>
{
columns.Bound(x => x.Tanev).Width("100px");
columns.Bound(x => x.OsztalyNeve).Width("200px");
columns.Bound(x => x.Evfolyam).Width("100px");
});
grid.Columns(columns =>
{
columns.Bound(x => x.KovTanev).Width("100px").Sortable(false);
columns.Bound(x => x.OsztalyJavasoltNeve).Width("200px").Sortable(false);
columns.Bound(x => x.JavasoltEvfolyam).Width("100px").Sortable(false);
});
grid.Columns(column =>
{
column.Template(@<text></text>).ClientTemplate(
grid.TextBoxForColumnTemplate(Html.For<OsztalyLeptetesGridModel>(), x => x.EditOsztalyNeve)
).Title(LeptetesResource.OsztalyNeve).Width(200);
});
grid.Columns(column =>
{
column.Template(@<text></text>).ClientTemplate(
grid.ComboBoxForColumnTemplateWidthValue(Html.For<OsztalyLeptetesGridModel>(), x => x.EditEvfolyam, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetEvfolyamListForCombo" }))
).Title(LeptetesResource.Evfolyam).Width(200);
});
grid.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn));
grid.SelectBoxColumn(Html, LeptetesResource.Letrehozas, width: 100);
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = @LeptetesResource.AKijeloltOsztalyokLetrehozasaKovTanevben, ClientAction = "LeptetesHelper.saveOsztalyLeptetes()" } });
}
<div class="container-fluid details">
<div class="row">
@(grid)
</div>
</div>
<style>
table td:nth-child(4), table th:nth-child(4) {
border-right: 4px solid #406a7c !important;
}
table td:nth-child(7), table th:nth-child(7) {
border-right: 1px solid #406a7c !important;
}
table td:nth-child(9), table th:nth-child(9) {
border-right: 1px solid #406a7c !important;
}
</style>
<script type="text/javascript">
var LeptetesHelper = (function () {
var helper = function () { };
var gridName = "OsztalyLeptetesGrid";
var url = {
saveOsztalyLeptetes: "@Url.HttpRouteUrl("ActionApi", new { controller = "OsztalyLeptetesApi", action = "SaveOsztalyLeptetes" })"
}
helper.saveOsztalyLeptetes = function () {
var data = []; var isError = false;
var modRows = KretaGridHelper.getSelectedRowsByGridName(gridName);
$.each(modRows, function (i, v) {
if (v.ki_EditOsztalyNeve == '') { isError = true; }
data.push({
SourceID: v.ID,
Nev: v.ki_EditOsztalyNeve,
Evfolyam: $("#" + gridName + "_EditEvfolyam_" + v.ID).val()
});
});
if (!isError)
AjaxHelper.DoPost(url.saveOsztalyLeptetes, data, successResponse);
else
KretaWindowHelper.notification("@LeptetesResource.OsztalyKotelezo", "error");
}
function successResponse() {
KretaWindowHelper.successFeedBackWindow();
KretaGridHelper.refreshGrid(gridName);
}
return helper;
})();
</script>

View file

@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

View file

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Kreta.Web" />
<add namespace="Kreta.BusinessLogic.Utils" />
<add namespace="Kendo.Mvc.UI" />
<add namespace="Kreta.Web.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>