/* * Controller for DB table FinObj * Created by http://editor.datatables.net/generator */ using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Formatting; using System.Web; //using System.Web.Http; using System.Web.Mvc; using DataTables; using DataTables.Queryable; using K2PortWeb.Models; using LibDb; namespace K2PortWeb.Controllers { public class FinObjController : BaseController { public ActionResult Index() { FinObjFilter ff = new FinObjFilter(); using (K2PortContext db = new K2PortContext()) { ff.AssetClasses = Enum.GetValues(typeof(LibDb.Enum.AssetClass)) .Cast() .Select(t => new VMAssetClass { ID = ((int)t), Name = t.ToString() }) .ToList(); } //PrepareSuggestions(); return View(ff); } [AcceptVerbs("Get", "Post")] public ActionResult FinObj() { try { var formData = HttpContext.Request.Form; //using (var db = new Database(settings.DbType, settings.DbConnection)) using (var db = new Database(K2Port.Config.C["DBType"], K2Port.Config.C["DBConnectionString"])) { Editor editor = new Editor(db, "FinObj", "ID") .Model() .Field(new Field("ID") .Validator(Validation.NotEmpty()) .Validator(Validation.Unique()) ) .Field(new Field("InternalCode") .Validator(Validation.NotEmpty()) .Validator(Validation.Unique()) ) .Field(new Field("Name") .Validator(Validation.NotEmpty()) .Validator(Validation.MaxLen(50)) ) .Field(new Field("ShortName") .Validator(Validation.MaxLen(16)) ) .Field(new Field("ISIN") .Validator(Validation.MaxLen(12)) ) .Field(new Field("BBFigiCode") .Validator(Validation.MaxLen(12)) ) .Field(new Field("BBTicker") .Validator(Validation.MaxLen(30)) ) .Field(new Field("Currency") .Validator(Validation.NotEmpty()) .Validator(Validation.MaxLen(3)) ) .Field(new Field("PortCode") .Validator(Validation.NotEmpty()) .Validator(Validation.MaxLen(30)) ) .Field(new Field("IsExtraBB") .Validator(Validation.NotEmpty()) ) .Field(new Field("DeletionDate") .Validator(Validation.DateFormat(Format.DATE_ISO_1036)) .GetFormatter(Format.DateSqlToFormat(Format.DATE_ISO_1036)) .SetFormatter(Format.DateFormatToSql(Format.DATE_ISO_1036)) ); editor.Process(formData); editor.Data(); //var ret = K2PortWeb.Json.JsonNetResult.JsonDataTable(response, 1); //return ret; //var ret = Json(response, JsonRequestBehavior.AllowGet); var ret = Json(editor.Data(), JsonRequestBehavior.AllowGet); return ret; } } catch (Exception exc) { K2Port.Loggr.Exc(exc); return null; } } //[WebMethod(Description = "Server Side DataTables support", EnableSession = true)] public JsonResult List(DataTablesAjaxPostModel model, bool onlyOTC, bool deleted, int? AssetClassID) { try { var request = new DataTablesRequest(model); using (K2PortContext db = new K2PortContext()) { IEnumerable finobjs = db.FinObj .Where(p => onlyOTC ? p.IsExtraBB : true && deleted ? true : p.DeletionDate == null); if (AssetClassID.HasValue) finobjs = finobjs.Where(p => (int)p.AssetClass == AssetClassID.Value); var pagedFinObjs = finobjs .ToList() .Select(p => new FinObjModel(p)) .ToPagedList(request); var ret = K2PortWeb.Json.JsonNetResult.JsonDataTable(pagedFinObjs, request.Draw); return ret; } } catch (Exception exc) { K2Port.Loggr.Error(exc.Message); return null; } } } }