public JsonResult GetGridColStructure(int id) { var DHeader = ctx.TfatDesignHeaders.Single(h => h.HeaderRecordKey == id); var DForms = DHeader.TfatDesignForms.Where(f => f.TabName.ToUpper().Equals("GRID")).OrderBy(f => Math.Abs(Convert.ToDecimal(f.DisplayOrder))); List <string> colName = new List <string>(); List <string> colNm = new List <string>(); List <object> result = new List <object>(); List <GridColumn> colModel = new List <GridColumn>(); foreach (var DForm in DForms) { colName.Add(DForm.LabelCaption); colNm.Add(DForm.Fld); GridColumn gc = new GridColumn(); gc.name = DForm.LabelCaption; gc.index = DForm.Fld; gc.key = (DHeader.IDKey.Split('^').LastOrDefault() == DForm.Fld ? true : false); if (gc.key == false) { gc.editable = true; if (DForm.fType == "D") { gc.edittype = "select"; } else { gc.edittype = "text"; } } colModel.Add(gc); } result.Add(CoreCommon.GetString(colName.ToArray())); result.Add(colModel); JsonResult JR = new JsonResult(); JR.Data = Newtonsoft.Json.JsonConvert.SerializeObject(result); return(JR); }
private string[] GetStringArr(string p, int HeaderId, string IDKey) { var DHeader = ctx.TfatDesignHeaders.Single(h => h.HeaderRecordKey == HeaderId); var DForms = DHeader.TfatDesignForms.Where(f => f.TabName.ToUpper().Equals("GRID")).OrderBy(f => Math.Abs(Convert.ToDecimal(f.DisplayOrder))); int frmcount = DForms.Count(); string TableName = DHeader.TfatDesignForms.First(f => f.TabName.ToUpper().Equals("GRID")).Fle; object obj = CoreCommon.GetTableObject(TableName); var resultDB = ctx.Set(obj.GetType()).SqlQuery("Select * from [" + TableName + "] Where " + IDKey + " = @ID", new SqlParameter("@ID", p)).ToListAsync().Result; string[] col = new string[frmcount]; foreach (var colfrm in resultDB) { int i = 0; foreach (TfatDesignForm frm in DForms) { col[i] = Convert.ToString(colfrm.GetType().GetProperty(frm.Fld).GetValue(colfrm)); i++; } } return(col); }
public object Get(string sidx, string sord, int page, int rows) { int id = Convert.ToInt32(HttpContext.Current.Request.Url.Segments.Last()); string viewtype = HttpContext.Current.Request.UrlReferrer.Segments.Last(); string querystring = HttpContext.Current.Request.UrlReferrer.Query.ToString(); int childid = Convert.ToInt32(string.IsNullOrEmpty(querystring) ? "0" : querystring.Split(new char[] { '=' }).LastOrDefault()); var DHeader = ctx.TfatDesignHeaders.Single(h => h.HeaderRecordKey == id); var DForms = DHeader.TfatDesignForms.Where(f => f.TabName.ToUpper().Equals("GRID")).OrderBy(f => Math.Abs(Convert.ToDecimal(f.DisplayOrder))); string TableName = DHeader.TfatDesignForms.First(f => f.TabName.ToUpper().Equals("GRID")).Fle; object obj = CoreCommon.GetTableObject(TableName); IEnumerable <object> resultDB = ctx.Set(obj.GetType()) as IEnumerable <object>; string[] IDs = DHeader.IDKey.Split('^'); if (viewtype.ToUpper() != "GRID") { resultDB = from r in resultDB where r.GetType().GetProperty(IDs.First()).GetValue(r).Equals(childid) select r; } if (sord == "desc") { resultDB = from r in resultDB orderby r.GetType().GetProperty(sidx).GetValue(r) descending select r; } else { resultDB = from r in resultDB orderby r.GetType().GetProperty(sidx).GetValue(r) select r; } int count = resultDB.Count(); int pageIndex = Convert.ToInt32(page) - 1; int pageSize = rows; int totalRecords = count; int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize); var Data = resultDB.Skip(pageIndex * pageSize).Take(pageSize); var result = new { total = totalPages, page = page, records = totalRecords, rows = (from dt in Data select new { i = dt.GetType().GetProperty(IDs.First()).GetValue(dt), cell = GetStringArr(Convert.ToString(dt.GetType().GetProperty(viewtype.ToUpper().Equals("GRID") ? IDs.First() : IDs.Last()).GetValue(dt)), id, (viewtype.ToUpper().Equals("GRID") ? IDs.FirstOrDefault() : IDs.LastOrDefault())) }).ToArray() }; return(result); }
public ActionResult Master(string id, FormCollection collection) { string[] DynamicMaster = id.Split('_'); //int DHeaderID = int.Parse(DynamicMaster.First()); string DHeaderID = DynamicMaster.First(); string VType = DynamicMaster.Last(); List <FormCollection> frmcollecttion = new List <FormCollection>(); //TfatDesignHeader DHead = ctx.TfatDesignHeaders.First(h => h.HeaderRecordKey == DHeaderID); TfatDesignHeader DHead = ctx.TfatDesignHeaders.First(h => h.OptionCode == DHeaderID); object hdnData; try { if (collection.AllKeys.AsEnumerable().Single(k => k.Equals("hdn")).Equals("hdn")) { hdnData = JsonConvert.DeserializeObject(collection["hdn"].ToString()); JArray a = JArray.Parse(hdnData.ToString()); collection.Remove("hdn"); foreach (JObject fld in a.Children <JObject>()) { FormCollection fc = new FormCollection(); foreach (JProperty p in fld.Properties()) { string n = DHead.TfatDesignForms.Where(f => f.LabelCaption == p.Name).Select(f => f.Fld).ToList()[0].ToString(); string v = (p.Value as JValue).Value.ToString(); fc.Add(n, v); } fc.Add(DHead.IDKey.Split('^').FirstOrDefault(), collection[DHead.IDKey.Split('^').FirstOrDefault()]); frmcollecttion.Add(fc); } } } catch { } string message = string.Empty; switch (VType.ToUpper()) { case "ADD": foreach (string TableName in DHead.TableName.Split('^')) { var discTab = DHead.TfatDesignForms.Where(f => f.Fle == TableName).Select(f => f.TabName).Distinct(); if (discTab.ToList().SequenceEqual(new string[] { "Grid" })) { foreach (FormCollection fc in frmcollecttion) { DynAdd.DynamicAddMaster(fc, TableName, DHead.IDKey.Split('^').LastOrDefault()); } } else { message = DynAdd.DynamicAddMaster(collection, TableName, DHead.IDKey.Split('^').FirstOrDefault()); } } break; case "EDIT": foreach (string TableName in DHead.TableName.Split('^')) { var discTab = DHead.TfatDesignForms.Where(f => f.Fle == TableName).Select(f => f.TabName).Distinct(); if (discTab.ToList().SequenceEqual(new string[] { "Grid" })) { DbSet Table = CoreCommon.GetTableData(TableName); string RemoveID = DHead.IDKey.Split('^').LastOrDefault(); string IDKey = DHead.IDKey.ToString(); string Where = IDKey.ToString().Replace("^", "=@p1").Replace(RemoveID, ""); var QryResult = Table.SqlQuery("SELECT * FROM [" + TableName + "] WHERE " + Where, new object[] { new SqlParameter("@p1", collection[DHead.IDKey.Split('^').FirstOrDefault()]) }).ToListAsync().Result; string[] ExistedCode = new string[QryResult.Count]; int i = 0; foreach (var CodeResult in QryResult) { dynamic IDValue = CodeResult.GetType().GetProperty(DHead.IDKey.Split('^').LastOrDefault().ToString()).GetValue(CodeResult); ExistedCode[i] = IDValue.ToString(); i++; } string[] AddedCode = new string[frmcollecttion.Count]; i = 0; foreach (FormCollection fc in frmcollecttion) { Where = DHead.IDKey.ToString().Replace("^", "=@p1 AND ") + "=@p2;"; var QryResult1 = Table.SqlQuery("SELECT * FROM [" + TableName + "] WHERE " + Where, new object[] { new SqlParameter("@p1", collection[DHead.IDKey.Split('^').FirstOrDefault()]), new SqlParameter("@p2", fc[DHead.IDKey.Split('^').LastOrDefault().ToString()]) }).ToListAsync().Result; if (QryResult1.Count == 0) { DynAdd.DynamicAddMaster(fc, TableName, DHead.IDKey.Split('^').LastOrDefault()); } else { DynEdit.DynamicEditMaster(fc, TableName); AddedCode[i] = fc[DHead.IDKey.Split('^').LastOrDefault().ToString()].ToString(); i++; } } var DeleteCode = ExistedCode.Except(AddedCode); foreach (var DeleteingCode in DeleteCode) { FormCollection fc = new FormCollection(); fc.Add(DHead.IDKey.Split('^').LastOrDefault().ToString(), DeleteingCode.ToString()); DynDel.DynamicDeleteMaster(TableName, DHead.IDKey.Split('^').LastOrDefault().ToString(), fc); } } else { DynEdit.DynamicEditMaster(collection, TableName); } } //DynamicEdit.DynamicEditMaster(DHeaderID, collection); break; case "DELETE": foreach (string TableName in DHead.TableName.Split('^').Reverse()) { //DynamicDelete.DynamicDeleteMaster(DHeaderID, collection); DynDel.DynamicDeleteMaster(TableName, DHead.IDKey.Split('^').FirstOrDefault().ToString(), collection); } break; } //ViewList/Index/City return(Redirect("/ViewList/Index/" + DHeaderID + "?msg=" + message));//+ "/" + DynamicMaster[1] + "/List"); }