Пример #1
0
        protected async Task <RepositoryResponse <TModel> > SavePropertiesAsync(JObject obj, Expression <Func <TModel, bool> > predicate)
        {
            if (obj != null)
            {
                List <EntityField> fields = new List <EntityField>();
                Type type = typeof(TModel);
                foreach (var item in obj.Properties())
                {
                    var          propName     = System.Globalization.CultureInfo.InvariantCulture.TextInfo.ToTitleCase(item.Name);
                    PropertyInfo propertyInfo = type.GetProperty(propName);
                    if (propertyInfo != null)
                    {
                        object val   = Convert.ChangeType(item.Value, propertyInfo.PropertyType);
                        var    field = new EntityField()
                        {
                            PropertyName  = propName,
                            PropertyValue = val
                        };
                        fields.Add(field);
                    }
                }

                var result = await _repo.UpdateFieldsAsync(predicate, fields);

                return(result);
            }
            return(new RepositoryResponse <TModel>());
        }