コード例 #1
0
        public static DynamicPropertyDictionaryItem ToModel(this DynamicPropertyDictionaryItemEntity entity)
        {
            var result = new DynamicPropertyDictionaryItem();
            result.InjectFrom(entity);

            result.DisplayNames = entity.DisplayNames.Select(v => v.ToModel()).ToArray();

            return result;
        }
コード例 #2
0
        public void SaveDictionaryItems(string propertyId, DynamicPropertyDictionaryItem[] items)
        {
            if (propertyId == null)
                throw new ArgumentNullException("propertyId");
            if (items == null)
                throw new ArgumentNullException("items");

            using (var repository = _repositoryFactory())
            using (var changeTracker = GetChangeTracker(repository))
            {
                var property = repository.GetDynamicPropertiesByIds(new[] { propertyId }).First();
                var sourceDicItems = items.Select(x => x.ToEntity(property)).ToList();
                var targetDicItems = repository.GetDynamicPropertyDictionaryItems(propertyId).ToList();

                sourceDicItems.CompareTo(targetDicItems, EqualityComparer<DynamicPropertyDictionaryItemEntity>.Default, (state, source, target) =>
                {
                    if (state == EntryState.Modified)
                    {
                        changeTracker.Attach(target);
                        source.Patch(target);
                    }
                    else if (state == EntryState.Added)
                    {
                        repository.Add(source);
                    }

                });
                repository.UnitOfWork.Commit();
            }
        }
コード例 #3
0
 public IHttpActionResult SaveDictionaryItems(string typeName, string propertyId, DynamicPropertyDictionaryItem[] items)
 {
     _service.SaveDictionaryItems(propertyId, items);
     return StatusCode(HttpStatusCode.NoContent);
 }