Example #1
0
 public void UpdateSegment(Segment oldSegment, Segment newSegment)
 {
     if (oldSegment == null || newSegment == null)
     {
         string error = "oldSegment 和 newSegment 都不能为空";
         throw new ArgumentNullException(error);
     }
     int row = _dal.UpdateSegment(oldSegment, newSegment);
 }
Example #2
0
        public void AddSegment(Segment segment)
        {
            if (segment == null)
            {
                throw new ArgumentNullException("segment");
            }

            int row = _dal.AddSegment(segment);
            if (row <= 0)
            {
                string.Format("新增段落:{0}失败", segment.Name).ThrowException();
            }
        }
Example #3
0
 public int DeleteSegment(Segment segment)
 {
     var sgmnts = from sgmnt in _dbContext.Segments
                  where
                     sgmnt.ChapterId == segment.ChapterId &&
                     sgmnt.SeqNo > segment.SeqNo
                  select sgmnt;
     foreach (var sgmnt in sgmnts)
     {
         sgmnt.SeqNo -= 1L;
         _dbContext.Entry(sgmnt).State = EntityState.Modified;
     }
     _dbContext.Entry(segment).State = EntityState.Deleted;
     return _dbContext.SaveChanges();
 }
Example #4
0
 public int AddSegment(Segment segment)
 {
     var sgmnts = from sgmnt in _dbContext.Segments
                  where
                      sgmnt.ChapterId == segment.ChapterId &&
                      sgmnt.SeqNo >= segment.SeqNo
                  select sgmnt;
     Segment first = sgmnts.FirstOrDefault();
     if (first != null && first.SeqNo == segment.SeqNo)
     {
         foreach (var sgmnt in sgmnts)
         {
             sgmnt.SeqNo += 1L;
             _dbContext.Entry(sgmnt).State = EntityState.Modified;
         }
     }
     _dbContext.Entry(segment).State = EntityState.Added;
     return _dbContext.SaveChanges();
 }
Example #5
0
        public void DeleteSegment(long segmentId)
        {
            Segment segment = new SegmentBll(new HengNuoWangDBContext()).GetSegment(segmentId);
            if (segment == null)
            {
                string.Format("不存在指定segmentId:{0}的段落", segmentId).ThrowException();
            }

            Segment sgmnt = new Segment()
            {
                Id = segment.Id,
                SeqNo = segment.SeqNo,
                ChapterId = segment.ChapterId,
            };
            int row = _dal.DeleteSegment(sgmnt);

            if (row <= 0)
            {
                string.Format("删除段落segmentId:{0}失败", segment.Id).ThrowException();
            }
        }
Example #6
0
 public JsonResult AddNew()
 {
     // 检查请求
     string segmentName = Request["name"];       // <=50
     long seqNo, chptrId;                        // >0
     string videoCode = Request["vidcd"];
     string note = Request["note"];              // 可空
     Chapter chapter;
     if (CommonHelper.IsNullOrEmptyOrWhiteSpace(segmentName, videoCode) ||
         segmentName.Length > 50 ||
         !long.TryParse(Request["seqno"], out seqNo) || seqNo <= 0 ||
         !long.TryParse(Request["chptrid"], out chptrId) ||
         (chapter = _chapterBll.GetChapter(chptrId)) == null)
     {
         return JsonHelper.GetJsonResult(_ERROR, "段落名称 或 序号 或 视频代码 错误");
     }
     Segment segment = new SegmentBll(new HengNuoWangDBContext()).GetSegment(segmentName);
     if (segment != null)
     {
         return JsonHelper.GetJsonResult(_ERROR, "段落名称已经存在");
     }
     // 新增
     segment = new Segment()
     {
         // Id = 
         Name = segmentName,
         SeqNo = seqNo,
         VideoCode = videoCode,
         Note = note,
         ChapterId = chapter.Id,
     };
     _segmentBll.AddSegment(segment);
     // 记录日志
     string log = string.Format("新增段落‘{0}’:序号‘{1}’;所属章节‘{2}’:{3}",
         segment.Name, segment.SeqNo, segment.ChapterId, chapter.Name);
     AdminOperationLogBll.AddAdminOperationLog(AdminUserId, log);
     // 跳转
     string url = string.Format("/Segment/List/{0}", segment.ChapterId);
     return JsonHelper.GetJsonResult(_OK, "新增段落成功", url);
 }
Example #7
0
        public JsonResult Edit(long id)
        {
            Segment oldSegment = new SegmentBll(new HengNuoWangDBContext()).GetSegment(segmentId: id);
            if (oldSegment == null)
            {
                return JsonHelper.GetJsonResult(_ERROR, "段落不存在");
            }
            Chapter oldChapter = new ChapterBll(new HengNuoWangDBContext()).GetChapter(oldSegment.ChapterId);

            string segmentName = Request["name"];
            long seqNo, chptrId;
            string videoCode = Request["vidcd"];
            string note = Request["note"];
            Chapter newChapter;
            if (CommonHelper.IsNullOrEmptyOrWhiteSpace(segmentName, videoCode) ||
                segmentName.Length > 50 ||
                !long.TryParse(Request["seqno"], out seqNo) || seqNo <= 0 ||
                !long.TryParse(Request["chptrid"], out chptrId) ||
                (newChapter = _chapterBll.GetChapter(chptrId)) == null)
            {
                return JsonHelper.GetJsonResult(_ERROR, "段落名称 或 序号 或 视频代码 错误");
            }
            Segment sgmnt = new SegmentBll(new HengNuoWangDBContext()).GetSegment(segmentName);
            if (sgmnt != null && sgmnt.Id != oldSegment.Id)
            {
                return JsonHelper.GetJsonResult(_ERROR, "段落名称已经存在");
            }
            // 更新
            Segment newSegment = new Segment()
            {
                Id = oldSegment.Id,
                Name = segmentName,
                SeqNo = seqNo,
                VideoCode = videoCode,
                Note = note,
                ChapterId = newChapter.Id,
            };
            _segmentBll.UpdateSegment(oldSegment, newSegment);
            // 记录日志
            string log = string.Format("更新段落‘{0}’:【名称‘{1}=>{2}’;所属章节‘{3}=>{4}’;序号‘{5}=>{6}’】",
                newSegment.Id, oldSegment.Name, newSegment.Name,
                oldChapter.Name, newChapter.Name, oldSegment.SeqNo, newSegment.SeqNo);
            AdminOperationLogBll.AddAdminOperationLog(AdminUserId, log);
            string url = string.Format("/Segment/List/{0}", newSegment.ChapterId);
            return JsonHelper.GetJsonResult(_OK, "更新成功", url);
        }
Example #8
0
 public int UpdateSegment(Segment oldSegment, Segment newSegment)
 {
     if (oldSegment.ChapterId == newSegment.ChapterId)
     {
         if (oldSegment.SeqNo > newSegment.SeqNo)        // SeqNo变小 [newSeqNo, oldSeqNo)++
         {
             var sgmnts = from segment in _dbContext.Segments
                          where
                              segment.ChapterId == newSegment.ChapterId &&
                              segment.SeqNo >= newSegment.SeqNo &&
                              segment.SeqNo < oldSegment.SeqNo
                          select segment;
             foreach (var sgmnt in sgmnts)
             {
                 sgmnt.SeqNo += 1L;
                 _dbContext.Entry(sgmnt).State = EntityState.Modified;
             }
         }
         else if (oldSegment.SeqNo < newSegment.SeqNo)   // SeqNo变大 (oldSeqNo, newSeqNo]--
         {
             var sgmnts = from segment in _dbContext.Segments
                          where
                              segment.ChapterId == newSegment.ChapterId &&
                              segment.SeqNo > oldSegment.SeqNo &&
                              segment.SeqNo <= newSegment.SeqNo
                          select segment;
             foreach (var sgmnt in sgmnts)
             {
                 sgmnt.SeqNo -= 1L;
                 _dbContext.Entry(sgmnt).State = EntityState.Modified;
             }
         }
     }
     else
     {
         // 原属章节 >oldSegment.SeqNo --
         var oldSgmnts = from segment in _dbContext.Segments
                         where
                             segment.ChapterId == oldSegment.ChapterId &&
                             segment.SeqNo > oldSegment.SeqNo
                         select segment;
         foreach (var sgmnt in oldSgmnts)
         {
             sgmnt.SeqNo -= 1L;
             _dbContext.Entry(sgmnt).State = EntityState.Modified;
         }
         // 现属章节 >=newSegment.SeqNo ++
         var newSgmnts = from segment in _dbContext.Segments
                         where
                             segment.ChapterId == newSegment.ChapterId &&
                             segment.SeqNo >= newSegment.SeqNo
                         select segment;
         foreach (var sgmnt in newSgmnts)
         {
             sgmnt.SeqNo += 1L;
             _dbContext.Entry(sgmnt).State = EntityState.Modified;
         }
     }
     _dbContext.Entry(newSegment).State = EntityState.Modified;
     return _dbContext.SaveChanges();
 }