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); }
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(); } }
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(); }
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(); }
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(); } }
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); }
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); }
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(); }