コード例 #1
0
        /// <summary>
        /// 更新数据字典信息信息
        /// </summary>
        /// <param name="dtos">包含更新信息的数据字典信息DTO信息</param>
        /// <returns>业务操作结果</returns>
        public OperationResult EditDictionarys(params DictionaryDto[] dtos)
        {
            dtos.CheckNotNull("dtos");
            OperationResult result = DictionaryRepository.Update(dtos,
                                                                 dto =>
            {
                if (DictionaryRepository.CheckExists(m => m.Value == dto.Value))
                {
                    throw new Exception("值为“{0}”的数据字典已存在,不能重复添加。".FormatWith(dto.Value));
                }
            },
                                                                 (dto, entity) =>
            {
                if (!dto.ParentId.HasValue || dto.ParentId == 0)
                {
                    entity.Parent = null;
                }
                else if (entity.Parent != null && entity.Parent.Id != dto.ParentId)
                {
                    Dictionary parent = DictionaryRepository.GetByKey(dto.ParentId.Value);
                    if (parent == null)
                    {
                        throw new Exception("指定父数据字典不存在。");
                    }
                    entity.Parent = parent;
                }
                return(entity);
            });

            return(result);
        }
コード例 #2
0
        public ActionResult Edit(int id, FormCollection formCollection)
        {
            try
            {
                DictionaryRepository ml = new DictionaryRepository();

                Dictionary obj = ml.GetDictionary(id);

                UpdateModel(obj);

                obj.LastUpdateDate = DateTime.Now;

                obj.LastUpdateUserID = ID;

                bool result = ml.Update(obj) > 0 ? true : false;

                return(result ? Content(ContentIcon.Succeed + "|操作成功") : Content(ContentIcon.Error + "|操作失败"));
            }
            catch (Exception ex)
            {
                return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message)));
            }
        }
コード例 #3
0
        public void DictionaryRepositoryCrudTest()
        {
            //-- Arrange
            var dictionaryRepository = new DictionaryRepository <EquatableStringEntity>();
            var testEntity           = new EquatableStringEntity(1)
            {
                Data = "response1"
            };
            var updateEntity = new EquatableStringEntity(1)
            {
                Data = "response2"
            };
            var expectedAdded = new EquatableStringEntity(1)
            {
                Data = "response1"
            };
            var expectedUpdated = new EquatableStringEntity(1)
            {
                Data = "response2"
            };
            var expectedExceptionType    = typeof(System.Collections.Generic.KeyNotFoundException);
            var expectedExceptionMessage = "The given key '1' was not present in the dictionary.";

            //-- Act

            //-- Create
            dictionaryRepository.Add(testEntity);

            //-- Read
            var actualAdded = dictionaryRepository.FindById(testEntity.Id);

            //-- Update
            dictionaryRepository.Update(updateEntity);
            var actualUpdated = dictionaryRepository.FindById(testEntity.Id);

            //-- Delete
            dictionaryRepository.Delete(testEntity);
            EquatableStringEntity actualDeleted;

            System.Exception actualException;
            try
            {
                actualDeleted   = dictionaryRepository.FindById(testEntity.Id);
                actualException = new System.Exception();
            }
            catch (System.Collections.Generic.KeyNotFoundException ex)
            {
                actualDeleted   = null;
                actualException = ex;
            }
            catch (System.Exception ex)
            {
                actualException = ex;
                throw;
            }
            var actualExceptionType    = actualException.GetType();
            var actualExceptionMessage = actualException.Message;

            //-- Assert
            Assert.AreEqual(expectedAdded, actualAdded);
            Assert.AreEqual(expectedUpdated, actualUpdated);
            Assert.AreNotEqual(expectedAdded, actualUpdated);
            Assert.IsNull(actualDeleted);
            Assert.AreEqual(expectedExceptionType, actualExceptionType);
            Assert.AreEqual(expectedExceptionMessage, actualExceptionMessage);
        }