public void CanCreateLoan() { ILoanHelper loanHelper = new LoanHelper(); ILoanDAO loanDao = new LoanDao(loanHelper); IMemberHelper memberHelper = new MemberHelper(); IMemberDAO memberDao = new MemberDao(memberHelper); IBookHelper bookHelper = new BookHelper(); IBookDAO bookDao = new BookDao(bookHelper); var borrowDate = DateTime.Today; var dueDate = DateTime.Today.AddDays(7); var member = memberDao.AddMember("Jim", "Tulip", "csu phone", "*****@*****.**"); var book = bookDao.AddBook("Jim Tulip", "Adventures in Programming", "call number"); var loan = loanDao.CreateLoan(member, book, borrowDate, dueDate); Assert.NotNull(loan); Assert.Empty(loanDao.LoanList); Assert.Equal(book, loan.Book); Assert.Equal(member, loan.Borrower); Assert.Equal(0, loan.ID); }
public void CanCreateMember() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); Assert.NotNull(member); Assert.NotEmpty(dao.MemberList); Assert.Equal(1, dao.MemberList.Count); Assert.Equal(member, dao.MemberList[0]); Assert.Equal(firstName, member.FirstName); Assert.Equal(lastName, member.LastName); Assert.Equal(contactPhone, member.ContactPhone); Assert.Equal(emailAddress, member.EmailAddress); Assert.NotEqual(0, member.ID); }
public MockDataProviderModule() { _memberHelper = new MemberHelper(); _memberDAO = new MemberDAO(_memberHelper); _loanHelper = new LoanHelper(); _loanDAO = new LoanDAO(_loanHelper); _bookHelper = new BookHelper(); _bookDao = new BookDAO(_bookHelper); // Setup dates for test data _borrowDate = DateTime.Now; _loanPeriod = new TimeSpan(LoanConstants.LOAN_PERIOD, 0, 0, 0); _dueDate = _borrowDate.Add(_loanPeriod); SetupBookTestData(); SetupMemberTestData(); SetUpLoanTestData(); SetUpTestData(); }
public void CanGetMemberById() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); for (int i = 0; i < 10; i++) { dao.AddMember("Test", "Test", "test phone", "test email"); } var result = dao.GetMemberByID(member.ID); Assert.Equal(member, result); }
public void CanGetLoanByBookTitle() { ILoanHelper loanHelper = new LoanHelper(); ILoanDAO loanDao = new LoanDao(loanHelper); IMemberHelper memberHelper = new MemberHelper(); IMemberDAO memberDao = new MemberDao(memberHelper); IBookHelper bookHelper = new BookHelper(); IBookDAO bookDao = new BookDao(bookHelper); var borrowDate = DateTime.Today; var dueDate = DateTime.Today.AddDays(7); var member = memberDao.AddMember("Jim", "Tulip", "csu phone", "*****@*****.**"); var book = bookDao.AddBook("Jim Tulip", "Adventures in Programming", "call number"); var loan = loanDao.CreateLoan(member, book, borrowDate, dueDate); loanDao.CommitLoan(loan); for (int i = 0; i < 10; i++) { var m = memberDao.AddMember("Test", "Test", "Test Phone", "Test Email"); var b = bookDao.AddBook("Test", "Test", "Test"); var l = loanDao.CreateLoan(m, b, borrowDate, dueDate); loanDao.CommitLoan(l); } var result = loanDao.FindLoansByBookTitle(book.Title); var single = result.Single(); Assert.Equal(loan, single); }
public void CanGetMemberByEmailAddress() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); for (int i = 0; i < 10; i++) { dao.AddMember("Test", "Test", "test phone", "test email"); } var result = dao.FindMembersByEmailAddress(member.EmailAddress); var singleResult = result.Single(); // Test there should only be one result and get it. Assert.Equal(member, singleResult); }
public Expression BuildExpression(IBuildContext context, Expression expression) { var newExpr = expression.Transform(expr => { if (_skippedExpressions.Contains(expr)) { return(new TransformInfo(expr, true)); } if (expr.Find(IsNoneSqlMember) != null) { return(new TransformInfo(expr)); } switch (expr.NodeType) { case ExpressionType.MemberAccess: { if (IsServerSideOnly(expr) || PreferServerSide(expr)) { return(new TransformInfo(BuildSql(context, expr))); } var ma = (MemberExpression)expr; if (Expressions.ConvertMember(MappingSchema, ma.Member) != null) { break; } if (ma.Member.IsNullableValueMember()) { break; } if (ma.Member.IsNullableHasValueMember()) { Expression e = Expression.NotEqual( ma.Expression, Expression.Constant(null, ma.Expression.Type)); return(new TransformInfo( BuildExpression( context, ma.Expression.Type.IsPrimitiveEx() ? Expression.Call( MemberHelper.MethodOf(() => Sql.AsSql(true)), e) : e), true)); } var ctx = GetContext(context, expr); if (ctx != null) { return(new TransformInfo(ctx.BuildExpression(expr, 0))); } var ex = ma.Expression; if (ex != null && ex.NodeType == ExpressionType.Constant) { // field = localVariable // var c = _expressionAccessors[ex]; return(new TransformInfo(Expression.MakeMemberAccess(Expression.Convert(c, ex.Type), ma.Member))); } break; } case ExpressionType.Parameter: { if (expr == ParametersParam) { break; } var ctx = GetContext(context, expr); if (ctx != null) { return(new TransformInfo(ctx.BuildExpression(expr, 0))); } break; } case ExpressionType.Constant: { if (expr.Type.IsConstantable()) { break; } if (_expressionAccessors.ContainsKey(expr)) { return(new TransformInfo(Expression.Convert(_expressionAccessors[expr], expr.Type))); } break; } case ExpressionType.Coalesce: if (expr.Type == typeof(string) && MappingSchema.GetDefaultValue(typeof(string)) != null) { return(new TransformInfo(BuildSql(context, expr))); } if (CanBeTranslatedToSql(context, ConvertExpression(expr), true)) { return(new TransformInfo(BuildSql(context, expr))); } break; case ExpressionType.Conditional: if (CanBeTranslatedToSql(context, ConvertExpression(expr), true)) { return(new TransformInfo(BuildSql(context, expr))); } break; case ExpressionType.Call: { var ce = (MethodCallExpression)expr; if (IsGroupJoinSource(context, ce)) { foreach (var arg in ce.Arguments.Skip(1)) { if (!_skippedExpressions.Contains(arg)) { _skippedExpressions.Add(arg); } } if (IsSubQuery(context, ce)) { if (ce.IsQueryable()) //if (!typeof(IEnumerable).IsSameOrParentOf(expr.Type) || expr.Type == typeof(string) || expr.Type.IsArray) { var ctx = GetContext(context, expr); if (ctx != null) { return(new TransformInfo(ctx.BuildExpression(expr, 0))); } } } break; } if (IsSubQuery(context, ce)) { if (typeof(IEnumerable).IsSameOrParentOf(expr.Type) && expr.Type != typeof(string) && !expr.Type.IsArray) { return(new TransformInfo(BuildMultipleQuery(context, expr))); } return(new TransformInfo(GetSubQuery(context, ce).BuildExpression(null, 0))); } if (IsServerSideOnly(expr) || PreferServerSide(expr)) { return(new TransformInfo(BuildSql(context, expr))); } } break; } if (EnforceServerSide(context)) { switch (expr.NodeType) { case ExpressionType.MemberInit: case ExpressionType.New: case ExpressionType.Convert: break; default: if (CanBeCompiled(expr)) { break; } return(new TransformInfo(BuildSql(context, expr))); } } return(new TransformInfo(expr)); }); return(newExpr); }
static Expression GetMultipleQueryExpression(IBuildContext context, MappingSchema mappingSchema, Expression expression, HashSet <ParameterExpression> parameters) { if (!Common.Configuration.Linq.AllowMultipleQuery) { throw new LinqException("Multiple queries are not allowed. Set the 'LinqToDB.Common.Configuration.Linq.AllowMultipleQuery' flag to 'true' to allow multiple queries."); } expression.Visit(e => { if (e.NodeType == ExpressionType.Lambda) { foreach (var p in ((LambdaExpression)e).Parameters) { parameters.Add(p); } } }); // Convert associations. // return(expression.Transform(e => { switch (e.NodeType) { case ExpressionType.MemberAccess : { var root = e.GetRootObject(mappingSchema); if (root != null && root.NodeType == ExpressionType.Parameter && !parameters.Contains((ParameterExpression)root)) { var res = context.IsExpression(e, 0, RequestFor.Association); if (res.Result) { var table = (TableBuilder.AssociatedTableContext)res.Context; if (table.IsList) { var me = (MemberExpression)e; Expression expr; var parentType = me.Expression.Type; var childType = table.ObjectType; var queryMethod = table.Association.GetQueryMethod(parentType, childType); if (queryMethod != null) { //TODO: MARS var dcConst = Expression.Constant(context.Builder.DataContext.Clone(true)); expr = queryMethod.GetBody(me.Expression, dcConst); } else { var ttype = typeof(Table <>).MakeGenericType(childType); var tbl = Activator.CreateInstance(ttype, context.Builder.DataContext); var method = e == expression ? MemberHelper.MethodOf <IEnumerable <bool> >(n => n.Where(a => a)).GetGenericMethodDefinition().MakeGenericMethod(childType) : _whereMethodInfo.MakeGenericMethod(e.Type, childType, ttype); var op = Expression.Parameter(childType, "t"); parameters.Add(op); Expression ex = null; for (var i = 0; i < table.Association.ThisKey.Length; i++) { var field1 = table.ParentAssociation.SqlTable.Fields[table.Association.ThisKey [i]]; var field2 = table.SqlTable.Fields[table.Association.OtherKey[i]]; var ma1 = Expression.MakeMemberAccess(op, field2.ColumnDescriptor.MemberInfo); var ma2 = Expression.MakeMemberAccess(me.Expression, field1.ColumnDescriptor.MemberInfo); var ee = Equal(mappingSchema, ma1, ma2); ex = ex == null ? ee : Expression.AndAlso(ex, ee); } var predicate = table.Association.GetPredicate(parentType, childType); if (predicate != null) { var body = predicate.GetBody(me.Expression, op); ex = ex == null ? body : Expression.AndAlso(ex, body); } if (ex == null) { throw new LinqToDBException($"Invalid association configuration for {table.Association.MemberInfo.DeclaringType}.{table.Association.MemberInfo.Name}"); } expr = Expression.Call(null, method, Expression.Constant(tbl), Expression.Lambda(ex, op)); } if (e == expression) { expr = Expression.Call( MemberHelper.MethodOf <IEnumerable <int> >(n => n.ToList()).GetGenericMethodDefinition().MakeGenericMethod(childType), expr); } return expr; } } } break; } } return e; })); }
static MappingHelper() { _deserializeMethod = MemberHelper.MethodOf(() => JsonConvert.DeserializeObject(null, typeof(int))); _serializeMethod = MemberHelper.MethodOf(() => JsonConvert.SerializeObject(null)); _dataParamContructor = typeof(DataParameter).GetConstructor(new[] { typeof(string), typeof(object) }); }
public static string FullName(this IMethodDefinition method) { return(MemberHelper.GetMethodSignature(method, NameFormattingOptions.Signature | NameFormattingOptions.ParameterName)); }
public int rangeId = 1;//范围id 1:pc端,0:微信端, protected override void AttachChildControls() { int.TryParse(this.Page.Request.QueryString["categoryId"], out this.categoryId); this.keyWord = this.Page.Request.QueryString["keyWord"]; this.imglogo = (HiImage)this.FindControl("imglogo"); this.litTitle = (Literal)this.FindControl("litTitle"); this.litDes = (Literal)this.FindControl("litDes"); this.litMemberGradeInfo = (Literal)this.FindControl("litMemberGradeInfo"); this.imgUrl = (HiImage)this.FindControl("imgUrl"); this.litContent = (Literal)this.FindControl("litContent"); this.rptProducts = (VshopTemplatedRepeater)this.FindControl("rptProducts"); this.rptCategories = (VshopTemplatedRepeater)this.FindControl("rptCategories"); this.litCategoryId = (System.Web.UI.HtmlControls.HtmlInputHidden) this.FindControl("litCategoryId"); this.litCategoryId.SetWhenIsNotNull(this.categoryId.ToString()); this.Page.Session["stylestatus"] = "4"; this.storeId = !string.IsNullOrEmpty(this.Page.Request.QueryString["storeid"]) ? int.Parse(this.Page.Request.QueryString["storeid"]) : 0; MemberInfo currentMember = MemberProcessor.GetCurrentMember(); if (currentMember == null) { this.Page.Response.Redirect("UserLogin.aspx"); } HttpCookie cookie = HttpContext.Current.Request.Cookies["Vshop-ReferralId"]; int ReferralUserId = 0; if ((cookie != null) && !string.IsNullOrEmpty(cookie.Value)) { ReferralUserId = Convert.ToInt32(cookie.Value); } Hidistro.Entities.Members.DistributorsInfo userIdDistributors = DistributorsBrower.GetUserIdDistributors(ReferralUserId); Hidistro.Core.Entities.SiteSettings masterSettings = Hidistro.Core.SettingsManager.GetMasterSettings(false); //店铺logo if (userIdDistributors != null && !string.IsNullOrEmpty(userIdDistributors.Logo)) { this.imglogo.ImageUrl = userIdDistributors.Logo; } else { if (!string.IsNullOrEmpty(masterSettings.DistributorLogoPic)) { this.imglogo.ImageUrl = masterSettings.DistributorLogoPic.Split(new char[] { '|' })[0]; } } //店铺名和店铺描述 if (ReferralUserId == 0)//如果没有上级店铺 { this.litTitle.Text = masterSettings.SiteName; this.litDes.Text = masterSettings.ShopIntroduction; } else { this.litTitle.Text = userIdDistributors.StoreName; this.litDes.Text = userIdDistributors.StoreDescription; } //会员等级优惠信息 if (this.litMemberGradeInfo != null) { MemberGradeInfo gradeInfo = MemberHelper.GetMemberGrade(currentMember.GradeId);//会员等级信息 string gradeName = gradeInfo.Name; string currentMemberGradeName = (currentMember == null) ? "" : string.Format("<span style='font-size:12px; background:#F90; color:#FFF; border-radius:3px; padding:3px 5px; margin-right:5px;'>{0}</span>" , gradeName); if (gradeInfo.Discount < 100) { litMemberGradeInfo.Text = string.Format("{0}以下商品已获得{1}%折扣!", currentMemberGradeName, 100 - gradeInfo.Discount); } else { litMemberGradeInfo.Text = string.Format("{0}以下商品均无打折", currentMemberGradeName, 100 - gradeInfo.Discount);; } } switch (Hidistro.Core.SettingsManager.GetMasterSettings(true).VTheme.ToLower()) { case "common": case "hotel": Hidistro.Core.HiCache.Remove("DataCache-CategoriesRange"); //清除分类缓存 //获取手机端所有商品的分类 DataTable dt = CategoryBrowser.GetCategoriesByRange(rangeId); //CategoryBrowser.GetCategoriesRange(ProductInfo.ProductRanage.NormalSelect); int total = 0; DataTable dt2 = new DataTable(); if (categoryId == 0) { if (dt.Rows.Count > 0) { //获取手机端商品的第一个分类id int FirstCategoryID = Convert.ToInt32(dt.Rows[0]["categoryId"]); this.litCategoryId.SetWhenIsNotNull(FirstCategoryID.ToString()); dt2 = ProductBrowser.GetProducts(MemberProcessor.GetCurrentMember(), null, 0, FirstCategoryID, this.keyWord, 1, 20, out total, "ShowSaleCounts", "desc", "", rangeId, storeId); } } else { dt2 = ProductBrowser.GetProducts(MemberProcessor.GetCurrentMember(), null, 0, categoryId, this.keyWord, 1, 20, out total, "ShowSaleCounts", "desc", "", rangeId, storeId); } //根据商品id判断是否包含其余规格,如果有,则新增一个字段存入规格号 dt2.Columns.Add("skuCounts"); dt2.Columns.Add("Quantity"); List <Hidistro.Entities.Sales.ShoppingCartInfo> cart = ShoppingCartProcessor.GetShoppingCartList(); //获取购物车信息 foreach (DataRow row in dt2.Rows) { DataTable skus = ProductBrowser.GetSkus(Convert.ToInt32(row["ProductId"])); row["skuCounts"] = skus.Rows.Count; row["Quantity"] = 0; //根据商品id获取购物车中已存在的数量,防止页面刷新后选中的数量遗失 foreach (Hidistro.Entities.Sales.ShoppingCartInfo info in cart) { foreach (Hidistro.Entities.Sales.ShoppingCartItemInfo itemInfo in info.LineItems) { if (Convert.ToInt32(row["ProductId"]) == itemInfo.ProductId) { row["Quantity"] = itemInfo.Quantity; } } } } this.rptCategories.DataSource = dt; this.rptCategories.DataBind(); this.rptProducts.DataSource = dt2; this.rptProducts.DataBind(); break; default: this.rptCategories.ItemDataBound += new RepeaterItemEventHandler(this.rptCategories_ItemDataBound); if (this.Page.Request.QueryString["TypeId"] != null) { this.rptCategories.DataSource = CategoryBrowser.GetCategoriesByPruductType(100, Convert.ToInt32(this.Page.Request.QueryString["TypeId"])); this.rptCategories.DataBind(); } else { IList <CategoryInfo> maxSubCategories = CategoryBrowser.GetMaxSubCategoriesRange(this.categoryId, 0x3e8, DistributorsBrower.GetCurrStoreProductRange()); this.rptCategories.DataSource = maxSubCategories; this.rptCategories.DataBind(); } PageTitle.AddSiteNameTitle("移动点餐"); break; } }
public void CanGetOverdueLoans() { ILoanHelper loanHelper = new LoanHelper(); ILoanDAO loanDao = new LoanDao(loanHelper); IMemberHelper memberHelper = new MemberHelper(); IMemberDAO memberDao = new MemberDao(memberHelper); IBookHelper bookHelper = new BookHelper(); IBookDAO bookDao = new BookDao(bookHelper); var borrowDate = DateTime.Today; var dueDate = DateTime.Today.AddDays(7); var member = memberDao.AddMember("Jim", "Tulip", "csu phone", "*****@*****.**"); var book = bookDao.AddBook("Jim Tulip", "Adventures in Programming", "call number"); var loan = loanDao.CreateLoan(member, book, borrowDate, dueDate); loanDao.CommitLoan(loan); Assert.Equal(LoanState.CURRENT, loan.State); loanDao.UpdateOverDueStatus(DateTime.Today.AddMonths(1)); Assert.Equal(LoanState.OVERDUE, loan.State); for (int i = 0; i < 10; i++) { var m = memberDao.AddMember("Test", "Test", "Test Phone", "Test Email"); var b = bookDao.AddBook("Test", "Test", "Test"); var l = loanDao.CreateLoan(m, b, borrowDate, dueDate); loanDao.CommitLoan(l); } var overdue = loanDao.FindOverDueLoans(); Assert.Equal(1, overdue.Count); Assert.Equal(loan, overdue[0]); }
public void GetMemberByNamesReturnsEmptyCollectionIfNotFound() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); for (int i = 0; i < 10; i++) { dao.AddMember("Test", "Test", "test phone", "test email"); } var result = dao.FindMembersByNames("Jim", "Tulip"); Assert.Empty(result); }
public void CanUpdateOverdueStatus() { ILoanHelper loanHelper = new LoanHelper(); ILoanDAO loanDao = new LoanDao(loanHelper); IMemberHelper memberHelper = new MemberHelper(); IMemberDAO memberDao = new MemberDao(memberHelper); IBookHelper bookHelper = new BookHelper(); IBookDAO bookDao = new BookDao(bookHelper); var borrowDate = DateTime.Today; var dueDate = DateTime.Today.AddDays(7); var member = memberDao.AddMember("Jim", "Tulip", "csu phone", "*****@*****.**"); var book = bookDao.AddBook("Jim Tulip", "Adventures in Programming", "call number"); var loan = loanDao.CreateLoan(member, book, borrowDate, dueDate); loanDao.CommitLoan(loan); Assert.Equal(LoanState.CURRENT, loan.State); loanDao.UpdateOverDueStatus(DateTime.Today.AddMonths(1)); Assert.Equal(LoanState.OVERDUE, loan.State); }
public void GetMemberByIdReturnsNullIfNotFound() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); for (int i = 0; i < 10; i++) { dao.AddMember("Test", "Test", "test phone", "test email"); } var result = dao.GetMemberByID(1000); Assert.Null(result); }
public void CreateMemberFailsOnIllegalArguments() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; Assert.Throws<ArgumentException>( () => { var member = dao.AddMember(null, lastName, contactPhone, emailAddress); }); Assert.Throws<ArgumentException>( () => { var member = dao.AddMember(firstName, null, contactPhone, emailAddress); }); Assert.Throws<ArgumentException>( () => { var member = dao.AddMember(firstName, lastName, null, emailAddress); }); Assert.Throws<ArgumentException>( () => { var member = dao.AddMember(firstName, lastName, contactPhone, null); }); }
public void CreateMemberCreatesAUniqueId() { IMemberHelper helper = new MemberHelper(); IMemberDAO dao = new MemberDao(helper); var firstName = "first"; var lastName = "last"; var contactPhone = "contactPhone"; var emailAddress = "emailAddress"; var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress); Assert.NotEqual(0, member.ID); }
public MemberDAOTests() { var memberHelper = new MemberHelper(); Dao = new MemberDAO(memberHelper); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_scale = 0.65f; AddCaption("Render sector FX", Color.Yellow.ToVector4()); AddShareFocusHint(); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f * m_scale; AddCheckBox("Enable dust", MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.Enabled)); m_currentPosition.Y += 0.01f * m_scale; AddLabel("Nebula", Color.Yellow.ToVector4(), 1.2f); VRageRender.MyImpostorProperties nebulaObj = new VRageRender.MyImpostorProperties(); bool found = false; foreach (VRageRender.MyImpostorProperties nebulaObjIt in MySector.ImpostorProperties) { if (nebulaObjIt.ImpostorType == VRageRender.MyImpostorType.Nebula) { nebulaObj = nebulaObjIt; found = true; break; } } if (found) { AddCheckBox("Enable", nebulaObj, MemberHelper.GetMember(() => nebulaObj.Enabled)); AddColor(new StringBuilder("Color"), nebulaObj, MemberHelper.GetMember(() => nebulaObj.Color)); AddSlider("Contrast", 0, 20, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Contrast)); AddSlider("Intensity", 0, 20, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Intensity)); AddSlider("Radius", 0, 10, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Radius)); AddSlider("Anim1", -0.1f, 0.1f, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Anim1)); AddSlider("Anim2", -0.1f, 0.1f, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Anim2)); AddSlider("Anim3", -0.1f, 0.1f, nebulaObj, MemberHelper.GetMember(() => nebulaObj.Anim3)); } m_currentPosition.Y += 0.01f * m_scale; AddLabel("God rays", Color.Yellow.ToVector4(), 1.2f); AddCheckBox("Enable", MySector.GodRaysProperties, MemberHelper.GetMember(() => MySector.GodRaysProperties.Enabled)); AddSlider("Density", 0, 2, MySector.GodRaysProperties, MemberHelper.GetMember(() => MySector.GodRaysProperties.Density)); AddSlider("Weight", 0, 2, MySector.GodRaysProperties, MemberHelper.GetMember(() => MySector.GodRaysProperties.Weight)); AddSlider("Decay", 0, 2, MySector.GodRaysProperties, MemberHelper.GetMember(() => MySector.GodRaysProperties.Decay)); AddSlider("Exposition", 0, 2, MySector.GodRaysProperties, MemberHelper.GetMember(() => MySector.GodRaysProperties.Exposition)); m_currentPosition.Y += 0.01f * m_scale; AddLabel("Particle dust", Color.Yellow.ToVector4(), 1.2f); AddSlider("Dust radius", 0.01f, 200, MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.DustBillboardRadius)); AddSlider("Dust count in dir half", 0.01f, 20, MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.DustFieldCountInDirectionHalf)); AddSlider("Distance between", 1f, 500, MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.DistanceBetween)); AddSlider("Anim speed", 0.0f, 0.1f, MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.AnimSpeed)); AddColor(new StringBuilder("Color"), MySector.ParticleDustProperties, MemberHelper.GetMember(() => MySector.ParticleDustProperties.Color)); m_currentPosition.Y += 0.01f * m_scale; var env = MySector.EnvironmentDefinition; if (false) { AddSlider("Bg. Yaw", env.BackgroundOrientation.Yaw, 0f, MathHelper.TwoPi, (s) => { env.BackgroundOrientation.Yaw = s.Value; }); AddSlider("Bg. Pitch", env.BackgroundOrientation.Pitch, 0f, MathHelper.TwoPi, (s) => { env.BackgroundOrientation.Pitch = s.Value; }); AddSlider("Bg. Roll", env.BackgroundOrientation.Roll, 0f, MathHelper.TwoPi, (s) => { env.BackgroundOrientation.Roll = s.Value; }); } Vector3.GetAzimuthAndElevation(env != null ? env.SunProperties.SunDirectionNormalized : Vector3.Down, out m_azimuth, out m_elevation); AddSlider("Sun Azimuth", m_azimuth, -MathHelper.TwoPi, MathHelper.TwoPi, (s) => { m_azimuth = s.Value; }); AddSlider("Sun Elevation", m_elevation, -MathHelper.PiOver2, MathHelper.PiOver2, (s) => { m_elevation = s.Value; }); //AddButton(new StringBuilder("Save environment"), (s) => { MyDefinitionManager.Static.SaveEnvironmentDefinition(); }); }
public async Task <ActionResult> AddChildren(AddChildrenModel AddChildrenModel) { RegistrationCompleteViewModel viewModel = new RegistrationCompleteViewModel(); viewModel.ChildrenAdded = AddChildrenModel.Children; viewModel.Adult = AddChildrenModel.Adult; if (AddChildrenModel.Children == null || AddChildrenModel.Children.Count == 0) { //family opted to not add any children return(View("RegistrationComplete", viewModel)); } //we need to validate the data server side if (AddChildrenModel.Children.Any(x => !x.ChildIsValid)) { ModelState.AddModelError("", "Every child family member requires a valid first name, last name, birthdate and gender."); } if (!ModelState.IsValid) { AddChildrenViewModel addChildviewModel = new AddChildrenViewModel(); addChildviewModel.AddChildrenModel.Adult = AddChildrenModel.Adult; addChildviewModel.AddChildrenModel = AddChildrenModel; return(View(viewModel)); } Person adult = await ArenaAPIHelper.GetPerson(AddChildrenModel.Adult.PersonId); viewModel.Adult = adult; //everything looks good, lets add the kids to the family foreach (var child in AddChildrenModel.Children) { Person familyChild = MemberHelper.GetChildPersonFromMember(child, (Campus)adult.CampusId); familyChild.Addresses = adult.Addresses; familyChild.FamilyId = adult.FamilyId; familyChild.FamilyName = adult.FamilyName; familyChild.Phones = adult.Phones; ArenaPostResult result = await ArenaAPIHelper.AddPerson(familyChild); if (!result.WasSuccessful) { //stop processing and report error return(View("Error", new HandleErrorInfo(new Exception("API request to add child failed."), "Home", "AddChildren"))); } int newPersonId = result.ObjectId; //add to group result = await ArenaAPIHelper.AddPersonToGroup(newPersonId, ((Campus)adult.CampusId == Campus.Brownsboro)?(int)VisitorGroups.BrownsboroVisitors : (int)VisitorGroups.CliftonVisitors); if (!result.WasSuccessful) { //stop processing and report error return(View("Error", new HandleErrorInfo(new Exception("API request to add child to group failed."), "Home", "AddChildren"))); } //add grade note result = await ArenaAPIHelper.AddPersonNote(newPersonId, child.Grade); if (!result.WasSuccessful) { //stop processing and report error return(View("Error", new HandleErrorInfo(new Exception("API request to add grade to child failed."), "Home", "AddChildren"))); } } return(View("RegistrationComplete", viewModel)); }
protected void DoCallback() { base.Response.Clear(); base.Response.ContentType = "application/json"; string str = base.Request.QueryString["action"]; if (str.Equals("getPrepareData")) { int typeId = int.Parse(base.Request.QueryString["typeId"]); IList <AttributeInfo> attributes = ProductTypeHelper.GetAttributes(typeId); DataTable brandCategoriesByTypeId = ProductTypeHelper.GetBrandCategoriesByTypeId(typeId); base.Response.Write(this.GenerateJsonString(attributes, brandCategoriesByTypeId)); attributes.Clear(); } else if (str.Equals("getMemberGradeList")) { IList <MemberGradeInfo> memberGrades = MemberHelper.GetMemberGrades(); if ((memberGrades == null) || (memberGrades.Count == 0)) { base.Response.Write("{\"Status\":\"0\"}"); } else { StringBuilder builder = new StringBuilder(); builder.Append("{\"Status\":\"OK\",\"MemberGrades\":["); foreach (MemberGradeInfo info in memberGrades) { builder.Append("{"); builder.AppendFormat("\"GradeId\":\"{0}\",", info.GradeId); builder.AppendFormat("\"Name\":\"{0}\",", info.Name); builder.AppendFormat("\"Discount\":\"{0}\"", info.Discount); builder.Append("},"); } builder.Remove(builder.Length - 1, 1); builder.Append("]}"); base.Response.Write(builder.ToString()); } } else if (str.Equals("getDistributorGradeList")) { DataTable distributorGrades = DistributorHelper.GetDistributorGrades(); if ((distributorGrades == null) || (distributorGrades.Rows.Count == 0)) { base.Response.Write("{\"Status\":\"0\"}"); } else { StringBuilder builder2 = new StringBuilder(); builder2.Append("{\"Status\":\"OK\",\"DistributorGrades\":["); foreach (DataRow row in distributorGrades.Rows) { builder2.Append("{"); builder2.AppendFormat("\"GradeId\":\"{0}\",", (int)row["GradeId"]); builder2.AppendFormat("\"Name\":\"{0}\",", (string)row["Name"]); builder2.AppendFormat("\"Discount\":\"{0}\"", (int)row["Discount"]); builder2.Append("},"); } builder2.Remove(builder2.Length - 1, 1); builder2.Append("]}"); base.Response.Write(builder2.ToString()); } } base.Response.End(); }
public Expression BuildExpression(IBuildContext context, Expression expression) { var newExpr = expression.Transform(expr => { if (_skippedExpressions.Contains(expr)) { return(new TransformInfo(expr, true)); } if (expr.Find(IsNoneSqlMember) != null) { return(new TransformInfo(expr)); } switch (expr.NodeType) { case ExpressionType.Convert: case ExpressionType.ConvertChecked: { if (expr.Type == typeof(object)) { break; } var cex = (UnaryExpression)expr; _convertedExpressions.Add(cex.Operand, cex); var nex = BuildExpression(context, cex.Operand); if (nex.Type != cex.Type) { nex = cex.Update(nex); } var ret = new TransformInfo(nex, true); _convertedExpressions.Remove(cex.Operand); return(ret); } case ExpressionType.MemberAccess: { if (IsServerSideOnly(expr) || PreferServerSide(expr)) { return(new TransformInfo(BuildSql(context, expr))); } var ma = (MemberExpression)expr; if (Expressions.ConvertMember(MappingSchema, ma.Expression == null ? null : ma.Expression.Type, ma.Member) != null) { break; } if (ma.Member.IsNullableValueMember()) { break; } if (ma.Member.IsNullableHasValueMember()) { Expression e = Expression.NotEqual( ma.Expression, Expression.Constant(null, ma.Expression.Type)); return(new TransformInfo( BuildExpression( context, ma.Expression.Type.IsPrimitiveEx() ? Expression.Call( MemberHelper.MethodOf(() => Sql.AsSql(true)), e) : e), true)); } var ctx = GetContext(context, ma); if (ctx != null) { if (ma.Type.IsGenericTypeEx() && typeof(IEnumerable <>).IsSameOrParentOf(ma.Type)) { var res = ctx.IsExpression(ma, 0, RequestFor.Association); if (res.Result) { var table = (TableBuilder.AssociatedTableContext)res.Context; if (table.IsList) { var mexpr = GetMultipleQueryExpression(context, ma, new HashSet <ParameterExpression>()); return(new TransformInfo(BuildExpression(context, mexpr))); } } } return(new TransformInfo(ctx.BuildExpression(ma, 0))); } var ex = ma.Expression; while (ex is MemberExpression) { ex = ((MemberExpression)ex).Expression; } if (ex is MethodCallExpression) { var ce = (MethodCallExpression)ex; if (IsSubQuery(context, ce)) { if (!IsMultipleQuery(ce)) { var info = GetSubQueryContext(context, ce); var par = Expression.Parameter(ex.Type); var bex = info.Context.BuildExpression(ma.Transform(e => e == ex ? par : e), 0); if (bex != null) { return(new TransformInfo(bex)); } } } } ex = ma.Expression; if (ex != null && ex.NodeType == ExpressionType.Constant) { // field = localVariable // var c = _expressionAccessors[ex]; return(new TransformInfo(Expression.MakeMemberAccess(Expression.Convert(c, ex.Type), ma.Member))); } break; } case ExpressionType.Parameter: { if (expr == ParametersParam) { break; } var ctx = GetContext(context, expr); if (ctx != null) { return(new TransformInfo(ctx.BuildExpression(expr, 0))); } break; } case ExpressionType.Constant: { if (expr.Type.IsConstantable()) { break; } if (_expressionAccessors.ContainsKey(expr)) { return(new TransformInfo(Expression.Convert(_expressionAccessors[expr], expr.Type))); } break; } case ExpressionType.Coalesce: if (expr.Type == typeof(string) && MappingSchema.GetDefaultValue(typeof(string)) != null) { return(new TransformInfo(BuildSql(context, expr))); } if (CanBeTranslatedToSql(context, ConvertExpression(expr), true)) { return(new TransformInfo(BuildSql(context, expr))); } break; case ExpressionType.Conditional: if (CanBeTranslatedToSql(context, ConvertExpression(expr), true)) { return(new TransformInfo(BuildSql(context, expr))); } break; case ExpressionType.Call: { var ce = (MethodCallExpression)expr; if (IsGroupJoinSource(context, ce)) { foreach (var arg in ce.Arguments.Skip(1)) { if (!_skippedExpressions.Contains(arg)) { _skippedExpressions.Add(arg); } } if (IsSubQuery(context, ce)) { if (ce.IsQueryable()) //if (!typeof(IEnumerable).IsSameOrParentOf(expr.Type) || expr.Type == typeof(string) || expr.Type.IsArray) { var ctx = GetContext(context, expr); if (ctx != null) { return(new TransformInfo(ctx.BuildExpression(expr, 0))); } } } break; } if ((_buildMultipleQueryExpressions == null || !_buildMultipleQueryExpressions.Contains(ce)) && IsSubQuery(context, ce)) { if (IsMultipleQuery(ce)) { return(new TransformInfo(BuildMultipleQuery(context, ce))); } return(new TransformInfo(GetSubQueryExpression(context, ce))); } if (IsServerSideOnly(expr) || PreferServerSide(expr)) { return(new TransformInfo(BuildSql(context, expr))); } } break; } if (EnforceServerSide(context)) { switch (expr.NodeType) { case ExpressionType.MemberInit: case ExpressionType.New: case ExpressionType.Convert: break; default: if (CanBeCompiled(expr)) { break; } return(new TransformInfo(BuildSql(context, expr))); } } return(new TransformInfo(expr)); }); return(newExpr); }
private void btnCreateReport_Click(object sender, System.EventArgs e) { ManagerHelper.CheckPrivilege(Privilege.ReconciOrdersDetailsExcel); string startDate = this.calendarStart.SelectedDate.ToString(); string EndSdate = this.calendarEnd.SelectedDate.ToString(); if (string.IsNullOrEmpty(startDate) || string.IsNullOrEmpty(EndSdate)) { this.ShowMsg("起止时间不能为空!", false); return; } System.TimeSpan ND = Convert.ToDateTime(EndSdate) - Convert.ToDateTime(startDate); double mday = ND.Days; if (mday > 31) { this.ShowMsg("查询起止时间不能大于31天!", false); return; } DbQueryResult balanceDetailsNoPage = MemberHelper.ExportReconciliationOrdersDetailed(new ReconciliationOrdersQuery { StartDate = this.dateStart, EndDate = this.dateEnd, SortBy = "TradingTime", SortOrder = SortAction.Desc, Supplier = this.sysupperId }); DataTable dtResult = (DataTable)balanceDetailsNoPage.Data; if (dtResult == null || dtResult.Rows.Count == 0) { this.ShowMsg("没有数据!", false); return; } MemoryStream ms = NPOIExcelHelper.ExportToExcel(dtResult, "对账单"); this.Page.Response.Clear(); this.Page.Response.Buffer = false; this.Page.Response.Charset = "GB2312"; //this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=ReconciliationOrdersDetailed.xlsx"); if (!(this.calendarStart.SelectedDate.HasValue && this.calendarEnd.SelectedDate.HasValue)) { this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=对账订单明细报表.xlsx"); } else { this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=对账订单明细报表_" + this.dateStart.Value.ToString("yyyyMMdd") + "-" + this.dateEnd.Value.ToString("yyyyMMdd") + ".xlsx"); } this.Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); this.Page.Response.ContentType = "application/octet-stream"; this.Page.EnableViewState = false; this.Page.Response.BinaryWrite(ms.ToArray()); ms.Dispose(); ms.Close(); EventLogs.WriteOperationLog(Privilege.ReconciOrdersDetailsExcel, string.Format(CultureInfo.InvariantCulture, "用户{0}生成对账订单明细报告成功", new object[] { this.User.Identity.Name })); this.Page.Response.End(); string text = string.Empty; StringBuilder sbstr = new StringBuilder(); sbstr.Append("付款日期"); sbstr.Append(",订单号"); sbstr.Append(",子订单号"); sbstr.Append(",实际金额"); sbstr.Append(",收款金额"); sbstr.Append(",退款金额"); sbstr.Append(",买家昵称"); sbstr.Append(",拍单时间"); sbstr.Append(",付款时间"); sbstr.Append(",商品总金额"); sbstr.Append(",订单金额"); sbstr.Append(",优惠金额"); sbstr.Append(",运费"); sbstr.Append(",优惠券"); sbstr.Append(",现金劵"); sbstr.Append(",货到付款服务费"); sbstr.Append(",扣点"); sbstr.Append(",成本价"); sbstr.Append(",订单备注"); sbstr.Append(",买家留言"); sbstr.Append(",收货地址"); sbstr.Append(",收货人名称"); sbstr.Append(",收货国家"); sbstr.Append(",州/省"); sbstr.Append(",城市"); sbstr.Append(",区"); sbstr.Append(",邮编"); sbstr.Append(",联系电话"); sbstr.Append(",手机"); sbstr.Append(",买家选择物流"); sbstr.Append(",最晚发货时间"); sbstr.Append(",海外订单"); sbstr.Append(",是否货到付款"); sbstr.Append(",订单状态"); sbstr.Append(",发货快递单号"); sbstr.Append(",退货快递单号"); sbstr.Append(",商品名称"); sbstr.Append(",商品条码"); sbstr.Append(",购买数量"); sbstr.Append(",退货数量"); sbstr.Append(",售价"); sbstr.Append(",销售价格"); sbstr.Append(",货主Id"); sbstr.Append(",货主名称"); sbstr.Append(",发货仓库"); sbstr.Append(",是否匹配促销模板\r\n"); foreach (System.Data.DataRow dataRow in ((System.Data.DataTable)balanceDetailsNoPage.Data).Rows) { sbstr.Append(dataRow["TradingTime"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["OrderId"]); sbstr.AppendFormat(",{0}", dataRow["ChildOrderId"]); sbstr.AppendFormat(",{0}", dataRow["ActualAmount"]); sbstr.AppendFormat(",{0}", dataRow["TotalAmount"]); sbstr.AppendFormat(",{0}", dataRow["RefundAmount"]); sbstr.AppendFormat(",{0}", dataRow["RealName"]); sbstr.AppendFormat(",{0}", dataRow["OrderDate"]); sbstr.AppendFormat(",{0}", dataRow["PayDate"]); sbstr.AppendFormat(",{0}", dataRow["Amount"]); sbstr.AppendFormat(",{0}", dataRow["OrderTotal"]); sbstr.AppendFormat(",{0}", dataRow["DiscountAmount"]); sbstr.AppendFormat(",{0}", dataRow["AdjustedFreight"]); sbstr.AppendFormat(",{0}", dataRow["CouponValue"]); sbstr.AppendFormat(",{0}", dataRow["VoucherValue"]); sbstr.AppendFormat(",{0}", dataRow["PayCharge"]); sbstr.AppendFormat(",{0}", dataRow["DeductFee"]); sbstr.AppendFormat(",{0}", dataRow["CostPrice"]); sbstr.AppendFormat(",\"{0}\"", dataRow["ManagerRemark"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Remark"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Address"]); sbstr.AppendFormat(",\"{0}\"", dataRow["ShipTo"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Country"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Province"]); sbstr.AppendFormat(",\"{0}\"", dataRow["City"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Area"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["ZipCode"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["TelPhone"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["CellPhone"]); sbstr.AppendFormat(",\"{0}\"", dataRow["ModeName"]); sbstr.AppendFormat(",\"{0}\"", dataRow["LatestDelivery"]); sbstr.AppendFormat(",\"{0}\"", dataRow["OverseasOrders"]); sbstr.AppendFormat(",\"{0}\"", dataRow["CashDelivery"]); sbstr.AppendFormat(",\"{0}\"", dataRow["OrderStatus"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["ShipOrderNumber"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["ReturnsExpressNumber"]); sbstr.AppendFormat(",\"{0}\"", dataRow["ItemDescription"]); sbstr.AppendFormat(",\"\t{0}\"", dataRow["SKU"]); sbstr.AppendFormat(",{0}", dataRow["Quantity"]); sbstr.AppendFormat(",{0}", dataRow["ReturnQuantity"]); sbstr.AppendFormat(",{0}", dataRow["ItemListPrice"]); sbstr.AppendFormat(",{0}", dataRow["ItemAdjustedPrice"]); sbstr.AppendFormat(",{0}", dataRow["SupplierId"]); sbstr.AppendFormat(",\"{0}\"", dataRow["SupplierName"]); sbstr.AppendFormat(",\"{0}\"", dataRow["ShipWarehouseName"]); sbstr.AppendFormat(",\"{0}\"", dataRow["Template"]); sbstr.Append("\r\n"); } this.Page.Response.Clear(); this.Page.Response.Buffer = false; this.Page.Response.Charset = "GB2312"; //this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=ReconciliationOrdersDetailed.csv"); if (!(this.calendarStart.SelectedDate.HasValue && this.calendarEnd.SelectedDate.HasValue)) { this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=对账订单明细报表.csv"); } else { this.Page.Response.AppendHeader("Content-Disposition", "attachment;filename=对账订单明细报表_" + this.dateStart.Value.ToString("yyyyMMdd") + "-" + this.dateEnd.Value.ToString("yyyyMMdd") + ".csv"); } this.Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); this.Page.Response.ContentType = "application/octet-stream"; this.Page.EnableViewState = false; this.Page.Response.Write(sbstr.ToString()); this.Page.Response.End(); }
private void BindMemberRanks() { this.rptList.DataSource = MemberHelper.GetMemberGrades(); this.rptList.DataBind(); }
public static NpgsqlProviderAdapter GetInstance() { if (_instance == null) { lock (_syncRoot) if (_instance == null) { var assembly = Tools.TryLoadAssembly(AssemblyName, null); if (assembly == null) { throw new InvalidOperationException($"Cannot load assembly {AssemblyName}"); } var connectionType = assembly.GetType($"{ClientNamespace}.NpgsqlConnection", true); var parameterType = assembly.GetType($"{ClientNamespace}.NpgsqlParameter", true); var dataReaderType = assembly.GetType($"{ClientNamespace}.NpgsqlDataReader", true); var commandType = assembly.GetType($"{ClientNamespace}.NpgsqlCommand", true); var transactionType = assembly.GetType($"{ClientNamespace}.NpgsqlTransaction", true); var dbType = assembly.GetType($"{TypesNamespace}.NpgsqlDbType", true); var npgsqlDateType = assembly.GetType($"{TypesNamespace}.NpgsqlDate", true); var npgsqlPointType = assembly.GetType($"{TypesNamespace}.NpgsqlPoint", true); var npgsqlLSegType = assembly.GetType($"{TypesNamespace}.NpgsqlLSeg", true); var npgsqlBoxType = assembly.GetType($"{TypesNamespace}.NpgsqlBox", true); var npgsqlCircleType = assembly.GetType($"{TypesNamespace}.NpgsqlCircle", true); var npgsqlPathType = assembly.GetType($"{TypesNamespace}.NpgsqlPath", true); var npgsqlPolygonType = assembly.GetType($"{TypesNamespace}.NpgsqlPolygon", true); var npgsqlLineType = assembly.GetType($"{TypesNamespace}.NpgsqlLine", true); var npgsqlInetType = assembly.GetType($"{TypesNamespace}.NpgsqlInet", true); var npgsqlTimeSpanType = assembly.GetType($"{TypesNamespace}.NpgsqlTimeSpan", true); var npgsqlDateTimeType = assembly.GetType($"{TypesNamespace}.NpgsqlDateTime", true); var npgsqlRangeTType = assembly.GetType($"{TypesNamespace}.NpgsqlRange`1", true); var npgsqlBinaryImporterType = assembly.GetType($"{ClientNamespace}.NpgsqlBinaryImporter", true); var typeMapper = new TypeMapper(); typeMapper.RegisterTypeWrapper <NpgsqlConnection>(connectionType); typeMapper.RegisterTypeWrapper <NpgsqlParameter>(parameterType); typeMapper.RegisterTypeWrapper <NpgsqlDbType>(dbType); typeMapper.RegisterTypeWrapper <NpgsqlBinaryImporter>(npgsqlBinaryImporterType); typeMapper.FinalizeMappings(); var paramMapper = typeMapper.Type <NpgsqlParameter>(); var dbTypeBuilder = paramMapper.Member(p => p.NpgsqlDbType); var pConnection = Expression.Parameter(typeof(IDbConnection)); var pCommand = Expression.Parameter(typeof(string)); var beginBinaryImport = Expression.Lambda <Func <IDbConnection, string, NpgsqlBinaryImporter> >( typeMapper.MapExpression((IDbConnection conn, string command) => typeMapper.Wrap <NpgsqlBinaryImporter>(((NpgsqlConnection)conn).BeginBinaryImport(command)), pConnection, pCommand), pConnection, pCommand) .Compile(); // create mapping schema var mappingSchema = new MappingSchema(); // date/time types AddUdtType(npgsqlDateType); AddUdtType(npgsqlDateTimeType); mappingSchema.SetDataType(npgsqlTimeSpanType, DataType.Interval); mappingSchema.SetDataType(npgsqlTimeSpanType.AsNullable(), DataType.Interval); // NpgsqlDateTimeType => DateTimeOffset { var p = Expression.Parameter(npgsqlDateTimeType, "p"); var pi = p.Type.GetProperty("DateTime"); Expression expr; if (pi != null) { // < 3.2.0 // https://github.com/npgsql/npgsql/commit/3894175f970b611f6428757a932b6393749da958#diff-c792076ac0455dd0f2852822ea38b0aaL166 expr = Expression.Property(p, pi); } else { // 3.2.0+ expr = Expression.Call(p, "ToDateTime", null); } var npgsqlDateTimeToDateTimeOffsetMapper = Expression.Lambda( Expression.New( MemberHelper.ConstructorOf(() => new DateTimeOffset(new DateTime())), expr), p); mappingSchema.SetConvertExpression(npgsqlDateTimeType, typeof(DateTimeOffset), npgsqlDateTimeToDateTimeOffsetMapper); } // inet types AddUdtType(npgsqlInetType); AddUdtType(typeof(IPAddress)); AddUdtType(typeof(PhysicalAddress)); // npgsql4 obsoletes NpgsqlInetType and returns ValueTuple<IPAddress, int> // still while it is here, we should be able to map it properly // (IPAddress, int) => NpgsqlInet { var valueTypeType = Type.GetType("System.ValueTuple`2", false); if (valueTypeType != null) { var inetTupleType = valueTypeType.MakeGenericType(typeof(IPAddress), typeof(int)); var p = Expression.Parameter(inetTupleType, "p"); var tupleToInetTypeMapper = Expression.Lambda( Expression.New( npgsqlInetType.GetConstructor(new[] { typeof(IPAddress), typeof(int) }), ExpressionHelper.Field(p, "Item1"), ExpressionHelper.Field(p, "Item2")), p); mappingSchema.SetConvertExpression(inetTupleType !, npgsqlInetType, tupleToInetTypeMapper); } } // ranges AddUdtType(npgsqlRangeTType); { void SetRangeConversion <T>(string?fromDbType = null, DataType fromDataType = DataType.Undefined, string?toDbType = null, DataType toDataType = DataType.Undefined) { var rangeType = npgsqlRangeTType.MakeGenericType(typeof(T)); var fromType = new DbDataType(rangeType, fromDataType, fromDbType); var toType = new DbDataType(typeof(DataParameter), toDataType, toDbType); var rangeParam = Expression.Parameter(rangeType, "p"); mappingSchema.SetConvertExpression(fromType, toType, Expression.Lambda( Expression.New( MemberHelper.ConstructorOf( () => new DataParameter("", null, DataType.Undefined, toDbType)), Expression.Constant(""), Expression.Convert(rangeParam, typeof(object)), Expression.Constant(toDataType), Expression.Constant(toDbType, typeof(string)) ) , rangeParam) ); } SetRangeConversion <byte>(); SetRangeConversion <int>(); SetRangeConversion <double>(); SetRangeConversion <float>(); SetRangeConversion <decimal>(); SetRangeConversion <DateTime>(fromDbType: "daterange", toDbType: "daterange"); SetRangeConversion <DateTime>(fromDbType: "tsrange", toDbType: "tsrange"); SetRangeConversion <DateTime>(toDbType: "tsrange"); SetRangeConversion <DateTime>(fromDbType: "tstzrange", toDbType: "tstzrange"); SetRangeConversion <DateTimeOffset>("tstzrange"); } // spatial types AddUdtType(npgsqlPointType); AddUdtType(npgsqlLSegType); AddUdtType(npgsqlBoxType); AddUdtType(npgsqlPathType); AddUdtType(npgsqlCircleType); AddUdtType(npgsqlPolygonType); AddUdtType(npgsqlLineType); _instance = new NpgsqlProviderAdapter( typeMapper, connectionType, dataReaderType, parameterType, commandType, transactionType, dbType, mappingSchema, npgsqlDateType, npgsqlPointType, npgsqlLSegType, npgsqlBoxType, npgsqlCircleType, npgsqlPathType, npgsqlPolygonType, npgsqlLineType, npgsqlInetType, npgsqlTimeSpanType, npgsqlDateTimeType, npgsqlRangeTType, typeMapper.BuildWrappedFactory((string connectionString) => new NpgsqlConnection(connectionString)), dbTypeBuilder.BuildSetter <IDbDataParameter>(), dbTypeBuilder.BuildGetter <IDbDataParameter>(), npgsqlBinaryImporterType.GetMethod("Complete") != null, npgsqlBinaryImporterType, beginBinaryImport); void AddUdtType(Type type) { if (!type.IsValueType) { mappingSchema.AddScalarType(type, null, true, DataType.Udt); } else { mappingSchema.AddScalarType(type, DataType.Udt); mappingSchema.AddScalarType(type.AsNullable(), null, true, DataType.Udt); } } } } return(_instance); }
public void GetLoanByLoanIdReturnsNullIfNotFound() { ILoanHelper loanHelper = new LoanHelper(); ILoanDAO loanDao = new LoanDao(loanHelper); IMemberHelper memberHelper = new MemberHelper(); IMemberDAO memberDao = new MemberDao(memberHelper); IBookHelper bookHelper = new BookHelper(); IBookDAO bookDao = new BookDao(bookHelper); var borrowDate = DateTime.Today; var dueDate = DateTime.Today.AddDays(7); var member = memberDao.AddMember("Jim", "Tulip", "csu phone", "*****@*****.**"); var book = bookDao.AddBook("Jim Tulip", "Adventures in Programming", "call number"); var loan = loanDao.CreateLoan(member, book, borrowDate, dueDate); loanDao.CommitLoan(loan); for (int i = 0; i < 10; i++) { var m = memberDao.AddMember("Test", "Test", "Test Phone", "Test Email"); var b = bookDao.AddBook("Test", "Test", "Test"); var l = loanDao.CreateLoan(m, b, borrowDate, dueDate); loanDao.CommitLoan(l); } var result = loanDao.GetLoanByID(1000); Assert.Null(result); }
public async Task <ActionResult> New(NewFamilyModel NewFamilyModel) { //we need to validate the data server side if (NewFamilyModel.NewFamilyMembers.Any(x => !x.AdultIsValid)) { ModelState.AddModelError("", "Every family member requires a valid first name, last name, email and phone number."); } //ensure at least 1 person is being added if (NewFamilyModel.NewFamilyMembers.Count == 0) { ModelState.AddModelError("", "At least 1 family member is required to register a family."); } //check the email addresses and phone numbers foreach (var member in NewFamilyModel.NewFamilyMembers) { Boolean isValid = true; if (!ValidationHelper.IsValidEmail(member.Email)) { ModelState.AddModelError("", String.Format("{0} is not a valid email address", member.Email)); isValid = false; } if (!ValidationHelper.IsValidPhone(ValidationHelper.CleanPhoneNumber(member.PhoneNumber))) { ModelState.AddModelError("", String.Format("{0} is not a valid phone number", member.PhoneNumber)); isValid = false; } if (isValid) { //lets just verify this email doesn't already exist in the system, if it does, we should redirect List <Person> personsFound = await ArenaAPIHelper.GetPersons(new PersonListOptions { Email = member.Email }); if (personsFound.Count > 0) { return(RedirectToAction("Find", new { email = member.Email })); } } } if (!ModelState.IsValid) { NewFamilyViewModel viewModel = new NewFamilyViewModel(); viewModel.Campuses = GetCampuses(); viewModel.States = GetStates(); viewModel.NewFamilyModel = NewFamilyModel; return(View(viewModel)); } //add the first person Person requiredAdult = MemberHelper.GetAdultPersonFromMember(NewFamilyModel.NewFamilyMembers.First(), (Campus)NewFamilyModel.CampusId); requiredAdult.Addresses = new List <Address> { NewFamilyModel.Address }; ArenaPostResult result = await ArenaAPIHelper.AddPerson(requiredAdult); if (result.WasSuccessful) { //we need the familyId requiredAdult = await ArenaAPIHelper.GetPerson(result.ObjectId); for (int i = 1; i < NewFamilyModel.NewFamilyMembers.Count; i++) { Person additonalAdult = MemberHelper.GetAdultPersonFromMember(NewFamilyModel.NewFamilyMembers[i], (Campus)NewFamilyModel.CampusId); additonalAdult.FamilyId = requiredAdult.FamilyId; additonalAdult.Addresses = requiredAdult.Addresses; result = await ArenaAPIHelper.AddPerson(additonalAdult); } return(RedirectToAction("AddChildren", new { id = requiredAdult.PersonId })); } return(RedirectToAction("Index")); }
static Expression GetMultipleQueryExpression(IBuildContext context, MappingSchema mappingSchema, Expression expression, HashSet <ParameterExpression> parameters) { if (!Common.Configuration.Linq.AllowMultipleQuery) { throw new LinqException("Multiple queries are not allowed. Set the 'LinqToDB.Common.Configuration.Linq.AllowMultipleQuery' flag to 'true' to allow multiple queries."); } expression.Visit(e => { if (e.NodeType == ExpressionType.Lambda) { foreach (var p in ((LambdaExpression)e).Parameters) { parameters.Add(p); } } }); // Convert associations. // return(expression.Transform(e => { switch (e.NodeType) { case ExpressionType.MemberAccess: { var root = e.GetRootObject(mappingSchema); if (root != null && root.NodeType == ExpressionType.Parameter && !parameters.Contains((ParameterExpression)root)) { var res = context.IsExpression(e, 0, RequestFor.Association); if (res.Result) { var table = (TableBuilder.AssociatedTableContext)res.Context; if (table.IsList) { var me = (MemberExpression)e; Expression expr; var parentType = me.Expression.Type; var childType = table.ObjectType; var queryMethod = table.Association.GetQueryMethod(parentType, childType); if (queryMethod != null) { var parentParam = Expression.Parameter(parentType, "o"); var ptype = typeof(Table <>).MakeGenericType(parentType); var ptbl = Activator.CreateInstance(ptype, context.Builder.DataContext); var principalExpression = Expression.Constant(ptbl); var selectMany = (MethodCallExpression)table.GetAssociationQueryExpression(Expression.Constant(context.Builder.DataContext), null, parentType, principalExpression, queryMethod); var parentDescriptor = mappingSchema.GetEntityDescriptor(parentType); var keyColumns = parentDescriptor.Columns.Where(c => c.IsPrimaryKey).ToList(); if (keyColumns.Count == 0) { keyColumns = parentDescriptor.Columns; } var arguments = selectMany.Arguments.ToList(); Expression predicate = null; foreach (var column in keyColumns) { var ee = Expression.Equal( Expression.MakeMemberAccess( parentParam, column.MemberInfo), Expression.MakeMemberAccess( root, column.MemberInfo)); predicate = predicate == null ? ee : Expression.AndAlso(predicate, ee); } if (predicate == null) { throw new LinqToDBException($"Invalid mapping for Principal Entity during association building. Association {table.Association.MemberInfo.DeclaringType}.{table.Association.MemberInfo.Name}"); } var filteredQuery = Expression.Call(null, _queryableMethodInfo.MakeGenericMethod(parentType), arguments[0], Expression.Lambda(predicate, parentParam)); arguments[0] = filteredQuery; selectMany = selectMany.Update(selectMany.Object, arguments); var asQueryable = MemberHelper .MethodOf((IQueryable <object> q) => LinqExtensions.AsQueryable <object, object>(0)) .GetGenericMethodDefinition() .MakeGenericMethod(e.Type, selectMany.Type); expr = Expression.Call(null, asQueryable, selectMany); } else { var ttype = typeof(Table <>).MakeGenericType(childType); var tbl = Activator.CreateInstance(ttype, context.Builder.DataContext); var method = e == expression ? MemberHelper.MethodOf <IEnumerable <bool> >(n => n.Where(a => a)).GetGenericMethodDefinition().MakeGenericMethod(childType) : _whereMethodInfo.MakeGenericMethod(e.Type, childType, ttype); var op = Expression.Parameter(childType, "t"); parameters.Add(op); Expression ex = null; for (var i = 0; i < table.Association.ThisKey.Length; i++) { var field1 = table.ParentAssociation.SqlTable.Fields[table.Association.ThisKey [i]]; var field2 = table.SqlTable.Fields[table.Association.OtherKey[i]]; var ma1 = Expression.MakeMemberAccess(op, field2.ColumnDescriptor.MemberInfo); var ma2 = Expression.MakeMemberAccess(me.Expression, field1.ColumnDescriptor.MemberInfo); var ee = Equal(mappingSchema, ma1, ma2); ex = ex == null ? ee : Expression.AndAlso(ex, ee); } var predicate = table.Association.GetPredicate(parentType, childType); if (predicate != null) { var body = predicate.GetBody(me.Expression, op); ex = ex == null ? body : Expression.AndAlso(ex, body); } if (ex == null) { throw new LinqToDBException($"Invalid association configuration for {table.Association.MemberInfo.DeclaringType}.{table.Association.MemberInfo.Name}"); } expr = Expression.Call(null, method, Expression.Constant(tbl), Expression.Lambda(ex, op)); } if (e == expression) { expr = Expression.Call( MemberHelper.MethodOf <IEnumerable <int> >(n => n.ToList()).GetGenericMethodDefinition().MakeGenericMethod(childType), expr); } return expr; } } } break; } } return e; })); }
static Expression GetMultipleQueryExpression(IBuildContext context, Expression expression, HashSet <ParameterExpression> parameters) { if (!Common.Configuration.Linq.AllowMultipleQuery) { throw new LinqException("Multiple queries are not allowed. Set the 'LinqToDB.Common.Configuration.Linq.AllowMultipleQuery' flag to 'true' to allow multiple queries."); } expression.Visit(e => { if (e.NodeType == ExpressionType.Lambda) { foreach (var p in ((LambdaExpression)e).Parameters) { parameters.Add(p); } } }); // Convert associations. // return(expression.Transform(e => { switch (e.NodeType) { case ExpressionType.MemberAccess: { var root = e.GetRootObject(); if (root != null && root.NodeType == ExpressionType.Parameter && !parameters.Contains((ParameterExpression)root)) { var res = context.IsExpression(e, 0, RequestFor.Association); if (res.Result) { var table = (TableBuilder.AssociatedTableContext)res.Context; if (table.IsList) { var ttype = typeof(Table <>).MakeGenericType(table.ObjectType); var tbl = Activator.CreateInstance(ttype); var method = e == expression ? MemberHelper.MethodOf <IEnumerable <bool> >(n => n.Where(a => a)).GetGenericMethodDefinition().MakeGenericMethod(table.ObjectType) : _whereMethodInfo.MakeGenericMethod(e.Type, table.ObjectType, ttype); var me = (MemberExpression)e; var op = Expression.Parameter(table.ObjectType, "t"); parameters.Add(op); Expression ex = null; for (var i = 0; i < table.Association.ThisKey.Length; i++) { var field1 = table.ParentAssociation.SqlTable.Fields[table.Association.ThisKey [i]]; var field2 = table.SqlTable.Fields[table.Association.OtherKey[i]]; var ee = Expression.Equal( Expression.MakeMemberAccess(op, field2.ColumnDescriptor.MemberInfo), Expression.MakeMemberAccess(me.Expression, field1.ColumnDescriptor.MemberInfo)); ex = ex == null ? ee : Expression.AndAlso(ex, ee); } var expr = Expression.Call(null, method, Expression.Constant(tbl), Expression.Lambda(ex, op)); if (e == expression) { expr = Expression.Call( MemberHelper.MethodOf <IEnumerable <int> >(n => n.ToList()).GetGenericMethodDefinition().MakeGenericMethod(table.ObjectType), expr); } return expr; } } } break; } } return e; })); }
public override void RecreateControls(bool contructor) { Controls.Clear(); m_scale = 0.7f; AddCaption(new System.Text.StringBuilder("Render debug"), Color.Yellow.ToVector4()); MyGuiControlLabel label = new MyGuiControlLabel(this, new Vector2(0.01f, -m_size.Value.Y / 2.0f + 0.07f), null, new System.Text.StringBuilder("(press ALT to share focus)"), Color.Yellow.ToVector4(), MyGuiConstants.LABEL_TEXT_SCALE * 0.7f, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP); Controls.Add(label); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f; AddLabel(new StringBuilder("LODs"), Color.Yellow.ToVector4(), 1.2f); var profile = MyRenderConstants.RenderQualityProfile; // Obfuscated MemberHelper can't access property, so store it to field //AddCheckBox(new StringBuilder("Show LOD screens"), null, MemberHelper.GetMember(() => MyRender.ShowLODScreens)); AddCheckBox(new StringBuilder("Show blended screens"), null, MemberHelper.GetMember(() => MyRender.ShowBlendedScreens)); AddCheckBox(new StringBuilder("Show LOD1 red overlay"), null, MemberHelper.GetMember(() => MyRender.ShowLod1WithRedOverlay)); AddCheckBox(new StringBuilder("Show green background"), null, MemberHelper.GetMember(() => MyRender.ShowGreenBackground)); AddCheckBox(new StringBuilder("Show environment screens"), null, MemberHelper.GetMember(() => MyRender.ShowEnvironmentScreens)); AddSlider(new StringBuilder("Lod near distance"), 0.0f, 20000.0f, profile, MemberHelper.GetMember(() => profile.LodTransitionDistanceNear)); AddSlider(new StringBuilder("Lod far distance"), 0.0f, 20000.0f, profile, MemberHelper.GetMember(() => profile.LodTransitionDistanceFar)); AddSlider(new StringBuilder("Lod background start"), 0.0f, 50000.0f, profile, MemberHelper.GetMember(() => profile.LodTransitionDistanceBackgroundStart)); AddSlider(new StringBuilder("Lod background end"), MyCamera.NEAR_PLANE_DISTANCE + 1, 50000.0f, profile, MemberHelper.GetMember(() => profile.LodTransitionDistanceBackgroundEnd)); m_currentPosition.Y += 0.01f; AddLabel(new StringBuilder("Textures"), Color.Yellow.ToVector4(), 1.2f); AddCheckBox(new StringBuilder("Check diffuse textures"), null, MemberHelper.GetMember(() => MyRender.CheckDiffuseTextures)); AddCheckBox(new StringBuilder("Check normals textures"), null, MemberHelper.GetMember(() => MyRender.CheckNormalTextures)); AddCheckBox(new StringBuilder("Debug diffuse texture"), null, MemberHelper.GetMember(() => MyRender.DebugDiffuseTexture)); AddCheckBox(new StringBuilder("Debug normal texture"), null, MemberHelper.GetMember(() => MyRender.DebugNormalTexture)); m_currentPosition.Y += 0.01f; AddLabel(new StringBuilder("Clip planes"), Color.Yellow.ToVector4(), 1.2f); AddSlider(new StringBuilder("Near clip"), 0.05f, 10.0f, null, MemberHelper.GetMember(() => MyCamera.NEAR_PLANE_DISTANCE)); AddSlider(new StringBuilder("Far clip"), 10000.0f, 100000.0f, null, MemberHelper.GetMember(() => MyCamera.FAR_PLANE_DISTANCE)); AddSlider(new StringBuilder("FOV"), MyCamera.FieldOfViewAngle, 1.00f, 90.0f, new MyGuiControlSlider.OnSliderChangeCallback(OnFovSlider)); }
public string SelectUserCountGrades(int gid) { return(MemberHelper.SelectUserCountGrades(gid).ToString()); }
protected override void OnConnectionTypeCreated(Type connectionType) { var typesNamespace = AssemblyName + ".Types."; _oracleBFile = connectionType.Assembly.GetType(typesNamespace + "OracleBFile", true); _oracleBinary = connectionType.Assembly.GetType(typesNamespace + "OracleBinary", true); _oracleBlob = connectionType.Assembly.GetType(typesNamespace + "OracleBlob", true); _oracleClob = connectionType.Assembly.GetType(typesNamespace + "OracleClob", true); _oracleDate = connectionType.Assembly.GetType(typesNamespace + "OracleDate", true); _oracleDecimal = connectionType.Assembly.GetType(typesNamespace + "OracleDecimal", true); _oracleIntervalDS = connectionType.Assembly.GetType(typesNamespace + "OracleIntervalDS", true); _oracleIntervalYM = connectionType.Assembly.GetType(typesNamespace + "OracleIntervalYM", true); _oracleRefCursor = connectionType.Assembly.GetType(typesNamespace + "OracleRefCursor", true); _oracleString = connectionType.Assembly.GetType(typesNamespace + "OracleString", true); _oracleTimeStamp = connectionType.Assembly.GetType(typesNamespace + "OracleTimeStamp", true); _oracleTimeStampLTZ = connectionType.Assembly.GetType(typesNamespace + "OracleTimeStampLTZ", true); _oracleTimeStampTZ = connectionType.Assembly.GetType(typesNamespace + "OracleTimeStampTZ", true); _oracleRef = connectionType.Assembly.GetType(typesNamespace + "OracleRef", false); _oracleXmlType = connectionType.Assembly.GetType(typesNamespace + "OracleXmlType", false); _oracleXmlStream = connectionType.Assembly.GetType(typesNamespace + "OracleXmlStream", false); SetProviderField(_oracleBFile, _oracleBFile, "GetOracleBFile"); SetProviderField(_oracleBinary, _oracleBinary, "GetOracleBinary"); SetProviderField(_oracleBlob, _oracleBlob, "GetOracleBlob"); SetProviderField(_oracleClob, _oracleClob, "GetOracleClob"); SetProviderField(_oracleDate, _oracleDate, "GetOracleDate"); SetProviderField(_oracleDecimal, _oracleDecimal, "GetOracleDecimal"); SetProviderField(_oracleIntervalDS, _oracleIntervalDS, "GetOracleIntervalDS"); SetProviderField(_oracleIntervalYM, _oracleIntervalYM, "GetOracleIntervalYM"); SetProviderField(_oracleString, _oracleString, "GetOracleString"); SetProviderField(_oracleTimeStamp, _oracleTimeStamp, "GetOracleTimeStamp"); SetProviderField(_oracleTimeStampLTZ, _oracleTimeStampLTZ, "GetOracleTimeStampLTZ"); SetProviderField(_oracleTimeStampTZ, _oracleTimeStampTZ, "GetOracleTimeStampTZ"); try { if (_oracleRef != null) { SetProviderField(_oracleRef, _oracleRef, "GetOracleRef"); } } catch { } try { if (_oracleXmlType != null) { SetProviderField(_oracleXmlType, _oracleXmlType, "GetOracleXmlType"); } } catch { } var dataReaderParameter = Expression.Parameter(DataReaderType, "r"); var indexParameter = Expression.Parameter(typeof(int), "i"); { // static DateTimeOffset GetOracleTimeStampTZ(OracleDataReader rd, int idx) // { // var tstz = rd.GetOracleTimeStampTZ(idx); // return new DateTimeOffset( // tstz.Year, tstz.Month, tstz.Day, // tstz.Hour, tstz.Minute, tstz.Second, (int)tstz.Millisecond, // TimeSpan.Parse(tstz.TimeZone.TrimStart('+'))); // } var tstz = Expression.Parameter(_oracleTimeStampTZ, "tstz"); ReaderExpressions[new ReaderInfo { ToType = typeof(DateTimeOffset), ProviderFieldType = _oracleTimeStampTZ }] = Expression.Lambda( Expression.Block( new[] { tstz }, new Expression[] { Expression.Assign(tstz, Expression.Call(dataReaderParameter, "GetOracleTimeStampTZ", null, indexParameter)), Expression.Call( MemberHelper.MethodOf(() => ToDateTimeOffset(null)), Expression.Convert(tstz, typeof(object)) ) }), dataReaderParameter, indexParameter); } { // static DateTimeOffset GetOracleTimeStampLTZ(OracleDataReader rd, int idx) // { // var tstz = rd.GetOracleTimeStampLTZ(idx).ToOracleTimeStampTZ(); // return new DateTimeOffset( // tstz.Year, tstz.Month, tstz.Day, // tstz.Hour, tstz.Minute, tstz.Second, (int)tstz.Millisecond, // TimeSpan.Parse(tstz.TimeZone.TrimStart('+'))); // } var tstz = Expression.Parameter(_oracleTimeStampTZ, "tstz"); ReaderExpressions[new ReaderInfo { ToType = typeof(DateTimeOffset), ProviderFieldType = _oracleTimeStampLTZ }] = Expression.Lambda( Expression.Block( new[] { tstz }, new Expression[] { Expression.Assign( tstz, Expression.Call( Expression.Call(dataReaderParameter, "GetOracleTimeStampLTZ", null, indexParameter), "ToOracleTimeStampTZ", null, null)), Expression.Call( MemberHelper.MethodOf(() => ToDateTimeOffset(null)), Expression.Convert(tstz, typeof(object)) ) }), dataReaderParameter, indexParameter); } { // ((OracleCommand)dataConnection.Command).BindByName = true; var p = Expression.Parameter(typeof(DataConnection), "dataConnection"); _setBindByName = Expression.Lambda <Action <DataConnection> >( Expression.Assign( Expression.PropertyOrField( Expression.Convert( Expression.PropertyOrField(p, "Command"), connectionType.Assembly.GetType(AssemblyName + ".Client.OracleCommand", true)), "BindByName"), Expression.Constant(true)), p ).Compile(); } { // value = new OracleTimeStampTZ(dto.Year, dto.Month, dto.Day, dto.Hour, dto.Minute, dto.Second, dto.Millisecond, zone); var dto = Expression.Parameter(typeof(DateTimeOffset), "dto"); var zone = Expression.Parameter(typeof(string), "zone"); _createOracleTimeStampTZ = Expression.Lambda <Func <DateTimeOffset, string, object> >( Expression.Convert( Expression.New( _oracleTimeStampTZ.GetConstructor(new[] { typeof(int), typeof(int), typeof(int), typeof(int), typeof(int), typeof(int), typeof(int), typeof(string) }), Expression.PropertyOrField(dto, "Year"), Expression.PropertyOrField(dto, "Month"), Expression.PropertyOrField(dto, "Day"), Expression.PropertyOrField(dto, "Hour"), Expression.PropertyOrField(dto, "Minute"), Expression.PropertyOrField(dto, "Second"), Expression.PropertyOrField(dto, "Millisecond"), zone), typeof(object)), dto, zone ).Compile(); } _setSingle = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "BinaryFloat"); _setDouble = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "BinaryDouble"); _setText = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Clob"); _setNText = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "NClob"); _setImage = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Blob"); _setBinary = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Blob"); _setVarBinary = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Blob"); _setDate = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Date"); _setSmallDateTime = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Date"); _setDateTime2 = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "TimeStamp"); _setDateTimeOffset = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "TimeStampTZ"); _setGuid = GetSetParameter(connectionType, "OracleParameter", "OracleDbType", "OracleDbType", "Raw"); MappingSchema.AddScalarType(_oracleBFile, GetNullValue(_oracleBFile), true, DataType.VarChar); // ? MappingSchema.AddScalarType(_oracleBinary, GetNullValue(_oracleBinary), true, DataType.VarBinary); MappingSchema.AddScalarType(_oracleBlob, GetNullValue(_oracleBlob), true, DataType.Blob); // ? MappingSchema.AddScalarType(_oracleClob, GetNullValue(_oracleClob), true, DataType.NText); MappingSchema.AddScalarType(_oracleDate, GetNullValue(_oracleDate), true, DataType.DateTime); MappingSchema.AddScalarType(_oracleDecimal, GetNullValue(_oracleDecimal), true, DataType.Decimal); MappingSchema.AddScalarType(_oracleIntervalDS, GetNullValue(_oracleIntervalDS), true, DataType.Time); // ? MappingSchema.AddScalarType(_oracleIntervalYM, GetNullValue(_oracleIntervalYM), true, DataType.Date); // ? MappingSchema.AddScalarType(_oracleRefCursor, GetNullValue(_oracleRefCursor), true, DataType.Binary); // ? MappingSchema.AddScalarType(_oracleString, GetNullValue(_oracleString), true, DataType.NVarChar); MappingSchema.AddScalarType(_oracleTimeStamp, GetNullValue(_oracleTimeStamp), true, DataType.DateTime2); MappingSchema.AddScalarType(_oracleTimeStampLTZ, GetNullValue(_oracleTimeStampLTZ), true, DataType.DateTimeOffset); MappingSchema.AddScalarType(_oracleTimeStampTZ, GetNullValue(_oracleTimeStampTZ), true, DataType.DateTimeOffset); if (_oracleRef != null) { MappingSchema.AddScalarType(_oracleRef, GetNullValue(_oracleRef), true, DataType.Binary); // ? } if (_oracleXmlType != null) { MappingSchema.AddScalarType(_oracleXmlType, GetNullValue(_oracleXmlType), true, DataType.Xml); } if (_oracleXmlStream != null) { MappingSchema.AddScalarType(_oracleXmlStream, GetNullValue(_oracleXmlStream), true, DataType.Xml); // ? } }
public static bool IsInterfaceImplementation(this IMethodDefinition method) { return(MemberHelper.GetImplicitlyImplementedInterfaceMethods(method).Any() || MemberHelper.GetExplicitlyOverriddenMethods(method).Any()); }
public void WeixinLoginAction(SiteSettings site, bool isMustLogin) { this.GetOpenID(site); string getCurrentWXOpenId = Globals.GetCurrentWXOpenId; string text = Globals.RequestQueryStr("code"); if (text.Contains(",")) { Globals.Debuglog("code问题获取值为:" + text, "_DebugCodeErr.txt"); this.Page.Response.Redirect("/default.aspx"); } if (isMustLogin) { if (string.IsNullOrEmpty(text)) { Globals.Debuglog("进入1,必须登录的页面,并且无code请求" + this.Page.Request.Url.ToString(), "_debugtest.txt"); MemberInfo openIdMember = MemberProcessor.GetOpenIdMember(getCurrentWXOpenId, "wx"); if (openIdMember != null && openIdMember.Status == Convert.ToInt32(UserStatus.DEL)) { this.Page.Response.Redirect(Globals.ApplicationPath + "/logout.aspx"); } if (openIdMember.IsAuthorizeWeiXin == 0) { string text2 = HttpContext.Current.Request.Url.ToString().Replace(":" + HttpContext.Current.Request.Url.Port, ""); text2 = Regex.Replace(text2, "&code=(.*)&state=STATE", ""); Globals.Debuglog("进入2,检测为匿名用户,并请求授权登录,去获得code参数" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string text3 = "snsapi_userinfo"; string url = string.Concat(new string[] { "https://open.weixin.qq.com/connect/oauth2/authorize?appid=", site.WeixinAppId, "&redirect_uri=", Globals.UrlEncode(text2), "&response_type=code&scope=", text3, "&state=STATE#wechat_redirect" }); this.Page.Response.Redirect(url); return; } this.setLogin(openIdMember.UserId); return; } else if (Globals.GetCurrentMemberUserId() == 0) { Globals.Debuglog("进入4,code请求地址,获取用户基本信息" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string responseResult = this.GetResponseResult(string.Concat(new string[] { "https://api.weixin.qq.com/sns/oauth2/access_token?appid=", site.WeixinAppId, "&secret=", site.WeixinAppSecret, "&code=", text, "&grant_type=authorization_code" })); Globals.Debuglog(responseResult, "_DebuglogLogining.txt"); if (responseResult.Contains("access_token")) { Globals.Debuglog("进入5,准备获取到基本信息" + this.Page.Request.Url.ToString(), "_debugtest.txt"); JObject jObject = JsonConvert.DeserializeObject(responseResult) as JObject; string responseResult2 = this.GetResponseResult(string.Concat(new string[] { "https://api.weixin.qq.com/sns/userinfo?access_token=", jObject["access_token"].ToString(), "&openid=", jObject["openid"].ToString(), "&lang=zh_CN" })); JObject jObject2 = JsonConvert.DeserializeObject(responseResult2) as JObject; if (responseResult2.Contains("nickname")) { Globals.Debuglog("进入16,获取到基本信息" + this.Page.Request.Url.ToString(), "_debugtest.txt"); MemberInfo openIdMember2 = MemberProcessor.GetOpenIdMember(getCurrentWXOpenId, "wx"); if (openIdMember2 == null) { Globals.Debuglog("进入16,检测用户信息为空,清空Cookie并跳转到首页" + this.Page.Request.Url.ToString(), "_debugtest.txt"); Globals.ClearUserCookie(); this.Page.Response.Redirect(Globals.ApplicationPath + "/Default.aspx"); } MemberHelper.SetUserHeadAndUserName(getCurrentWXOpenId, jObject2["headimgurl"].ToString(), Globals.UrlDecode(jObject2["nickname"].ToString())); this.setLogin(openIdMember2.UserId); return; } } else { string text4 = HttpContext.Current.Request.Url.ToString().Replace(":" + HttpContext.Current.Request.Url.Port, ""); text4 = Regex.Replace(text4, "&code=(.*)&state=STATE", ""); Globals.Debuglog("获取不到access_token,说明需要授权登录,去获得code参数" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string text5 = "snsapi_userinfo"; string url2 = string.Concat(new string[] { "https://open.weixin.qq.com/connect/oauth2/authorize?appid=", site.WeixinAppId, "&redirect_uri=", Globals.UrlEncode(text4), "&response_type=code&scope=", text5, "&state=STATE#wechat_redirect" }); this.Page.Response.Redirect(url2); } } } }
public Expression GetGrouping(GroupByContext context) { if (Configuration.Linq.GuardGrouping) { if (context._element.Lambda.Parameters.Count == 1 && context._element.Body == context._element.Lambda.Parameters[0]) { var ex = new LinqToDBException( "You should explicitly specify selected fields for server-side GroupBy() call or add AsEnumerable() call before GroupBy() to perform client-side grouping.\n" + "Set Configuration.Linq.GuardGrouping = false to disable this check." ) { HelpLink = "https://github.com/linq2db/linq2db/issues/365" }; throw ex; } } var parameters = context.Builder.CurrentSqlParameters .Select((p, i) => new { p, i }) .ToDictionary(_ => _.p.Expression, _ => _.i); var paramArray = Expression.Parameter(typeof(object[]), "ps"); var groupExpression = context._sequenceExpr.Transform(e => { int idx; if (parameters.TryGetValue(e, out idx)) { return (Expression.Convert( Expression.ArrayIndex(paramArray, Expression.Constant(idx)), e.Type)); } return(e); }); var keyParam = Expression.Parameter(typeof(TKey), "key"); // ReSharper disable AssignNullToNotNullAttribute var expr = Expression.Call( null, MemberHelper.MethodOf(() => Queryable.Where(null, (Expression <Func <TSource, bool> >)null)), groupExpression, Expression.Lambda <Func <TSource, bool> >( ExpressionBuilder.Equal(context.Builder.MappingSchema, context._key.Lambda.Body, keyParam), new[] { context._key.Lambda.Parameters[0] })); expr = Expression.Call( null, MemberHelper.MethodOf(() => Queryable.Select(null, (Expression <Func <TSource, TElement> >)null)), expr, context._element.Lambda); // ReSharper restore AssignNullToNotNullAttribute var lambda = Expression.Lambda <Func <IDataContext, TKey, object[], IQueryable <TElement> > >( Expression.Convert(expr, typeof(IQueryable <TElement>)), Expression.Parameter(typeof(IDataContext), "ctx"), keyParam, paramArray); var itemReader = CompiledQuery.Compile(lambda); var keyExpr = context._key.BuildExpression(null, 0, false); var dataReaderLocal = context.Builder.DataReaderLocal; if (!Configuration.AvoidSpecificDataProviderAPI && keyExpr.Find(e => e == dataReaderLocal) != null) { keyExpr = Expression.Block( new[] { context.Builder.DataReaderLocal }, new[] { Expression.Assign(dataReaderLocal, Expression.Convert(ExpressionBuilder.DataReaderParam, context.Builder.DataContext.DataReaderType)), keyExpr }); } var keyReader = Expression.Lambda <Func <IQueryRunner, IDataContext, IDataReader, Expression, object[], TKey> >( keyExpr, new [] { ExpressionBuilder.QueryRunnerParam, ExpressionBuilder.DataContextParam, ExpressionBuilder.DataReaderParam, ExpressionBuilder.ExpressionParam, ExpressionBuilder.ParametersParam }); return(Expression.Call( null, MemberHelper.MethodOf(() => GetGrouping(null, null, null, null, null, null, null, null)), new Expression[] { ExpressionBuilder.QueryRunnerParam, ExpressionBuilder.DataContextParam, ExpressionBuilder.DataReaderParam, Expression.Constant(context.Builder.CurrentSqlParameters), ExpressionBuilder.ExpressionParam, ExpressionBuilder.ParametersParam, Expression.Constant(keyReader.Compile()), Expression.Constant(itemReader) })); }
public void GetOpenID(SiteSettings site) { string text = this.Page.Request.QueryString["code"]; string getCurrentWXOpenId = Globals.GetCurrentWXOpenId; Globals.Debuglog("进入9,获取OpenID的Cookie" + this.Page.Request.Url.ToString(), "_debugtest.txt"); if (!string.IsNullOrEmpty(getCurrentWXOpenId)) { return; } if (!string.IsNullOrEmpty(text)) { Globals.Debuglog("无openid Cookie,并请求access_token" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string responseResult = this.GetResponseResult(string.Concat(new string[] { "https://api.weixin.qq.com/sns/oauth2/access_token?appid=", site.WeixinAppId, "&secret=", site.WeixinAppSecret, "&code=", text, "&grant_type=authorization_code" })); if (responseResult.Contains("access_token")) { Globals.Debuglog("获取到access_token" + this.Page.Request.Url.ToString(), "_debugtest.txt"); JObject jObject = JsonConvert.DeserializeObject(responseResult) as JObject; string text2 = jObject["openid"].ToString(); Globals.GetCurrentWXOpenId = text2; if (!this.HasLogin(text2, "wx")) { Globals.Debuglog("开始注册匿名会员" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string generateId = Globals.GetGenerateId(); MemberProcessor.CreateMember(new MemberInfo { GradeId = MemberProcessor.GetDefaultMemberGrade(), UserName = Globals.UrlDecode("新用户"), OpenId = text2, CreateDate = DateTime.Now, SessionId = generateId, SessionEndTime = DateTime.Now.AddYears(10), UserHead = Globals.GetWebUrlStart() + "/templates/common/images/user.png", ReferralUserId = Globals.GetCurrentDistributorId(), Password = HiCryptographer.Md5Encrypt("888888") }); Globals.Debuglog("进入5,准备获取到基本信息" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string responseResult2 = this.GetResponseResult(string.Concat(new string[] { "https://api.weixin.qq.com/sns/userinfo?access_token=", jObject["access_token"].ToString(), "&openid=", jObject["openid"].ToString(), "&lang=zh_CN" })); JObject jObject2 = JsonConvert.DeserializeObject(responseResult2) as JObject; if (responseResult2.Contains("nickname")) { Globals.Debuglog("进入116,获取到基本信息" + this.Page.Request.Url.ToString(), "_debugtest.txt"); MemberInfo openIdMember = MemberProcessor.GetOpenIdMember(text2, "wx"); if (openIdMember == null) { Globals.Debuglog("进入16,检测用户信息为空,清空Cookie并跳转到首页" + this.Page.Request.Url.ToString(), "_debugtest.txt"); Globals.ClearUserCookie(); this.Page.Response.Redirect("/Default.aspx"); } MemberHelper.SetUserHeadAndUserName(text2, jObject2["headimgurl"].ToString(), Globals.UrlDecode(jObject2["nickname"].ToString())); this.setLogin(openIdMember.UserId); return; } } } } else { Globals.Debuglog("进入11,请求静默登录" + this.Page.Request.Url.ToString(), "_debugtest.txt"); string url = string.Concat(new string[] { "https://open.weixin.qq.com/connect/oauth2/authorize?appid=", site.WeixinAppId, "&redirect_uri=", Globals.UrlEncode(HttpContext.Current.Request.Url.ToString().Replace(":" + HttpContext.Current.Request.Url.Port, "")), "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect" }); this.Page.Response.Redirect(url); } }
public Expression GetSubquery( ExpressionBuilder builder, AssociatedTableContext tableContext, ParameterExpression parentObject) { var lContext = Expression.Parameter(typeof(IDataContext), "ctx"); var lParent = Expression.Parameter(typeof(object), "parentObject"); var tableExpression = builder.DataContext.GetTable <T>(); var loadWith = tableContext.GetLoadWith(); if (loadWith != null) { foreach (var members in loadWith) { var pLoadWith = Expression.Parameter(typeof(T), "t"); var isPrevList = false; Expression obj = pLoadWith; foreach (var member in members) { if (isPrevList) { obj = new GetItemExpression(obj); } obj = Expression.MakeMemberAccess(obj, member); isPrevList = typeof(IEnumerable).IsSameOrParentOf(obj.Type); } tableExpression = tableExpression.LoadWith(Expression.Lambda <Func <T, object> >(obj, pLoadWith)); } } Expression expression; { // Where var pWhere = Expression.Parameter(typeof(T), "t"); Expression expr = null; for (var i = 0; i < tableContext.Association.ThisKey.Length; i++) { var thisProp = Expression.PropertyOrField(Expression.Convert(lParent, parentObject.Type), tableContext.Association.ThisKey[i]); var otherProp = Expression.PropertyOrField(pWhere, tableContext.Association.OtherKey[i]); var ex = ExpressionBuilder.Equal(tableContext.Builder.MappingSchema, otherProp, thisProp); expr = expr == null ? ex : Expression.AndAlso(expr, ex); } expression = tableExpression.Where(Expression.Lambda <Func <T, bool> >(expr, pWhere)).Expression; } var lambda = Expression.Lambda <Func <IDataContext, object, IEnumerable <T> > >(expression, lContext, lParent); var queryReader = CompiledQuery.Compile(lambda); expression = Expression.Call( null, MemberHelper.MethodOf(() => ExecuteSubQuery(null, null, null)), ExpressionBuilder.QueryRunnerParam, Expression.Convert(parentObject, typeof(object)), Expression.Constant(queryReader)); var memberType = tableContext.Association.MemberInfo.GetMemberType(); if (memberType == typeof(T[])) { return(Expression.Call(null, MemberHelper.MethodOf(() => Enumerable.ToArray <T>(null)), expression)); } if (memberType.IsSameOrParentOf(typeof(List <T>))) { return(Expression.Call(null, MemberHelper.MethodOf(() => Enumerable.ToList <T>(null)), expression)); } var ctor = memberType.GetConstructorEx(new[] { typeof(IEnumerable <T>) }); if (ctor != null) { return(Expression.New(ctor, expression)); } var l = builder.MappingSchema.GetConvertExpression(expression.Type, memberType, false, false); if (l != null) { return(l.GetBody(expression)); } throw new LinqToDBException($"Expected constructor '{memberType.Name}(IEnumerable<{tableContext.ObjectType}>)'"); }
private void btnSubmitMemberRanks_Click(object sender, EventArgs e) { string text = this.txtRankName.Text; string str2 = this.txt_tradeVol.Text; string str3 = this.txt_tradeTimes.Text; string str4 = this.txtValue.Text; string text1 = this.txtRankDesc.Text; if (string.IsNullOrEmpty(text)) { this.ShowMsg("会员等级名称不能为空!", false); } else if (text.Length > 20) { this.ShowMsg("会员等级名称最长20个字符", false); } else { double num = 0.0; if (!string.IsNullOrEmpty(str2)) { double num2 = 0.0; if (!this.bDouble(str2, ref num2)) { this.ShowMsg("请输入正确的交易额!", false); return; } num = num2; } int num3 = 0; if (!string.IsNullOrEmpty(str3)) { int num4 = 0; if (!this.bInt(str3, ref num4)) { this.ShowMsg("请输入正确的交易次数!", false); return; } num3 = num4; } int i = 0; if (string.IsNullOrEmpty(str4)) { this.ShowMsg("会员折扣不能为空!", false); } else if (!this.bInt(str4, ref i)) { this.ShowMsg("会员折扣必须是不大于100的正整数!", false); } else if (i > 100) { this.ShowMsg("会员折扣必须是不大于100的正整数!", false); } else { MemberGradeInfo memberGrade; if (_bAdd) { memberGrade = new MemberGradeInfo(); } else { memberGrade = MemberHelper.GetMemberGrade(_gradeid); } memberGrade.Name = text; memberGrade.Description = this.txtRankDesc.Text.Trim(); memberGrade.IsDefault = this.cbIsDefault.Checked; memberGrade.IsDaifa = this.cbIsDaifa.Checked; memberGrade.IsPifa = this.cbIsPifa.Checked; memberGrade.TranVol = new double?(num); memberGrade.TranTimes = new int?(num3); memberGrade.Discount = i; if (_bAdd && MemberHelper.IsExist(text)) { this.ShowMsg("该等级名称已存在,请修改等级名称", false); } else if (MemberHelper.HasSameMemberGrade(memberGrade)) { this.ShowMsg("已经存在相同交易额或交易次数的等级,每个会员等级的交易额或交易次数不能相同", false); } else { try { if (_bAdd) { if (MemberHelper.CreateMemberGrade(memberGrade)) { this.ShowMsgAndReUrl("新增会员等级成功", true, "/Admin/Member/MemberGrades.aspx"); } else { this.ShowMsg("新增会员等级失败", false); } } else if (MemberHelper.UpdateMemberGrade(memberGrade)) { this.ShowMsgAndReUrl("修改会员等级成功", true, "/Admin/Member/MemberGrades.aspx"); } else { this.ShowMsg("修改会员等级失败", false); } } catch (Exception exception) { this.ShowMsg("操作失败,原因是:" + exception.Message, false); } } } } }
private static Expression GetParseEnum(Type from, Type to, Expression p) { if (from == typeof(string) && to.IsEnumEx()) { #if SL4 return (Expression.Call( MemberHelper.MethodOf(() => Enum.Parse(to, "", true)), Expression.Constant(to), p, Expression.Constant(true))); #else var values = Enum.GetValues(to); var names = Enum.GetNames(to); var dic = new Dictionary <string, object>(); for (var i = 0; i < values.Length; i++) { var val = values.GetValue(i); var lv = (long)Convert.ChangeType(val, typeof(long) #if !NETFX_CORE , Thread.CurrentThread.CurrentCulture #endif ); dic[lv.ToString()] = val; if (lv > 0) { dic["+" + lv] = val; } } for (var i = 0; i < values.Length; i++) { dic[names[i].ToLowerInvariant()] = values.GetValue(i); } for (var i = 0; i < values.Length; i++) { dic[names[i]] = values.GetValue(i); } var cases = from v in dic group v.Key by v.Value into g select Expression.SwitchCase(Expression.Constant(g.Key), g.Select(Expression.Constant)); var expr = Expression.Switch( p, Expression.Convert( Expression.Call(_defaultConverter, Expression.Convert(p, typeof(string)), Expression.Constant(to)), to), cases.ToArray()); return(expr); #endif } return(null); }
public override void RecreateControls(bool constructor) { base.RecreateControls(constructor); m_scale = .9f; AddCaption("Render Global FX", Color.Yellow.ToVector4()); AddShareFocusHint(); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f * m_scale; bool rendererIsDirectX11 = MySandboxGame.Config.GraphicsRenderer.ToString().Equals("DirectX 11"); if (!rendererIsDirectX11) { AddLabel("FXAA (DX9)", Color.Yellow.ToVector4(), 1.2f); AddCheckBox("Enable FXAA", null, MemberHelper.GetMember(() => MyPostProcessAntiAlias.Enabled)); } m_currentPosition.Y += 0.01f * m_scale; AddLabel("Fog", Color.Yellow.ToVector4(), 1.2f); var fogObj = MySector.FogProperties; if (MySector.MainCamera != null) { if (!rendererIsDirectX11) { AddCheckBox("Enable fog", MySector.FogProperties, MemberHelper.GetMember(() => MySector.FogProperties.EnableFog)); AddSlider("Fog near distance", 1.0f, MySector.MainCamera.FarPlaneDistance, fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogNear)); AddSlider("Fog far distance", 1.0f, MySector.MainCamera.FarPlaneDistance, fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogFar)); } AddSlider("Fog multiplier", 0.0f, 0.5f, fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogMultiplier)); AddSlider("Fog backlight multiplier", 0.0f, 5.0f, fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogBacklightMultiplier)); if (rendererIsDirectX11) { AddSlider("Fog density", 0.0f, 0.2f, fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogDensity)); } AddColor(new StringBuilder("Fog color"), fogObj, MemberHelper.GetMember(() => MySector.FogProperties.FogColor)); } }
public override void RecreateControls(bool contructor) { Controls.Clear(); m_scale = 0.7f; AddCaption(new System.Text.StringBuilder("Render HDR"), Color.Yellow.ToVector4()); MyGuiControlLabel label = new MyGuiControlLabel(this, new Vector2(0.01f, -m_size.Value.Y / 2.0f + 0.07f), null, new System.Text.StringBuilder("(press ALT to share focus)"), Color.Yellow.ToVector4(), MyGuiConstants.LABEL_TEXT_SCALE * 0.7f, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP); Controls.Add(label); m_currentPosition = -m_size.Value / 2.0f + new Vector2(0.02f, 0.10f); m_currentPosition.Y += 0.01f * m_scale; MyPostProcessHDR hdr = MyRender.GetPostProcess(MyPostProcessEnum.HDR) as MyPostProcessHDR; if (hdr != null) { AddLabel(new StringBuilder("HDR"), Color.Yellow.ToVector4(), 1.2f); AddCheckBox(new StringBuilder("Enable HDR and bloom"), null, MemberHelper.GetMember(() => MyPostProcessHDR.DebugHDRChecked)); m_currentPosition.Y += 0.01f * m_scale; AddSlider(new StringBuilder("Exposure"), 0, 6.0f, hdr, MemberHelper.GetMember(() => hdr.Exposure)); AddSlider(new StringBuilder("Bloom Threshold"), 0, 4.0f, hdr, MemberHelper.GetMember(() => hdr.Threshold)); AddSlider(new StringBuilder("Bloom Intensity"), 0, 4.0f, hdr, MemberHelper.GetMember(() => hdr.BloomIntensity)); AddSlider(new StringBuilder("Bloom Intensity for Background"), 0, 1.5f, hdr, MemberHelper.GetMember(() => hdr.BloomIntensityBackground)); AddSlider(new StringBuilder("Vertical Blur Amount"), 1.0f, 8.0f, hdr, MemberHelper.GetMember(() => hdr.VerticalBlurAmount)); AddSlider(new StringBuilder("Horizontal Blur Amount"), 1.0f, 8.0f, hdr, MemberHelper.GetMember(() => hdr.HorizontalBlurAmount)); AddSlider(new StringBuilder("Number of blur passes (integer)"), 1.0f, 8.0f, hdr, MemberHelper.GetMember(() => hdr.NumberOfBlurPasses)); m_currentPosition.Y += 0.01f * m_scale; } }
static DataParameter[] GetDataParameters(DataConnection dataConnection, object parameters) { if (parameters == null) { return(null); } if (parameters is DataParameter[]) { return((DataParameter[])parameters); } if (parameters is DataParameter) { return new[] { (DataParameter)parameters } } ; Func <object, DataParameter[]> func; var type = parameters.GetType(); var key = new ParamKey(type, dataConnection.ID); if (!_parameterReaders.TryGetValue(key, out func)) { var td = dataConnection.MappingSchema.GetEntityDescriptor(type); var p = Expression.Parameter(typeof(object), "p"); var obj = Expression.Parameter(parameters.GetType(), "obj"); var expr = Expression.Lambda <Func <object, DataParameter[]> >( Expression.Block( new[] { obj }, new Expression[] { Expression.Assign(obj, Expression.Convert(p, type)), Expression.NewArrayInit( typeof(DataParameter), td.Columns.Select(m => { if (m.MemberType == typeof(DataParameter)) { var pobj = Expression.Parameter(typeof(DataParameter)); return(Expression.Block( new[] { pobj }, new Expression[] { Expression.Assign(pobj, Expression.PropertyOrField(obj, m.MemberName)), Expression.MemberInit( Expression.New(typeof(DataParameter)), Expression.Bind( _dataParameterName, Expression.Coalesce( Expression.MakeMemberAccess(pobj, _dataParameterName), Expression.Constant(m.ColumnName))), Expression.Bind( _dataParameterDataType, Expression.MakeMemberAccess(pobj, _dataParameterDataType)), Expression.Bind( _dataParameterValue, Expression.Convert( Expression.MakeMemberAccess(pobj, _dataParameterValue), typeof(object)))) })); } var memberType = m.MemberType.ToNullableUnderlying(); var valueGetter = Expression.PropertyOrField(obj, m.MemberName) as Expression; var mapper = dataConnection.MappingSchema.GetConvertExpression(memberType, typeof(DataParameter), createDefault: false); if (mapper != null) { return(Expression.Call( MemberHelper.MethodOf(() => PrepareDataParameter(null, null)), mapper.GetBody(valueGetter), Expression.Constant(m.ColumnName))); } if (memberType.IsEnumEx()) { var mapType = ConvertBuilder.GetDefaultMappingFromEnumType(dataConnection.MappingSchema, memberType); var convExpr = dataConnection.MappingSchema.GetConvertExpression(m.MemberType, mapType); memberType = mapType; valueGetter = convExpr.GetBody(valueGetter); } return((Expression)Expression.MemberInit( Expression.New(typeof(DataParameter)), Expression.Bind( _dataParameterName, Expression.Constant(m.ColumnName)), Expression.Bind( _dataParameterDataType, Expression.Constant(dataConnection.MappingSchema.GetDataType(memberType).DataType)), Expression.Bind( _dataParameterValue, Expression.Convert(valueGetter, typeof(object))))); })) } ), p); _parameterReaders[key] = func = expr.Compile(); } return(func(parameters)); }
public override void TraverseChildren(IFieldReference fieldReference) { this.sourceEmitterOutput.Write(MemberHelper.GetMemberSignature(fieldReference, NameFormattingOptions.None)); }
public static bool IsExplicitInterfaceMethod(this IMethodDefinition method) { return(MemberHelper.GetExplicitlyOverriddenMethods(method).Any()); }