public ModelState AddNew(DynamicModel model, bool limit) { var r = thisCache?.CheckState(model) ?? ModelState.Unavailable; if (r < 0) { return(r); } if (r == ModelState.Overload) { if (limit) { return(r); } } if (r == ModelState.AddNew) { var arg = new DynamicModelEventArgs { Model = model }; OnTableCreated?.Invoke(this, arg); if (arg.Canceled) { return(ModelState.Canceled); } } pending.Add(model); return(r); }
void describe_dynamic_model_to_json() { before = () => { objectToConvert = new DynamicModel(new { Id = 15, String = "hello", Char = 'a', DateTime = DateTime.Today, Double = (double)100, Guid = Guid.Empty, Decimal = (decimal)15, }); }; act = () => jsonString = DynamicToJson.Convert(objectToConvert); it["converts dynamic model"] = () => { string expected = @"{{ ""id"": {0}, ""string"": ""{1}"", ""char"": ""{2}"", ""dateTime"": ""{3}"", ""double"": {4}, ""guid"": ""{5}"", ""decimal"": {6} }}" .With(15, "hello", 'a', DateTime.Today, (double)100, Guid.Empty, (decimal)15); jsonString.should_be(expected); }; }
/// <summary> /// 调用动态创建的属性 /// </summary> /// <param name="fieldName"></param> /// <param name="value"></param> public void GetMember(string fieldName, Object value) { dynamic dynamicModel = new DynamicModel(); dynamicModel.PropertyName = fieldName; dynamicModel.Property = value; }
public ActionResult Sales(int year = 2011) { var sales = DynamicModel.Open("AppConnection").Query("exec Reports_AnnualSales @0", year); return(View(sales)); //return CSV(sales, "Vidpub_Annual_" + year + ".csv"); }
public async Task <IActionResult> Edit(string UserName, string Email) { User user = new User { UserName = UserName, Password = "******", Email = Email, Role = Role.管理员, }; await userService.Save(user); DynamicModel dModel = new DynamicModel(); dModel.CreateDate = user.CreatedDate; dModel.Title = user.UserName; dModel.Url = "/User/Show" + user.Id; dModel.Id = user.Id; ///将更新发到全部的客户端 这里用到了DI IConnectionManager conn = HttpContext.RequestServices.GetService <ConnectionManager>(); IHubContext context = conn.GetHubContext <SMHub>(); context.Clients.All.Send("user", dModel); return(View()); }
/// <summary> /// 从json字符串加载数据 /// </summary> /// <param name="json"></param> /// <returns></returns> public DynamicModel CreateByJson(string json) { DynamicModel model; using var doc = JsonDocument.Parse(json); switch (doc.RootElement.ValueKind) { case JsonValueKind.Array: model = new DynamicModel(FieldType.Array) { FdName = "_data" }; CreateByJson(doc.RootElement.EnumerateArray(), model); break; case JsonValueKind.Object: model = new DynamicModel(FieldType.Object) { FdName = "_data" }; CreateByJson(doc.RootElement.EnumerateObject(), model); break; default: throw new Exception("暂不支持除 array object 类型以外的类型"); } return(model); }
/// <summary> /// 减法运算 /// </summary> /// <param name="code"></param> /// <param name="args"></param> /// <returns></returns> public string Filter(object code, object[] args) { _ = args ?? throw new ArgumentNullException(nameof(args)); _ = args.Length != 2 ? throw new ArgumentException(nameof(args)) : string.Empty; string oper = args[0].ToString(); decimal num = code switch { object msg when msg is DynamicModel obj => Convert.ToDecimal(obj.FdValue), object msg when msg is int obj => obj, object msg when msg is decimal obj => obj, _ => throw new Exception($"{code}在调用运算过滤器时不是有效类型"), }; decimal parame = args[1] switch { object msg when msg is DynamicModel obj => Convert.ToDecimal(obj.FdValue), object msg when msg is int obj => obj, object msg when msg is decimal obj => obj, _ => throw new Exception($"{args[1]}在调用运算过滤器时不是有效类型"), }; return(oper switch { "+" => (num + parame).ToString(), "-" => (num - parame).ToString(), "*" => (num * parame).ToString(), "/" => (num / parame).ToString(), _ => code?.ToString() ?? string.Empty, });
/// <summary> /// Creates the specified value. /// </summary> /// <param name="value">The value.</param> /// <param name="providerName">(Optional) name of the provider.</param> /// <returns> /// A TDynamicModel. /// </returns> public virtual TDynamicModel Create(TDynamicModel value, string providerName = null) { using (new ElevatedModeRegion(GetManager(providerName))) { try { //CONVERT CURRENT MODEL TO SITEFINITY MODEL var sfContent = value.ToSitefinityModel(); //HANDLE PARENT IF APPLICABLE DynamicModel parent = null; if (value is IHierarchy) { parent = (value as IHierarchy).Parent; } //PUBLISH AND PERSIST TO SITEFINITY STORAGE if (GetManager(providerName).PublishAndSave(sfContent, parent)) { //UPDATE ANY GENERATED PROPERTIES value.Id = sfContent.Id; //RETURN ITEM return(value); } return(null); } catch (Exception) { //TODO: LOG ERROR return(null); } } }
public string DynamicModel() { dynamic dynamicModel = new DynamicModel(); List <string> myList = new List <string>(); myList.Add("Name"); myList.Add("Age"); myList.Add("Hobby"); List <string> myValueList = new List <string>(); myValueList.Add("Mary"); myValueList.Add("18"); myValueList.Add("Dance"); for (int i = 0; i < myList.Count; i++) { string myAttr = myList[i]; dynamicModel.PropertyName = myAttr; dynamicModel.Property = myValueList[i]; } string str = dynamicModel.Name; return(dynamicModel.toValue); }
private IEnumerable <dynamic> Execute(Tuple <string, object[]> arguments) { var dynamicModel = new DynamicModel(_connectionString); var results = dynamicModel.Query(arguments.Item1, arguments.Item2); return(results); }
public PagedRecordsViewModel GetRecords(Entity entity, int page, int take, IList <IEntityFilter> filters, string searchQuery, string order, string orderDirection) { var skip = (page - 1) * take; var search = new EntitySearch { Query = searchQuery, Properties = entity.SearchProperties }; order = order.IsNullOrEmpty() ? entity.Key.ColumnName : order; orderDirection = orderDirection.IsNullOrEmpty() ? "ASC" : orderDirection.ToUpper(); var orderBy = order + " " + orderDirection; var columns = GetColumns(entity); var where = ConvertFiltersToSQL(filters, search); var table = new DynamicModel(AdminInitialise.ConnectionString, tableName: entity.TableName, primaryKeyField: entity.Key.ColumnName); var result = table.Paged(columns: columns, where : where, orderBy: orderBy, currentPage: page, pageSize: take); var data = new List <DataRowViewModel>(); foreach (var item in result.Items) { data.Add(ExpandoToDataRow(item, entity)); } return(new PagedRecordsViewModel { TotalItems = result.TotalRecords, TotalPages = result.TotalPages, Records = data }); }
/// <summary> /// 发布动态 /// </summary> /// <param name="item"></param> /// <returns>返回动态id 小于0 则失败</returns> public virtual int DynamicAdd(DynamicModel item) { DbCommand cmd = GetStoredProcCommand("P_Dynamic_Add"); AddInParameter(cmd, "@UserId", DbType.Int32, item.UserId); AddInParameter(cmd, "@Type", DbType.Int32, item.Type); AddInParameter(cmd, "@Title", DbType.String, item.Title); AddInParameter(cmd, "@DynamicContent", DbType.String, item.DynamicContent); AddInParameter(cmd, "@Ip", DbType.String, IpUtility.GetIp()); AddInParameter(cmd, "@Lat", DbType.Decimal, item.Lat); AddInParameter(cmd, "@Lng", DbType.Decimal, item.Lng); AddInParameter(cmd, "@CityId", DbType.Int32, item.CityId); AddInParameter(cmd, "@Location", DbType.String, item.Location); if (item.ImageList != null && item.ImageList.Count > 0) { AddInParameter(cmd, "@Images", DbType.Xml, XmlUtility.Serialize(item.ImageList, Encoding.UTF8, "Images")); } AddInParameter(cmd, "@Visible", DbType.Int32, item.Visible); AddInParameter(cmd, "@IsMentionAll", DbType.Int32, item.IsMentionAll); AddOutParameter(cmd, "@DynamicId", DbType.Int32, 4); ExecuteNonQuery(cmd); int outId = 0; int.TryParse(cmd.Parameters["@DynamicId"].Value.ToString(), out outId); return(outId); }
private DynamicModel GetModel() { var model = new DynamicModel(); model.FromDate = System.DateTime.Today.AddDays(-7); model.ToDate = System.DateTime.Today.AddDays(1); model.FileFormats = fileFormats.Select(x => new SelectListItem { Text = x, Value = x }); List <String> reportTypes = new List <String>(); reportTypes.Add(Resources.ResourceDynamic.ReportBelt); reportTypes.Add(Resources.ResourceDynamic.ReportSkip); reportTypes.Add(Resources.ResourceDynamic.ReportComparisonMining); model.ReportTypes = reportTypes.Select(x => new SelectListItem { Text = x, Value = x }); string lang = getUserLang(Request.Cookies["lang"]); if (lang == "en") { model.Locations = cdb.Locations.ToList().Select(N => new SelectListItem { Text = N.LocationNameEng, Value = N.ID.ToString() }); } else { model.Locations = cdb.Locations.ToList().Select(N => new SelectListItem { Text = N.LocationName, Value = N.ID.ToString() }); } return(model); }
public IList <DataRowViewModel> GetRecords(Entity entity, IList <IEntityFilter> filters = null, string searchQuery = null, string order = null, string orderDirection = null, bool determineDisplayValue = false) { var search = new EntitySearch { Query = searchQuery, Properties = entity.SearchProperties }; order = order.IsNullOrEmpty() ? entity.Key.ColumnName : order; orderDirection = orderDirection.IsNullOrEmpty() ? "ASC" : orderDirection.ToUpper(); var orderBy = order + " " + orderDirection; var columns = string.Join(",", entity.Properties.Where(x => !x.IsForeignKey || (!x.IsCollection && x.IsForeignKey)).Select(x => x.ColumnName).Distinct()); var where = ConvertFiltersToSQL(filters, search); var table = new DynamicModel(AdminInitialise.ConnectionString, tableName: entity.TableName, primaryKeyField: entity.Key.ColumnName); var result = table.All(columns: columns, where : where, orderBy: orderBy); var data = new List <DataRowViewModel>(); foreach (var item in result) { data.Add(ExpandoToDataRow(item, entity)); } if (determineDisplayValue) { foreach (var row in data) { row.DisplayName = GetDisplayName(entity, row); } } return(data); }
/// <summary> /// Removes relation between DynamicModel item and relatedItem by field name /// </summary> /// <param name="item">Current Dynamic Content Object</param> /// <param name="relatedItem">Related Dynamic Content Object</param> /// <param name="fieldName">Name of the string field</param> public static void DeleteRelation(this DynamicModel item, DynamicModel relatedItem, string fieldName) { if (item == null) { throw new ArgumentNullException("item"); } else if (relatedItem == null) { throw new ArgumentException("relatedItem"); } if (fieldName != null) { var sfContent = item.ToSitefinityModel(); var sfRelatedContent = relatedItem.ToSitefinityModel(false); if (sfContent.DoesFieldExist(fieldName)) { DynamicModuleManager manager = DynamicModuleManager.GetManager(); sfContent.DeleteRelation(sfRelatedContent, fieldName); manager.Lifecycle.Publish(sfContent); manager.SaveChanges(); } } }
/// <summary> /// 得到一个对象实体 /// </summary> public DynamicModel GetModel(decimal DynamicId) { StringBuilder strSql = new StringBuilder(); strSql.Append("select DynamicId, JsonType, JsonMemo, DynamicTitle, DynamicType, CreateTime, FlagInvalid, DynamicUserId, DynamicMerId, DynamicLv "); strSql.Append(" from Dynamic "); strSql.Append(" where DynamicId=@DynamicId"); SqlParameter[] parameters = { new SqlParameter("@DynamicId", SqlDbType.Decimal) }; parameters[0].Value = DynamicId; DynamicModel model = new DynamicModel(); DataSet ds = helper.ExecSqlReDs(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["DynamicId"].ToString() != "") { model.DynamicId = decimal.Parse(ds.Tables[0].Rows[0]["DynamicId"].ToString()); } model.JsonType = ds.Tables[0].Rows[0]["JsonType"].ToString(); model.JsonMemo = ds.Tables[0].Rows[0]["JsonMemo"].ToString(); model.DynamicTitle = ds.Tables[0].Rows[0]["DynamicTitle"].ToString(); model.DynamicType = ds.Tables[0].Rows[0]["DynamicType"].ToString(); if (ds.Tables[0].Rows[0]["CreateTime"].ToString() != "") { model.CreateTime = DateTime.Parse(ds.Tables[0].Rows[0]["CreateTime"].ToString()); } if (ds.Tables[0].Rows[0]["FlagInvalid"].ToString() != "") { if ((ds.Tables[0].Rows[0]["FlagInvalid"].ToString() == "1") || (ds.Tables[0].Rows[0]["FlagInvalid"].ToString().ToLower() == "true")) { model.FlagInvalid = true; } else { model.FlagInvalid = false; } } model.DynamicUserId = ds.Tables[0].Rows[0]["DynamicUserId"].ToString(); if (ds.Tables[0].Rows[0]["DynamicMerId"].ToString() != "") { model.DynamicMerId = decimal.Parse(ds.Tables[0].Rows[0]["DynamicMerId"].ToString()); } if (ds.Tables[0].Rows[0]["DynamicLv"].ToString() != "") { model.DynamicLv = int.Parse(ds.Tables[0].Rows[0]["DynamicLv"].ToString()); } return(model); } else { return(null); } }
public DynamicObjectViewModel() { DynamicModel = new DynamicModel(); if (IsDesignMode) { DynamicModel.SetMember("DynamicProperty", new object[] { "Design text" }); } }
public static void InsertInto(this object o, string table, ConnectionProfile connectionProfile = null) { if (connectionProfile == null) connectionProfile = new ConnectionProfile(); DynamicModel dynamicModel = new DynamicModel(connectionProfile, table, "Id"); dynamicModel.Insert(o); }
private object GetEntity(Entity entity, object key) { var table = new DynamicModel(AdminInitialise.ConnectionString, tableName: entity.TableName, primaryKeyField: entity.Key.ColumnName); var result = table.Single(key); return(result); }
/// <summary> /// 执行模板 /// </summary> /// <param name="model"></param> /// <returns></returns> public string Invoke(DynamicModel model) { templateAction?.Invoke(model); var outstring = putProvide.ToString(); putProvide.Clear(); return(outstring); }
public ActionResult GetReport(DynamicModel model) { string DRip = ConfigurationManager.AppSettings["DRip"]; string reportName = ""; var url = new StringBuilder("http://" + DRip + "/DRWeb/WebApi/GenReport.aspx?report=reportName" + "&format=" + model.fileFormatsInForm + "&start=" + model.FromDate.ToString("yyyy-MM-dd") + "%20" + model.FromDate.ToString("HH:mm:ss") + "&stop=" + model.ToDate.ToString("yyyy-MM-dd") + "%20" + model.ToDate.ToString("HH:mm:ss") + "&ptype=abs&utctime=true"); //Генерация url для динамического отчета по конв.весам if (model.reportTypesInForm == Resources.ResourceDynamic.ReportBelt) { reportName = "Dyn_belt"; url.Replace("reportName", reportName); for (int i = 0; i < 30; i++) { url.Append("&ipp").Append((i + 1).ToString()).Append("="); if (i < model.beltScalesInForm.Length) { url.Append(model.beltScalesInForm[i].ToString().Substring(1)); } else { url.Append("0"); } } } //Генерация url для динамического отчета по скипам else if (model.reportTypesInForm == Resources.ResourceDynamic.ReportSkip) { reportName = "Dyn_skip"; url.Replace("reportName", reportName); for (int i = 0; i < 30; i++) { url.Append("&ipp").Append((i + 1).ToString()).Append("="); if (i < model.skipsInForm.Length) { url.Append(model.skipsInForm[i].ToString().Substring(1)); } else { url.Append("0"); } } } //Генерация url для динамического сравнения по добыче УД и CTS else if (model.reportTypesInForm == Resources.ResourceDynamic.ReportComparisonMining) { reportName = "ComparisonMiningInfo_d30004_all"; url.Replace("reportName", reportName); } return(Json(new { url = url.ToString() })); }
public List <dynamic> GetAllInvoices() { var invoices = new DynamicModel("invoicesDB", "invoice", "id"); return(invoices.All().ToList()); //dynamic invoices = new Invoices(); //return (invoices.find() as IEnumerable<dynamic>).ToList(); }
public bool Delete(Entity entity, string key, IList <PropertyDeleteViewModel> propertiesDeleteOptions) { var deleteOptions = propertiesDeleteOptions.ToDictionary(x => x.PropertyName, x => x.DeleteOption); foreach (var property in entity.Properties.Where(x => x.IsForeignKey && x.IsCollection)) { if (!deleteOptions.ContainsKey(property.ForeignEntity.Name)) { deleteOptions[property.ForeignEntity.Name] = property.DeleteOption; } } var table = new DynamicModel(AdminInitialise.ConnectionString, tableName: entity.TableName, primaryKeyField: entity.Key.ColumnName); var keyObject = GetKeyObject(entity, key); var result = 0; if (deleteOptions.All(x => x.Value == DeleteOption.Nothing)) { result = table.Delete(keyObject); } else { var sql = String.Empty; var recordHierarchy = GetRecordHierarchy(entity); foreach (var subRecord in recordHierarchy.SubRecordsHierarchies) { var deleteOption = DeleteOption.Nothing; if (deleteOptions.ContainsKey(subRecord.Entity.Name)) { deleteOption = deleteOptions[subRecord.Entity.Name]; } if (deleteOption == DeleteOption.SetNull) { sql += GetSetToNullUpdateSql(entity, subRecord) + Environment.NewLine; } else if (deleteOption == DeleteOption.CascadeDelete) { sql += string.Join(Environment.NewLine, GetDeleteRelatedEntityDeleteSql(subRecord).Reverse()) + Environment.NewLine; } } var cmd = table.CreateDeleteCommand(key: keyObject); cmd.CommandText = sql + cmd.CommandText; result = table.Execute(cmd); } if (result < 1) { Error(IlaroAdminResources.EntityNotExist); return(false); } AddEntityChange(entity.Name, key, EntityChangeType.Delete); return(true); }
private async void GetDynamicVideos() { try { _Loading = true; pr_Load.Visibility = Visibility.Visible; string url = $"https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?access_key={ApiHelper.access_key}&appkey={ApiHelper.AndroidKey.Appkey}&build={ApiHelper.build}&mobi_app=android&platform=android&qn=32&rsp_type=2&src=bili&ts={ApiHelper.GetTimeSpan_2}&type_list=8%2C512%2C4099&uid={ApiHelper.GetUserId()}&update_num_dy_id=0"; if (ls_video.Count() != 0) { url = $"https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_history?access_key={ApiHelper.access_key}&appkey={ApiHelper.AndroidKey.Appkey}&build={ApiHelper.build}&mobi_app=android&offset_dynamic_id={ls_video.GetLastDynamicId()}&page={_page}&platform=android&qn=32&rsp_type=2&src=bili&ts={ApiHelper.GetTimeSpan_2}&type_list=8%2C512%2C4099&uid={ApiHelper.GetUserId()}"; } else { _page = 0; } url += "&sign=" + ApiHelper.GetSign(url); string results = await WebClientClass.GetResultsUTF8Encode(new Uri(url)); results = results.Replace("default", "_default"); DynamicModel dynamicModel = JsonConvert.DeserializeObject <DynamicModel>(results); if (dynamicModel.code == 0) { ObservableCollection <DynamicCardsModel> cards = new ObservableCollection <DynamicCardsModel>(); foreach (var item in dynamicModel.data.cards) { if (item.desc.type != 32) { cards.Add(item); } } ls_video.LoadData(cards); _page++; } else { Utils.ShowMessageToast(dynamicModel.msg); } } catch (Exception ex) { if (ex.HResult == -2147012867 || ex.HResult == -2147012889) { Utils.ShowMessageToast("无法连接服务器,请检查你的网络连接", 3000); } else { Utils.ShowMessageToast("动态加载错误", 3000); } } finally { _Loading = false; pr_Load.Visibility = Visibility.Collapsed; } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(DynamicModel model) { bool reValue = true; int reCount = 0; StringBuilder strSql = new StringBuilder(); strSql.Append("update Dynamic set "); strSql.Append(" JsonType = @JsonType , "); strSql.Append(" JsonMemo = @JsonMemo , "); strSql.Append(" DynamicTitle = @DynamicTitle , "); strSql.Append(" DynamicType = @DynamicType , "); strSql.Append(" CreateTime = @CreateTime , "); strSql.Append(" FlagInvalid = @FlagInvalid , "); strSql.Append(" DynamicUserId = @DynamicUserId , "); strSql.Append(" DynamicMerId = @DynamicMerId , "); strSql.Append(" DynamicLv = @DynamicLv "); strSql.Append(" where DynamicId=@DynamicId "); SqlParameter[] parameters = { new SqlParameter("@DynamicId", SqlDbType.Decimal, 9), new SqlParameter("@JsonType", SqlDbType.VarChar, 10), new SqlParameter("@JsonMemo", SqlDbType.Xml, -1), new SqlParameter("@DynamicTitle", SqlDbType.VarChar, 500), new SqlParameter("@DynamicType", SqlDbType.VarChar, 10), new SqlParameter("@CreateTime", SqlDbType.DateTime), new SqlParameter("@FlagInvalid", SqlDbType.Bit, 1), new SqlParameter("@DynamicUserId", SqlDbType.VarChar, 50), new SqlParameter("@DynamicMerId", SqlDbType.Decimal, 9), new SqlParameter("@DynamicLv", SqlDbType.Int, 4) }; parameters[0].Value = model.DynamicId; parameters[1].Value = model.JsonType; parameters[2].Value = model.JsonMemo; parameters[3].Value = model.DynamicTitle; parameters[4].Value = model.DynamicType; parameters[5].Value = model.CreateTime; parameters[6].Value = model.FlagInvalid; parameters[7].Value = model.DynamicUserId; parameters[8].Value = model.DynamicMerId; parameters[9].Value = model.DynamicLv; try {//异常处理 reCount = this.helper.ExecSqlReInt(strSql.ToString(), parameters); } catch (Exception ex) { this.helper.Close(); throw ex; } if (reCount <= 0) { reValue = false; } return(reValue); }
public PagedRecords GetChangesRecords( Entity entityChangesFor, int page, int take, IList <IEntityFilter> filters, string searchQuery, string order, string orderDirection) { var changeEntity = AdminInitialise.ChangeEntity; var search = new EntitySearch { Query = searchQuery, Properties = changeEntity.SearchProperties }; order = order.IsNullOrEmpty() ? changeEntity.Key.ColumnName : order; orderDirection = orderDirection.IsNullOrEmpty() ? "ASC" : orderDirection.ToUpper(); var orderBy = order + " " + orderDirection; var columns = string.Join(",", changeEntity.GetColumns()); List <object> args; var where = ConvertFiltersToSql(filters, search, out args); where += where.IsNullOrEmpty() ? " WHERE " : " AND "; where += "EntityName = @" + args.Count; args.Add(entityChangesFor.Name); var table = new DynamicModel( AdminInitialise.ConnectionStringName, changeEntity.TableName, changeEntity.Key.Name); var result = table.Paged( columns: columns, where : where, orderBy: orderBy, currentPage: page, pageSize: take, args: args.ToArray()); var data = new List <DataRow>(); foreach (var item in result.Items) { data.Add(new DataRow(item, changeEntity)); } return(new PagedRecords { TotalItems = result.TotalRecords, TotalPages = result.TotalPages, Records = data }); }
public void Remove(int id) { var invoicesDetail = new DynamicModel("invoicesDB", "invoiceDetail", "id"); invoicesDetail.Delete(where : "WHERE idInvoice=@0", args: id); var invoices = new DynamicModel("invoicesDB", "invoice", "id"); invoices.Delete(id); }
public void WhenIFollowLinkInValidationEmail() { var database = new DynamicModel("DefaultConnection", "UserProfile", "Id").SetConnectionString(ConnectionString); var confirmationToken = database.Query("SELECT ConfirmationToken FROM webpages_Membership").First().ConfirmationToken; var emailAddress = ScenarioContext.Current.Get <UserProfile>().EmailAddress; var url = "/Account/CompleteRegistration?confirmationToken=" + confirmationToken + "&email=" + emailAddress; Console.WriteLine(url); _browser.Visit(url); }
public IList <DataRow> GetRecords( Entity entity, IList <IEntityFilter> filters = null, string searchQuery = null, string order = null, string orderDirection = null, bool determineDisplayValue = false) { var search = new EntitySearch { Query = searchQuery, Properties = entity.SearchProperties }; order = order.IsNullOrEmpty() ? entity.Key.ColumnName : order; orderDirection = orderDirection.IsNullOrEmpty() ? "ASC" : orderDirection.ToUpper(); var orderBy = order + " " + orderDirection; var columns = string.Join(",", entity.Properties .Where(x => !x.IsForeignKey || (!x.TypeInfo.IsCollection && x.IsForeignKey)) .Select(x => x.ColumnName) .Distinct()); List <object> args; var where = ConvertFiltersToSql(filters, search, out args); var table = new DynamicModel( AdminInitialise.ConnectionStringName, entity.TableName, entity.Key.ColumnName); var result = table.All( columns: columns, where : where, orderBy: orderBy, args: args.ToArray()); var data = result .Select(item => new DataRow(item, entity)) .ToList(); if (determineDisplayValue) { foreach (var row in data) { row.DisplayName = entity.ToString(row); } } return(data); }
public void AutomaticallyRegistersNonExistingProperty() { dynamic model = new DynamicModel(); var dynamicModel = (DynamicModel)model; Assert.IsFalse(dynamicModel.IsPropertyRegistered("NonExistingSetProperty")); model.NonExistingSetProperty = "test"; Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingSetProperty")); }
public void CorrectlyReturnsTheRightValue() { dynamic model = new DynamicModel(); var dynamicModel = (DynamicModel)model; model.NonExistingGetProperty = "test"; Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingGetProperty")); Assert.AreEqual("test", model.NonExistingGetProperty); }
public void AutomaticallyRegistersNonExistingProperty() { dynamic model = new DynamicModel(); var dynamicModel = (DynamicModel)model; Assert.IsFalse(dynamicModel.IsPropertyRegistered("NonExistingSetProperty")); model.NonExistingSetProperty = "test"; Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingSetProperty")); }
public void CorrectlyReturnsTheRightValue() { dynamic model = new DynamicModel(); var dynamicModel = (DynamicModel)model; model.NonExistingGetProperty = "test"; Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingGetProperty")); Assert.AreEqual("test", model.NonExistingGetProperty); }
public void When_passing_code_Should_Execute_It_and_return_text() { IViewExecutor ironRubyViewExecutor = new IronRubyViewExecutor(); var parser = new IronRubyViewParser(); var code = parser.Parse(_templatePath); var model = new DynamicModel(); model.SetAttributeValue("ftuValue","100 USD"); model.SetAttributeValue("ftuUrl", "LaunchPage"); model.SetAttributeValue("idModifier", "modifier"); model.SetAttributeValue("phrases", new {FREE = "FREE", viewing_credit = "Viewing Credit", new_users = "new users", no_purchase_required = "no purchase required", start_here = "start here" }); var html = ironRubyViewExecutor.Execute(code, model); Assert.That(html, Is.EqualTo(HtmlCode)); }
public dynamic LoadDynamicModel() { using (var cnn = DataDb.DbConnection()) { var obj = cnn.Query<dynamic>(string.Format("select {1} as Name, {2} as Content from {0}", TableName, keyColumn, valueColumn)).ToList(); dynamic dModel = new DynamicModel(); logger.Debug(obj); foreach (var o in obj) { dModel.Set(o.Name, o.Content); } return dModel; } }
public void BindingTwoWayToDynamicModel () { var view = new MockBindable (); var model = new DynamicModel { Properties = { { "Title", "Foo" }, } }; view.SetBinding (MockBindable.TextProperty, "Title"); view.BindingContext = model; Assert.AreEqual ("Foo", view.Text); view.Text = "Bar"; Assert.AreEqual ("Bar", model.Properties["Title"]); }
public void SupportsSerialization() { dynamic model = new DynamicModel(); model.NonExistingProperty = "a dynamic value"; var serializer = SerializationFactory.GetXmlSerializer(); using (var memoryStream = new MemoryStream()) { var dynamicModel = (DynamicModel)model; serializer.Serialize(dynamicModel, memoryStream); memoryStream.Position = 0L; dynamic deserializedModel = serializer.Deserialize(typeof(DynamicModel), memoryStream); var deserializedDynamicModel = (DynamicModel) deserializedModel; Assert.IsTrue(deserializedDynamicModel.IsPropertyRegistered("NonExistingProperty")); Assert.AreEqual("a dynamic value", deserializedModel.NonExistingProperty); } }
public void Init(DynamicModel model) { string foreignKeyName = string.IsNullOrEmpty(ForeignKey) ? ForeignKeyFor(Repository) : ForeignKey; string primaryKeyName = string.IsNullOrEmpty(PrimaryKey) ? "Id" : PrimaryKey; string whereClause = string.Format("{0} = @0", primaryKeyName); model.SetUnTrackedMember( Named, new DynamicFunction(() => Repository.SingleWhere(whereClause, model.GetMember(foreignKeyName)))); }
public bool Validate(DynamicModel entity) { dynamic value = entity.GetMember(Property); if (value == null && IgnoreNull == true) return true; if (value == null) return false; int length = value.Length; if (Minimum != null && length < Minimum) return false; if (Maximum != null && length > Maximum) return false; if (In != null && !In.Contains(length)) return false; if (Is != null && length != Is) return false; return true; }
public bool SupportsAssociations(DynamicModel mixWith) { return mixWith.GetType().GetMethod("Associates") != null; }
public static DynamicModel Open(string connectionStringName) { dynamic dm = new DynamicModel(connectionStringName); return dm; }
private DynamicFunction Query(string fromColumn, string toTable, string throughTable, string @using, DynamicModel model) { return () => repository.Query( @" select {toTable}.* from {throughTable} inner join {toTable} on {throughTable}.{using} = {toTable}.Id where {fromColumn} = @0" .Replace("{toTable}", toTable) .Replace("{throughTable}", throughTable) .Replace("{using}", @using) .Replace("{fromColumn}", fromColumn), model.Expando.Id as object) .FirstOrDefault(); }
public MixInAssociation(DynamicModel mixWith) { if (!SupportsAssociations(mixWith)) return; IEnumerable<dynamic> associations = (mixWith as dynamic).Associates(); foreach (dynamic association in associations) association.Init(mixWith); }
public void Init(DynamicModel model) { fromColumn = ForeignKeyFor(model); toTable = Repository.GetType().Name; resolvedForeignKey = ForeignKey ?? ForeignKeyFor(Repository); AddAssociationMethod(model); }
public MssiveTests() { _db = new DynamicModel(Config.ConnectionName, "sfPosts", "Id"); }
private DynamicFunctionWithParam Query(DynamicModel model) { return (options) => { if (DiscardCache(options)) cachedCollection = null; if (cachedCollection != null) return cachedCollection; cachedCollection = new DynamicModels(Repository.Query(SelectClause(model))); AddNewAssociationMethod(cachedCollection, model); return cachedCollection; }; }
public void Init(DynamicModel model) { string foreignKeyName = string.IsNullOrEmpty(ForeignKey) ? ForeignKeyFor(model) : ForeignKey; model.SetUnTrackedMember( Singular(Repository), new DynamicFunction(() => Repository.SingleWhere(foreignKeyName + " = @0", model.GetMember(Id())))); }
public MixInAssociation(DynamicModel mixWith) { if (!SupportsAssociations(mixWith)) return; IEnumerable<dynamic> associations = (mixWith as dynamic).Associates(); foreach (dynamic association in associations) { referencedAssociations.Add(association); association.Init(mixWith); } mixWith.SetUnTrackedMember("AssociationNamed", new DynamicFunctionWithParam(AssociationNamed)); }
public MixInValidation(DynamicModel mixWith) { rules = new List<dynamic>(); errors = new List<dynamic>(); @this = mixWith; if (HasValidationCapabilities(mixWith)) { mixWith.SetUnTrackedMember("Errors", new DynamicFunction(Errors)); mixWith.SetUnTrackedMember("IsValid", new DynamicFunction(IsValid)); mixWith.SetUnTrackedMember("IsPropertyValid", new DynamicFunctionWithParam(IsValid)); mixWith.SetUnTrackedMember("FirstError", new DynamicFunction(FirstError)); IEnumerable<dynamic> validationRules = @this.Validates(); foreach (var validationRule in validationRules) { validationRule.Init(mixWith); AddRule(validationRule); } } }
void describe_dynamic_model_to_json() { before = () => { objectToConvert = new DynamicModel(new { Id = 15, String = "hello", Char = 'a', DateTime = DateTime.Today, Double = (double)100, Guid = Guid.Empty, Decimal = (decimal)15, }); }; act = () => jsonString = DynamicToJson.Convert(objectToConvert); it["converts dynamic model"] = () => { string expected = @"{{ ""id"": {0}, ""string"": ""{1}"", ""char"": ""{2}"", ""dateTime"": ""{3}"", ""double"": {4}, ""guid"": ""{5}"", ""decimal"": {6} }}" .With(15, "hello", 'a', DateTime.Today, (double)100, Guid.Empty, (decimal)15); jsonString.should_be(expected); }; }
public bool HasValidationCapabilities(DynamicModel mixWith) { return mixWith.GetType().GetMethod("Validates") != null; }
private void AddAssociationMethods(DynamicModel model, string fromColumn, string toTable) { model.SetUnTrackedMember(named, Query(fromColumn, model)); model.SetUnTrackedMember(Singular(named) + "Ids", QueryIds(fromColumn, model)); }
public void Init(DynamicModel model) { string foreignKeyName = string.IsNullOrEmpty(ForeignKey) ? ForeignKeyFor(model) : ForeignKey; model.SetUnTrackedMember( Singular(Repository), Query(foreignKeyName, Repository.GetType().Name, through.GetType().Name, ForeignKeyFor(Repository), model)); }
private void AddNewAssociationMethod(DynamicModels collection, DynamicModel model) { collection.SetMember( "New", new DynamicFunctionWithParam(attributes => { return EntityFor(model, attributes); })); }
private DynamicFunction QueryIds(DynamicModel model) { return () => { IEnumerable<dynamic> models = (Query(model) as DynamicFunctionWithParam).Invoke(null); return models.Select(s => s.Id).ToList(); }; }
private dynamic EntityFor(DynamicModel model, dynamic attributes) { var entity = new Gemini(attributes); entity.SetMember(ForeignKeyFor(model), model.GetMember(Id())); return repository.Projection(entity); }
private void AddAssociationMethod(DynamicModel model) { model.SetUnTrackedMember( Named, Query(model)); model.SetUnTrackedMember( Singular(Named) + "Ids", QueryIds(model)); }
private void AddAssociationMethod(DynamicModel model, string fromColumn, string toTable) { model.SetUnTrackedMember( named, Query(fromColumn, toTable, through.GetType().Name, Using ?? ForeignKeyFor(repository), model)); model.SetUnTrackedMember( Singular(named) + "Ids", QueryIds(fromColumn, toTable, through.GetType().Name, Using ?? ForeignKeyFor(repository), model)); }
private DynamicFunction QueryIds(string fromColumn, string toTable, string throughTable, string @using, DynamicModel model) { return () => { IEnumerable<dynamic> models = (Query(fromColumn, toTable, throughTable, @using, model) as DynamicFunction).Invoke(); return models.Select(s => s.Id).ToList(); }; }
public HomeController() { comments = new DynamicModel(connectionStringName: "ajh", tableName: "Comment", primaryKeyField: "Id"); }