public object Export(JGridRequest packet, IQuerySelector querySelector, DbContext dbContext = null) { var httpContext = new Http().HttpContext; if (packet.Extension == null || packet.Extension == "" || packet.Extension != "csv") { packet.Extension = "xlsx"; } DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt = db.GetDataTable(querySelector.Select(packet)); //dt = db.GetDataTable(querySelector.Select(packet), dbContext); if (packet.Extension == "csv") { StringBuilder sb = new StringBuilder(); IEnumerable <string> columnNames = dt.Columns.Cast <DataColumn>().Select(column => column.ColumnName); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { IEnumerable <string> fields = row.ItemArray.Select(field => field.ToString()); sb.AppendLine(string.Join(",", fields)); } string st = sb.ToString(); return(null); } else { dt.TableName = packet.ModelName; ds.Tables.Add(dt); using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(ds); wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; wb.Style.Font.Bold = true; using (MemoryStream stream = new MemoryStream()) { wb.SaveAs(stream); return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", packet.ModelName + "." + packet.Extension)); } } } }
public object Manage(JGridRequest packet, object filter, IQuerySelector querySelector, DbContext dbContext = null) { try { JGridPacket jGridPacket = new JGridPacket(); dbContext = dbContext ?? Config.DB.DefaultDbContext; if (packet.Data != null) { Dictionary <string, object> filterDictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(packet.Data.ToString()); if (packet.RequestType == "ShowEdit" || packet.RequestType == "Update") { if (filter.GetPropertyValue("OverrideModel") != null && packet.IsOverride == true) { packet.ModelName = filterDictionary["OverrideModel"].ToString(); } } } if (packet.RequestType == "Show" || packet.RequestType == "Export") { if (!packet.IsOverride) { packet.ModelName = packet.ModelName.Contains("View") == true ? packet.ModelName : packet.ModelName + "View"; } } object model = null; if (packet.RequestType != "Export") { model = Dynamic.GetInstance(Dynamic.GetFullyQualifiedPath(packet.ModelName, "Domain")); } switch (packet.RequestType) { case "Show": jGridPacket.Record = db.GetAll(model, querySelector.Select(packet), true, dbContext); break; case "Insert": object data = JsonConvert.DeserializeObject(packet.Data, model.GetType()); jGridPacket.Record = db.Save(data, dbContext).Result.Model; db.Commit(); break; case "Update": Dictionary <string, object> requestData = JsonConvert.DeserializeObject <Dictionary <string, object> >(packet.Data); requestData.Add("ModifiedBy", Config.APP.UserId); requestData.Add("ModificationDate", DateTime.Now.ToString()); packet.Data = JsonConvert.SerializeObject(requestData); jGridPacket.Record = Update(packet.ModelName, packet, dbContext); db.Commit(); break; case "Delete": jGridPacket.Record = Delete(packet.ModelName, packet, dbContext); InsertVerificationLog(packet, jGridPacket.Record, OperationType.DELETE, dbContext); db.Commit(); break; case "VerifyInfo": jGridPacket.Record = GetVerifyInfo(model, packet, dbContext); break; case "Verify": Dictionary <string, object> verifyData = JsonConvert.DeserializeObject <Dictionary <string, object> >(packet.Data); verifyData.Add("VerifiedBy", Config.APP.UserId); verifyData.Add("VerificationDate", DateTime.Now); packet.Data = JsonConvert.SerializeObject(verifyData); jGridPacket.Record = Update(packet.ModelName, packet, dbContext); InsertVerificationLog(packet, jGridPacket.Record, OperationType.UPDATE, dbContext); db.Commit(); return(new { success = true, Data = "Verification Successful", VerifierName = Config.APP.UserName, VerificationDate = DateTime.Now }); case "Export": return(Export(packet, querySelector, dbContext)); case "ShowEdit": object showData = db.GetById(model, packet.RecordId, false, dbContext); string viewName = packet.ControllerName != "QB" ? packet.ModelName : packet.ControllerName; //string html = Cast.View.GetString(packet.ControllerName + "/" + viewName+".cshtml"); var html = Cast.View.GetString("~/Views/" + packet.ControllerName + "/" + packet.ModelName + ".cshtml"); //string html = Tools.RenderView(packet.ControllerName + "/" + viewName); return(new { success = true, json = showData, html }); case "ShowCreate": html = Cast.View.GetString("~/Views/" + packet.ControllerName + "/" + packet.ModelName + ".cshtml"); return(new { success = true, html }); case "Map": List <MapJson> lst = new List <MapJson> { new MapJson() { Id = 4, Location = "GMP 1 (1-Dec-2018)", Latitude = "23.7491206", Longitude = "90.3602757" }, new MapJson() { Id = 5, Location = "GMP 2 (1-Jan-2019)", Latitude = "23.7478959", Longitude = "90.3629236" }, new MapJson() { Id = 3, Location = "GMP 3 (1-Feb-2019)", Latitude = "23.7489088", Longitude = "90.3649791" }, new MapJson() { Id = 2, Location = "GMP 4 (1-Mar-2019)", Latitude = "23.7477852", Longitude = "90.3629741" }, new MapJson() { Id = 1, Location = "GMP 5 (1-Apr-2019)", Latitude = "23.7390734", Longitude = "90.3609762" } }; return(new { success = true, Data = lst }); } return(new { Data = jGridPacket, success = true }); } catch (Exception ex) { return(new { success = false, Data = ex.Message }); } }