예제 #1
0
        /// <summary>
        /// 获取手术代码
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        public IList <Orgnization> GetOrgnizations(Orgnization orgnization)
        {
            var reValue = SqlMapper.QueryForList <Orgnization>("GetOrgnizations", orgnization);

            logger.Debug("GetOrgnizations:" + (reValue == null ? 0 : reValue.Count));
            return(reValue);
        }
예제 #2
0
        /// <summary>
        /// 取得数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private Orgnization GetData(int id)
        {
            Orgnization model = new  Orgnization();

            if (id > 0)
            {
                model = EnterRepository.GetRepositoryEnter().OrgnizationRepository.LoadEntities(m => m.ID == id).FirstOrDefault();
            }
            model.ParentID    = Request.Form["ParentID"] != "" ? int.Parse(Request.Form["ParentID"]) : 0;
            model.ParentName  = Request.Form["ParentName"] != "" ? Request.Form["ParentName"] : "";
            model.OrgName     = Request.Form["OrgName"] != "" ? Request.Form["OrgName"] : "";
            model.Description = Request.Form["Description"] != "" ? Request.Form["Description"] : "";

            return(model);
        }
예제 #3
0
        /// <summary>
        /// 取得数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private Orgnization GetData(int id)
        {
            Orgnization model = new Orgnization();

            if (id > 0)
            {
                SystemContext.Instance.OrgnizationServices.GetOrgnizationByID(id.ToString(), ref model);
            }
            model.ParentID   = Request.Form["ParentID"] != "" ? Request.Form["ParentID"] : "";
            model.ParentName = Request.Form["ParentName"] != "" ? Request.Form["ParentName"] : "";
            model.OrgName    = Request.Form["OrgName"] != "" ? Request.Form["OrgName"] : "";
            model.Describe   = Request.Form["Description"] != "" ? Request.Form["Description"] : "";

            return(model);
        }
예제 #4
0
        /// <summary>
        /// 添加或修改数据
        /// </summary>
        public ActionResult UpdateData()
        {
            try
            {
                int         id    = Request.Form["id"] != "" ? Convert.ToInt32(Request.Form["id"]) : 0;
                Orgnization model = GetData(id);

                string writeMsg = "操作失败!";
                if (model != null)
                {
                    if (id < 1)
                    {
                        EnterRepository.GetRepositoryEnter().OrgnizationRepository.AddEntity(model);

                        if (EnterRepository.GetRepositoryEnter().SaveChange() > 0)
                        {
                            writeMsg = "增加成功!";
                        }
                        else
                        {
                            writeMsg = "增加失败!";
                        }
                    }
                    else
                    {
                        EnterRepository.GetRepositoryEnter().OrgnizationRepository.Get(m => m.ID == id);
                        EnterRepository.GetRepositoryEnter().OrgnizationRepository.EditEntity(model, new string[] { "OrgName", "ParentID", "Description" });
                        if (EnterRepository.GetRepositoryEnter().SaveChange() > 0)
                        {
                            writeMsg = "更新成功!";
                        }
                        else
                        {
                            writeMsg = "更新失败!";
                        }
                    }
                }
                return(Content(writeMsg));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #5
0
        /// <summary>
        /// 获取指定ID的数据
        /// </summary>
        public ActionResult QueryOneData()
        {
            string      id      = Request.Form["id"] != "" ? Request.Form["id"] : "0";
            Orgnization item    = new Orgnization();
            short       shRet   = SystemContext.Instance.OrgnizationServices.GetOrgnizationByID(id, ref item);
            JsonHelper  json    = new JsonHelper();
            string      strJson = string.Empty;

            if (shRet == ExecuteResult.OK)
            {
                json.AddItem("ID", item.ID.ToString());
                json.AddItem("OrgName", item.OrgName);
                json.AddItem("ParentID", item.ParentID);
                json.AddItem("ParentName", item.ParentName);
                json.AddItem("Description", item.Describe);
                json.AddItem("RoleType", item.RoleType);
                json.ItemOk();
            }
            strJson = json.ToEasyuiListJsonString();
            return(Content(strJson));
        }
예제 #6
0
        /// <summary>
        /// 添加或修改数据
        /// </summary>
        public ActionResult UpdateData()
        {
            int         id    = Request.Form["id"] != "" ? Convert.ToInt32(Request.Form["id"]) : 0;
            Orgnization model = GetData(id);

            string writeMsg = "操作失败!";

            if (model != null)
            {
                if (id < 1)
                {
                    short shRet = SystemContext.Instance.OrgnizationServices.Add(model);
                    if (shRet == ExecuteResult.OK)
                    {
                        writeMsg = "增加成功!";
                    }
                    else
                    {
                        writeMsg = "增加失败!";
                    }
                }
                else
                {
                    short shRet = SystemContext.Instance.OrgnizationServices.Update(model);
                    if (shRet == ExecuteResult.OK)
                    {
                        writeMsg = "更新成功!";
                    }
                    else
                    {
                        writeMsg = "更新失败!";
                    }
                }
            }
            return(Content(writeMsg));
        }
예제 #7
0
 public void TestMethod1()
 {
     Orgnization orgnization    = new Orgnization();
     var         lstOrgnization = OrgnizationDao.Instance.GetOrgnizations(orgnization);
 }
예제 #8
0
        public void IncludeLevelTest()
        {
            using (var freeSql = new FreeSqlBuilder()
                                 .UseConnectionString(DataType.Sqlite, "Data Source=:memory:;")
                                 .UseAutoSyncStructure(true)
                                 .Build())
            {
                freeSql.Aop.CurdBefore += (s, e) =>
                {
                    Trace.WriteLine(e.Sql);
                };

                var company = new Company {
                    Id = Guid.NewGuid(), Code = "CO001"
                };
                var department = new Department {
                    Id = Guid.NewGuid(), Code = "D001", CompanyId = company.Id
                };
                var orgnization = new Orgnization {
                    Code = "C001", CompanyId = company.Id
                };
                freeSql.Insert(company).ExecuteAffrows();
                freeSql.Insert(orgnization).ExecuteAffrows();
                freeSql.Insert(department).ExecuteAffrows();

                var materials = new[]
                {
                    new Material {
                        Code = "TEST1", Units = new List <Unit> {
                            new Unit {
                                Code = "KG"
                            }
                        }
                    },
                    new Material {
                        Code = "TEST2", Units = new List <Unit> {
                            new Unit {
                                Code = "KG"
                            }
                        }
                    }
                };

                var repo1 = freeSql.GetGuidRepository <Material>();
                repo1.DbContextOptions.EnableCascadeSave = true;
                repo1.Insert(materials);


                var order = new Order
                {
                    Code          = "X001",
                    OrgnizationId = orgnization.Id,
                    OrderItems    = new List <OrderItem>
                    {
                        new OrderItem {
                            ItemCode = "01", MaterialId = materials[0].Id
                        },
                        new OrderItem {
                            ItemCode = "02", MaterialId = materials[1].Id
                        },
                    }
                };

                var repo2 = freeSql.GetGuidRepository <Order>();
                repo2.DbContextOptions.EnableCascadeSave = true;
                repo2.Insert(order);

                // 可以完整加载数据
                var list1 = freeSql.Select <Orgnization>().IncludeMany(t => t.Company.Departments).ToList();
                // 只能查询到Orgnization
                var list2 = freeSql.Select <Order>().IncludeMany(t => t.Orgnization.Company.Departments).ToList();
                //freeSql.Select<Order>().IncludeMany(t => t.OrderItems, then => then.IncludeMany(t => t.Material.Units)).ToList().Dump();
                // 使用扩展方法加载到指定层级
                var list3 = freeSql.Select <Order>().IncludeLevel(3).ToList();
            }
        }
예제 #9
0
        public void WhereByPropertyTest()
        {
            using (var freeSql = new FreeSqlBuilder()
                                 .UseConnectionString(DataType.Sqlite, "Data Source=:memory:;")
                                 .UseAutoSyncStructure(true)
                                 .Build())
            {
                freeSql.Aop.CurdBefore += (s, e) =>
                {
                    Trace.WriteLine(e.Sql);
                };

                var company = new Company {
                    Id = Guid.NewGuid(), Code = "CO001"
                };
                var department = new Department {
                    Id = Guid.NewGuid(), Code = "D001", CompanyId = company.Id
                };
                var orgnization = new Orgnization {
                    Code = "C001", CompanyId = company.Id
                };
                freeSql.Insert(company).ExecuteAffrows();
                freeSql.Insert(orgnization).ExecuteAffrows();
                freeSql.Insert(department).ExecuteAffrows();

                var materials = new[]
                {
                    new Material {
                        Code = "TEST1", Units = new List <Unit> {
                            new Unit {
                                Code = "KG"
                            }
                        }
                    },
                    new Material {
                        Code = "TEST2", Units = new List <Unit> {
                            new Unit {
                                Code = "KG"
                            }
                        }
                    }
                };

                var repo1 = freeSql.GetGuidRepository <Material>();
                repo1.DbContextOptions.EnableCascadeSave = true;
                repo1.Insert(materials);


                var order = new Order
                {
                    Code          = "X001",
                    OrgnizationId = orgnization.Id,
                    OrderItems    = new List <OrderItem>
                    {
                        new OrderItem {
                            ItemCode = "01", MaterialId = materials[0].Id
                        },
                        new OrderItem {
                            ItemCode = "02", MaterialId = materials[1].Id
                        },
                    }
                };

                var repo2 = freeSql.GetGuidRepository <Order>();
                repo2.DbContextOptions.EnableCascadeSave = true;
                repo2.Insert(order);

                // 根据导航属性过滤数据
                //var list1 = freeSql.Select<Order>().Where(t => t.OrderItems.Any(t1 => t1.Material.Units.Any(t2 => t2.Code == "KG"))).ToList();
                var filterInfo1 = new DynamicFilterInfo
                {
                    Field    = "Code",
                    Operator = DynamicFilterOperator.Eq,
                    Value    = "KG",
                };
                var list1 = freeSql.Select <Order>().Where(t => t.OrderItems.Any(t1 => t1.Material.Units.AsSelect().WhereDynamicFilter(filterInfo1).Any())).ToList();

                // 导航属性如果是 OneToOne 或者 ManyToOne 默认支持
                var filterInfo2 = new DynamicFilterInfo
                {
                    Field    = "Orgnization.Company.Code",
                    Operator = DynamicFilterOperator.Eq,
                    Value    = "CO001",
                };
                //var list2 = freeSql.Select<Order>().Where(t => t.Orgnization.Company.Code == "CO001").ToList();
                var list2 = freeSql.Select <Order>().WhereDynamicFilter(filterInfo2).ToList();

                // 实现效果 OrderItems.Material.Units.Code == "KG"
                var list3 = freeSql.Select <Order>().Where("OrderItems.Material.Units.Code", DynamicFilterOperator.Eq, "KG").ToList();

                // 实现效果 OrderItems.Material.Code == "TEST1"
                // Error SQL:
                // SELECT a."Id", a."Code", a."OrgnizationId"
                // FROM "Order" a
                // WHERE (exists(SELECT 1
                //     FROM "OrderItem" a
                //     LEFT JOIN "Material" a__Material ON a__Material."Id" = a."MaterialId"
                //     WHERE (a__Material."Code" = 'TEST1') AND (a."OrderId" = a."Id")
                //     limit 0,1))
                var list4 = freeSql.Select <Order>().Where("OrderItems.Material.Code", DynamicFilterOperator.Eq, "TEST1").ToList();


                // 拓展 DynamicFilter
                var dynmaicFilterInfo = new DynamicFilterInfo
                {
                    Field    = $"{nameof(DynamicLinqCustom.WhereNavigation)} {typeof(DynamicLinqCustom).FullName},{typeof(DynamicLinqCustom).Assembly.FullName}",
                    Operator = DynamicFilterOperator.Custom,
                    Value    = JsonConvert.SerializeObject(new DynamicFilterInfo {
                        Field = "OrderItems.Material.Units.Code", Operator = DynamicFilterOperator.Eq, Value = "KG"
                    }),
                };
                var list5 = freeSql.Select <Order>()
                            .WhereDynamicFilter(dynmaicFilterInfo)
                            .ToList();
            }
        }