Beispiel #1
0
        public void Edit(long uid, string no, IClassEditInfo info)
        {
            ExceptionHelper.ThrowIfNotId(uid, "uid");
            ExceptionHelper.ThrowIfNull(info, "info");
            var  entity = GetEnabled(no);
            bool update = false;

            if (!String.IsNullOrWhiteSpace(info.Name) && entity.area_name != info.Name.Trim())
            {
                var oldName = entity.area_name;
                entity.area_name = info.Name.Trim();
                var entitys = _AreaRepositor.Entities.Where(c => c.area_no.StartsWith(no) && c.area_full_name != null).ToArray();
                foreach (var item in entitys)
                {
                    item.area_full_name = Utility.ReplyFullName(item.area_full_name, oldName, info.Name);
                }
                update = true;
            }
            if (!String.IsNullOrWhiteSpace(info.EnName) && entity.area_name_en != info.EnName.Trim())
            {
                var oldEnName = entity.area_name_en;
                entity.area_name_en = info.EnName.Trim();
                var entitys = _AreaRepositor.Entities.Where(c => c.area_no.StartsWith(no) && c.area_full_name_en != null).ToArray();
                foreach (var item in entitys)
                {
                    item.area_full_name_en = Utility.ReplyFullName(item.area_full_name_en, oldEnName, info.EnName);
                }
                update = true;
            }
            if (entity.order_by != info.Order)
            {
                entity.order_by = info.Order;
                update          = true;
            }
            if (update)
            {
                _AreaRepositor.SaveChanges();
            }
        }
Beispiel #2
0
        public Data.Area[] AddRange(long @operator, string parentNo, IClassEditInfo[] adds)
        {
            ExceptionHelper.ThrowIfNotId(@operator, "@operator");
            ExceptionHelper.ThrowIfNullOrWhiteSpace(parentNo, "parentNo");
            if (adds == null)
            {
                adds = new IClassEditInfo[0];
            }
            adds = adds.Where(a => a != null).ToArray();
            ExceptionHelper.ThrowIfNullOrEmpty(adds, "adds");
            for (int i = 0; i < adds.Length; i++)
            {
                ExceptionHelper.ThrowIfNullOrWhiteSpace(adds[i].Name, String.Format("第{0}项的名称为空", i));
            }
            parentNo = parentNo.Trim();
            var parent = _AreaRepositor.EnabledAreas.FirstOrDefault(c => c.area_no == parentNo);

            if (parent == null)
            {
                throw new FlhException(ErrorCode.NotExists, "父级不存在或已被删除");
            }

            var fullName   = parent.area_full_name.Split(',');
            var fullNameEn = (parent.area_full_name_en ?? string.Empty).Split(',');

            using (var scope = new System.Transactions.TransactionScope())
            {
                var noLength = parent.area_no.Length + 4;
                var maxChild = _AreaRepositor
                               .Entities
                               .Where(c => c.area_no.StartsWith(parent.area_no) && c.area_no.Length == noLength)
                               .OrderByDescending(c => c.area_no)
                               .FirstOrDefault();

                var num = 1;
                if (maxChild != null)
                {
                    num = Convert.ToInt32(maxChild.area_no.Substring(parent.area_no.Length)) + 1;
                }

                var addEntites = new List <Data.Area>();
                foreach (var item in adds)
                {
                    var entity = new Data.Area
                    {
                        enabled      = true,
                        created      = DateTime.Now,
                        creater      = @operator,
                        area_name    = item.Name.Trim(),
                        area_name_en = (item.EnName ?? string.Empty).Trim(),
                        area_no      = parent.area_no + num.ToString().PadLeft(4, '0'),
                        order_by     = item.Order,
                        updated      = DateTime.Now,
                        updater      = @operator,
                    };
                    entity.area_full_name_en = fullNameEn.Length == 0 ? entity.area_name_en : String.Join(",", fullNameEn.Concat(new[] { entity.area_name_en }));
                    entity.area_full_name    = fullName.Length == 0 ? entity.area_name : String.Join(",", fullName.Concat(new[] { entity.area_name }));
                    num++;
                    addEntites.Add(entity);
                }
                _AreaRepositor.AddRange(addEntites);
                _AreaRepositor.SaveChanges();

                scope.Complete();

                return(addEntites.ToArray());
            }
        }
Beispiel #3
0
        public Data.Trade[] AddRange(long @operator, string parentNo, IClassEditInfo[] adds)
        {
            ExceptionHelper.ThrowIfNotId(@operator, "@operator");
            ExceptionHelper.ThrowIfNullOrWhiteSpace(parentNo, "parentNo");
            if (adds == null) adds = new IClassEditInfo[0];
            adds = adds.Where(a => a != null).ToArray();
            ExceptionHelper.ThrowIfNullOrEmpty(adds, "adds");
            for (int i = 0; i < adds.Length; i++)
            {
                ExceptionHelper.ThrowIfNullOrWhiteSpace(adds[i].Name, String.Format("第{0}项的名称为空", i));
            }
            parentNo = parentNo.Trim();
            var parent = _TradeRepository.EnabledTrades.FirstOrDefault(c => c.no == parentNo);
            if (parent == null)
                throw new FlhException(ErrorCode.NotExists, "父级不存在或已被删除");

            var fullName = parent.full_name.Split(',');
            var fullNameEn = (parent.full_name_en??string.Empty).Split(',');

            using (var scope = new System.Transactions.TransactionScope())
            {
                var noLength = parent.no.Length + 4;
                var maxChild = _TradeRepository
                                .Entities
                                .Where(c => c.no.StartsWith(parent.no) && c.no.Length == noLength)
                                .OrderByDescending(c => c.no)
                                .FirstOrDefault();

                var num = 1;
                if (maxChild != null)
                {
                    num = Convert.ToInt32(maxChild.no.Substring(parent.no.Length)) + 1;
                }

                var addEntites = new List<Data.Trade>();
                foreach (var item in adds)
                {
                    var entity = new Data.Trade
                    {
                        enabled = true,
                        created = DateTime.Now,
                        creater = @operator,
                        name = item.Name.Trim(),
                        name_en =( item.EnName??string.Empty).Trim(),
                        no = parent.no + num.ToString().PadLeft(4, '0'),
                        order_by = item.Order,
                        updated = DateTime.Now,
                        updater = @operator,
                    };
                    entity.full_name_en = fullNameEn.Length == 0 ? entity.name_en : String.Join(",", fullNameEn.Concat(new[] { entity.name_en }));
                    entity.full_name = fullName.Length == 0 ? entity.name : String.Join(",", fullName.Concat(new[] { entity.name }));
                    num++;
                    addEntites.Add(entity);
                }
                _TradeRepository.AddRange(addEntites);
                _TradeRepository.SaveChanges();

                scope.Complete();

                return addEntites.ToArray();
            }
        }
Beispiel #4
0
 public void Edit(long uid, string no, IClassEditInfo info)
 {
     ExceptionHelper.ThrowIfNotId(uid, "uid");
     ExceptionHelper.ThrowIfNull(info,"info");
     var entity = GetEnabled(no);
     bool update = false;
     if (!String.IsNullOrWhiteSpace(info.Name)&&entity.name!=info.Name.Trim())
     {
         var oldName = entity.name;
         entity.name = info.Name.Trim();
         var entitys = _TradeRepository.Entities.Where(c => c.no.StartsWith(no)&&c.full_name!=null).ToArray();
         foreach(var item in entitys)
         {
             item.full_name = Utility.ReplyFullName(item.full_name, oldName, info.Name);
         }
         update = true;
     }
     if (!String.IsNullOrWhiteSpace(info.EnName)&&entity.name_en!=info.EnName.Trim())
     {
         var oldEnName = entity.name_en;
         entity.name_en = info.EnName.Trim();
         var entitys = _TradeRepository.Entities.Where(c => c.no.StartsWith(no) && c.full_name_en != null).ToArray();
         foreach (var item in entitys)
         {
             item.full_name_en = Utility.ReplyFullName(item.full_name_en, oldEnName, info.EnName);
         }
         update = true;
     }
     if (entity.order_by != info.Order)
     {
         entity.order_by = info.Order;
         update = true;
     }
     if (update)
         _TradeRepository.SaveChanges();
 }
Beispiel #5
0
        public void Edit(long uid, string no, IClassEditInfo info)
        {
            ExceptionHelper.ThrowIfNotId(uid, "uid");
            ExceptionHelper.ThrowIfNull(info, "info");
            var  entity = GetEnabled(no);
            bool update = false;

            if (!String.IsNullOrWhiteSpace(info.Name) && entity.name != info.Name.Trim())
            {
                var oldName = entity.name;
                entity.name = info.Name.Trim();
                var entitys = _ClassesRepository.Entities.Where(c => c.no.StartsWith(no) && c.full_name != null).ToArray();
                foreach (var item in entitys)
                {
                    item.full_name = Utility.ReplyFullName(item.full_name, oldName, info.Name);
                }
                update = true;
            }
            if (!String.IsNullOrWhiteSpace(info.EnName) && entity.name_en != info.EnName.Trim())
            {
                var oldEnName = entity.name_en;
                entity.name_en = info.EnName.Trim();
                var entitys = _ClassesRepository.Entities.Where(c => c.no.StartsWith(no) && c.full_name_en != null).ToArray();
                foreach (var item in entitys)
                {
                    item.full_name_en = Utility.ReplyFullName(item.full_name_en, oldEnName, info.EnName);
                }
                update = true;
            }
            if (entity.order_by != info.Order)
            {
                entity.order_by = info.Order;
                update          = true;
            }
            if (!String.IsNullOrWhiteSpace(info.Introduce) && info.Introduce.Trim() != entity.introduce)
            {
                entity.introduce = info.Introduce.Trim();
                update           = true;
            }
            if (!String.IsNullOrWhiteSpace(info.IndexImage) && info.IndexImage.Trim() != entity.indexImage)
            {
                var sourceId = FileId.FromFileId(info.IndexImage);
                if (sourceId.IsTempId)
                {
                    var target = sourceId.ToStorageId();
                    _FileManager.Copy(sourceId, target);
                    sourceId = target;
                }
                entity.indexImage = sourceId.Id;
                update            = true;
            }
            if (!String.IsNullOrWhiteSpace(info.ListImage) && info.ListImage.Trim() != entity.listImage)
            {
                var sourceId = FileId.FromFileId(info.ListImage);
                if (sourceId.IsTempId)
                {
                    var target = sourceId.ToStorageId();
                    _FileManager.Copy(sourceId, target);
                    sourceId = target;
                }
                entity.listImage = sourceId.Id;
                update           = true;
            }
            if (update)
            {
                _ClassesRepository.SaveChanges();
            }
        }
Beispiel #6
0
 public void Edit(long uid, string no, IClassEditInfo info)
 {
     ExceptionHelper.ThrowIfNotId(uid, "uid");
     ExceptionHelper.ThrowIfNull(info, "info");
     var entity = GetEnabled(no);
     bool update = false;
     if (!String.IsNullOrWhiteSpace(info.Name) && entity.name != info.Name.Trim())
     {
         var oldName = entity.name;
         entity.name = info.Name.Trim();
         var entitys = _ClassesRepository.Entities.Where(c => c.no.StartsWith(no) && c.full_name != null).ToArray();
         foreach (var item in entitys)
         {
             item.full_name = Utility.ReplyFullName(item.full_name, oldName, info.Name);
         }
         update = true;
     }
     if (!String.IsNullOrWhiteSpace(info.EnName) && entity.name_en != info.EnName.Trim())
     {
         var oldEnName = entity.name_en;
         entity.name_en = info.EnName.Trim();
         var entitys = _ClassesRepository.Entities.Where(c => c.no.StartsWith(no) && c.full_name_en != null).ToArray();
         foreach (var item in entitys)
         {
             item.full_name_en = Utility.ReplyFullName(item.full_name_en, oldEnName, info.EnName);
         }
         update = true;
     }
     if (entity.order_by != info.Order)
     {
         entity.order_by = info.Order;
         update = true;
     }
     if (!String.IsNullOrWhiteSpace(info.Introduce)&&info.Introduce.Trim()!=entity.introduce)
     {
         entity.introduce = info.Introduce.Trim();
         update = true;
     }
     if (!String.IsNullOrWhiteSpace(info.IndexImage) && info.IndexImage.Trim() != entity.indexImage)
     {
         var sourceId=FileId.FromFileId(info.IndexImage);
         if (sourceId.IsTempId)
         {
             var target = sourceId.ToStorageId();
             _FileManager.Copy(sourceId, target);
             sourceId = target;
         }
         entity.indexImage = sourceId.Id;
         update = true;
     }
     if (!String.IsNullOrWhiteSpace(info.ListImage) && info.ListImage.Trim() != entity.listImage)
     {
         var sourceId = FileId.FromFileId(info.ListImage);
         if (sourceId.IsTempId)
         {
             var target = sourceId.ToStorageId();
             _FileManager.Copy(sourceId, target);
             sourceId = target;
         }
         entity.listImage = sourceId.Id;
         update = true;
     }
     if (update)
         _ClassesRepository.SaveChanges();
 }