/// <summary> /// sort filter for state /// </summary> /// <param name="criteria"></param> /// <returns></returns> private Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> > OrderBuildOrderByFilter( DTParameterModel criteria) { Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> > func = (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)null; if (criteria.Order != null && criteria.Order.Count <DTOrder>() > 0) { string dir = criteria.Order.FirstOrDefault <DTOrder>().Dir; int column = criteria.Order.FirstOrDefault <DTOrder>().Column; DTColumn dtColumn = criteria.Columns.ToList <DTColumn>().ElementAt <DTColumn>(column); if (dtColumn.Name == "Order_id") { func = !dir.Equals("asc") ? (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderByDescending <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.order_id.ToString()))) : (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderBy <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.order_id.ToString()))); } if (dtColumn.Name == "Totalprice") { func = !dir.Equals("asc") ? (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderByDescending <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.Totalprice))) : (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderBy <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.Totalprice))); } if (dtColumn.Name == "payment_mode") { func = !dir.Equals("asc") ? (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderByDescending <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.payment_mode))) : (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderBy <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.payment_mode))); } if (dtColumn.Name == "Status") { func = !dir.Equals("asc") ? (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderByDescending <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.order_status))) : (Func <IQueryable <Shop_Order_Details>, IOrderedQueryable <Shop_Order_Details> >)(p => p.OrderBy <Shop_Order_Details, string>((Expression <Func <Shop_Order_Details, string> >)(t => t.order_status))); } } return(func); }
/// <summary> /// To converts all premitive data to string data. /// </summary> /// <param name="primitiveType">Column data type</param> /// <param name="checkType">Check sting Type data</param> /// <returns>returns String data</returns> public static string StringFromPrimitivetype(object primitiveType, bool checkType) { string convertedString = null; if (primitiveType != null) { if (DTColumn.CheckType(primitiveType, DTType.DateTime)) { DateTime dateTime = (DateTime)primitiveType; convertedString += dateTime.Year + "/"; convertedString += dateTime.Month + "/"; convertedString += dateTime.Day + "-"; convertedString += dateTime.Hour + ":"; convertedString += dateTime.Minute + ":"; convertedString += dateTime.Second + "."; convertedString += dateTime.Millisecond; } else if (DTColumn.CheckType(primitiveType, DTType.ByteArray)) { convertedString = Convert.ToBase64String((byte[])primitiveType); } else if (DTColumn.CheckType(primitiveType, DTType.String)) { if (checkType == true) { convertedString = primitiveType.ToString().Replace("\r", "\rrnr:"); convertedString = primitiveType.ToString().Replace("\n", "\rrnn:"); convertedString = primitiveType.ToString().Replace("\r", "\r\n"); } else { convertedString = primitiveType.ToString(); } } else { convertedString = primitiveType.ToString(); } } return(convertedString); }
/// <summary> /// To converts all string data to premitive Type by colType and cellString. /// </summary> /// <param name="colType">Column data type</param> /// <param name="cellString">Cell data</param> /// <returns>return Premitive type object</returns> public static object PrimitivetypeFromString(DTType colType, string cellString) { object convertedPrimitiveType = null; if (cellString != null) { // ByteArray if (colType == DTType.ByteArray) { byte[] cellByte = Convert.FromBase64String(cellString); convertedPrimitiveType = cellByte; } // DateTime else if (colType == DTType.DateTime) { string ymd = cellString.Split('-')[0]; string hmsf = cellString.Split('-')[1]; DateTime cellDttm = new DateTime( int.Parse(ymd.Split('/')[0]), int.Parse(ymd.Split('/')[1]), int.Parse(ymd.Split('/')[2]), int.Parse(hmsf.Split(':')[0]), int.Parse(hmsf.Split(':')[1]), int.Parse(hmsf.Split(':')[2].Split('.')[0]), int.Parse(hmsf.Split(':')[2].Split('.')[1])); convertedPrimitiveType = cellDttm; } else { convertedPrimitiveType = DTColumn.AutoCast(colType, cellString.ToString()); } } return(convertedPrimitiveType); }
public async Task <DTResult <EmployeeModel> > GetList(DTParameters gridParrams) { DTColumn columnName = gridParrams.Columns.SingleOrDefault(x => x.Data == "Name"); String globaSearch = gridParrams.Search.Value; var result = from item in _context.Contacts where !item.IsDeleted select item; if (!String.IsNullOrEmpty(columnName.Search.Value)) { result = from item in result where item.LastName.StartsWith(columnName.Search.Value) || item.FirstName.StartsWith(columnName.Search.Value) select item; } foreach (var order in gridParrams.Order) { DTColumn columnOrder = gridParrams.Columns[order.Column]; switch (columnOrder.Data) { case "Name": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.LastName).ThenBy(x => x.FirstName); } else { result = result.OrderByDescending(x => x.LastName).ThenByDescending(x => x.FirstName); } break; } case "CompanyName": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.CompanyName); } else { result = result.OrderByDescending(x => x.CompanyName); } break; } case "Address": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.Address1); } else { result = result.OrderByDescending(x => x.Address1); } break; } case "City": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.City); } else { result = result.OrderByDescending(x => x.City); } break; } case "State": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.State); } else { result = result.OrderByDescending(x => x.State); } break; } case "ContactType": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => (x.ContactType != null?x.ContactType.Name:"")); } else { result = result.OrderByDescending(x => (x.ContactType != null ? x.ContactType.Name : "")); } break; } case "JobTitle": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.JobTitle); } else { result = result.OrderByDescending(x => x.JobTitle); } break; } case "Phone": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.Phone); } else { result = result.OrderByDescending(x => x.Phone); } break; } case "EmailAddress": { if (order.Dir == DTOrderDir.ASC) { result = result.OrderBy(x => x.EmailAddress); } else { result = result.OrderByDescending(x => x.EmailAddress); } break; } } } Int32 count = result.Count(); var list = await result.Skip(gridParrams.Start).Take(gridParrams.Length).ToListAsync(); List <EmployeeModel> models = new List <EmployeeModel>(); foreach (var item in list) { EmployeeModel model = new EmployeeModel(); model.ContactId = item.ContactId.ToString(); model.FirstName = item.FirstName; model.LastName = item.LastName; model.CompanyName = item.CompanyName; model.Address1 = item.Address1; model.Address2 = item.Address2; model.City = item.City; model.State = item.State; model.ContactType = item.ContactTypeId.HasValue ? item.ContactType.Name : ""; model.JobTitle = item.JobTitle; model.Phone = item.Phone; model.MobilePhone = item.MobilePhone; model.EmailAddress = item.EmailAddress; model.Action = ""; models.Add(model); } DTResult <EmployeeModel> resultGrid = new DTResult <EmployeeModel> { draw = gridParrams.Draw, data = models, recordsFiltered = count, recordsTotal = count }; return(resultGrid); }