Пример #1
0
        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);
        }
Пример #2
0
        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);
            };
        }
Пример #3
0
            /// <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;
            }
Пример #4
0
        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");
        }
Пример #5
0
        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());
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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,
            });
Пример #8
0
        /// <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);
                }
            }
        }
Пример #9
0
        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);
        }
Пример #10
0
        private IEnumerable <dynamic> Execute(Tuple <string, object[]> arguments)
        {
            var dynamicModel = new DynamicModel(_connectionString);
            var results      = dynamicModel.Query(arguments.Item1, arguments.Item2);

            return(results);
        }
Пример #11
0
        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
            });
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        /// <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();
                }
            }
        }
Пример #16
0
        /// <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" });
     }
 }
Пример #18
0
        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);
        }
Пример #19
0
        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);
        }
Пример #20
0
    /// <summary>
    /// 执行模板
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    public string Invoke(DynamicModel model)
    {
        templateAction?.Invoke(model);
        var outstring = putProvide.ToString();

        putProvide.Clear();
        return(outstring);
    }
Пример #21
0
        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();
        }
Пример #23
0
        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);
        }
Пример #24
0
        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;
            }
        }
Пример #25
0
        /// <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);
        }
Пример #26
0
        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);
        }
Пример #28
0
        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);
        }
Пример #29
0
        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);
        }
Пример #30
0
            public void AutomaticallyRegistersNonExistingProperty()
            {
                dynamic model        = new DynamicModel();
                var     dynamicModel = (DynamicModel)model;

                Assert.IsFalse(dynamicModel.IsPropertyRegistered("NonExistingSetProperty"));

                model.NonExistingSetProperty = "test";

                Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingSetProperty"));
            }
Пример #31
0
            public void CorrectlyReturnsTheRightValue()
            {
                dynamic model        = new DynamicModel();
                var     dynamicModel = (DynamicModel)model;

                model.NonExistingGetProperty = "test";

                Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingGetProperty"));

                Assert.AreEqual("test", model.NonExistingGetProperty);
            }
Пример #32
0
            public void AutomaticallyRegistersNonExistingProperty()
            {
                dynamic model = new DynamicModel();
                var dynamicModel = (DynamicModel)model;

                Assert.IsFalse(dynamicModel.IsPropertyRegistered("NonExistingSetProperty"));

                model.NonExistingSetProperty = "test";

                Assert.IsTrue(dynamicModel.IsPropertyRegistered("NonExistingSetProperty"));
            }
Пример #33
0
            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));
 }
Пример #35
0
 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"]);
		}
Пример #37
0
            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);
                }
            }
Пример #38
0
        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))));
        }
Пример #39
0
        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;
        }
Пример #40
0
 public bool SupportsAssociations(DynamicModel mixWith)
 {
     return mixWith.GetType().GetMethod("Associates") != null;
 }
Пример #41
0
 public static DynamicModel Open(string connectionStringName)
 {
     dynamic dm = new DynamicModel(connectionStringName);
     return dm;
 }
Пример #42
0
 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();
 }
Пример #43
0
        public MixInAssociation(DynamicModel mixWith)
        {
            if (!SupportsAssociations(mixWith)) return;

            IEnumerable<dynamic> associations = (mixWith as dynamic).Associates();

            foreach (dynamic association in associations) association.Init(mixWith);
        }
Пример #44
0
        public void Init(DynamicModel model)
        {
            fromColumn = ForeignKeyFor(model);

            toTable = Repository.GetType().Name;

            resolvedForeignKey = ForeignKey ?? ForeignKeyFor(Repository);

            AddAssociationMethod(model);
        }
Пример #45
0
 public MssiveTests()
 {
     _db = new DynamicModel(Config.ConnectionName, "sfPosts", "Id");
 }
Пример #46
0
        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;
            };
        }
Пример #47
0
        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()))));
        }
Пример #48
0
        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));
        }
Пример #49
0
        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);
                }
            }
        }
Пример #50
0
        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);
            };
        }
Пример #51
0
 public bool HasValidationCapabilities(DynamicModel mixWith)
 {
     return mixWith.GetType().GetMethod("Validates") != null;
 }
Пример #52
0
        private void AddAssociationMethods(DynamicModel model, string fromColumn, string toTable)
        {
            model.SetUnTrackedMember(named, Query(fromColumn, model));

            model.SetUnTrackedMember(Singular(named) + "Ids", QueryIds(fromColumn, model));
        }
Пример #53
0
        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));
        }
Пример #54
0
 private void AddNewAssociationMethod(DynamicModels collection, DynamicModel model)
 {
     collection.SetMember(
         "New",
         new DynamicFunctionWithParam(attributes =>
         {
             return EntityFor(model, attributes);
         }));
 }
Пример #55
0
        private DynamicFunction QueryIds(DynamicModel model)
        {
            return () =>
            {
                IEnumerable<dynamic> models = (Query(model) as DynamicFunctionWithParam).Invoke(null);

                return models.Select(s => s.Id).ToList();
            };
        }
Пример #56
0
        private dynamic EntityFor(DynamicModel model, dynamic attributes)
        {
            var entity = new Gemini(attributes);

            entity.SetMember(ForeignKeyFor(model), model.GetMember(Id()));

            return repository.Projection(entity);
        }
Пример #57
0
        private void AddAssociationMethod(DynamicModel model)
        {
            model.SetUnTrackedMember(
                Named,
                Query(model));

            model.SetUnTrackedMember(
                Singular(Named) + "Ids",
                QueryIds(model));
        }
Пример #58
0
        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));
        }
Пример #59
0
        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();
            };
        }
Пример #60
0
 public HomeController()
 {
     comments = new DynamicModel(connectionStringName: "ajh", tableName: "Comment", primaryKeyField: "Id");
 }