Exemplo n.º 1
0
        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));
                    }
                }
            }
        }
Exemplo n.º 2
0
        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 });
            }
        }