private void Save() { try { var line = (LineModel)cbLine.SelectedItem; var obj = new VideoScheduleModel(); obj.Id = oId; TimeSpan time = new TimeSpan(0, 0, 0); try { DateTime datetime = DateTime.Parse(txtStart.EditValue.ToString()); time = datetime.TimeOfDay; } catch { TimeSpan.TryParse(txtStart.EditValue.ToString(), out time); } obj.TimeStart = time; try { DateTime datetime = DateTime.Parse(txtEnd.EditValue.ToString()); time = datetime.TimeOfDay; } catch { TimeSpan.TryParse(txtEnd.EditValue.ToString(), out time); } obj.TimeEnd = time; obj.IsActive = chbIsActive.Checked; obj.LineId = line.MaChuyen; foreach (DataGridViewRow item in gridDetail.Rows) { int index = 0, videoId = 0; try { int.TryParse(item.Cells[1].Value.ToString(), out index); int.TryParse(item.Cells[2].Value.ToString(), out videoId); obj.Detail.Add(new P_PlayVideoSheduleDetail() { Id = 0, OrderIndex = index, VideoId = videoId }); } catch (Exception) { } } var result = BLLPlayVideoSchedule.CreateOrUpdate(obj); if (result.IsSuccess) { ResetForm(); GetDataToGridSchedule(); } else { MessageBox.Show(result.Messages[0].msg, result.Messages[0].Title); } } catch (Exception ex) { MessageBox.Show("Lỗi :" + ex.Message); } }
public static ResponseBase CreateOrUpdate(VideoScheduleModel objModel) { var result = new ResponseBase(); var flag = true; P_PlayVideoShedule pObj; P_PlayVideoSheduleDetail pObjDetail; try { var db = new PMSEntities(); if (objModel.Id == 0) { pObj = new P_PlayVideoShedule(); Parse.CopyObject(objModel, ref pObj); if (objModel.Detail.Count > 0) { pObj.P_PlayVideoSheduleDetail = new List <P_PlayVideoSheduleDetail>(); foreach (var item in objModel.Detail) { pObjDetail = new P_PlayVideoSheduleDetail(); Parse.CopyObject(item, ref pObjDetail); pObjDetail.P_PlayVideoShedule = pObj; pObj.P_PlayVideoSheduleDetail.Add(pObjDetail); } } db.P_PlayVideoShedule.Add(pObj); } else { pObj = db.P_PlayVideoShedule.FirstOrDefault(x => !x.IsDeleted && x.Id == objModel.Id); if (pObj != null) { pObj.TimeStart = objModel.TimeStart; pObj.TimeEnd = objModel.TimeEnd; pObj.IsActive = objModel.IsActive; var oldDetails = db.P_PlayVideoSheduleDetail.Where(x => !x.IsDeleted && !x.P_VideoLibrary.IsDeleted && x.VideoSheduleId == objModel.Id).ToList(); if (oldDetails.Count > 0 && objModel.Detail.Count > 0) { foreach (var item in oldDetails) { var obj = objModel.Detail.FirstOrDefault(x => x.VideoId == item.VideoId); if (obj != null) { item.OrderIndex = obj.OrderIndex; objModel.Detail.Remove(obj); } else { item.IsDeleted = true; } } if (objModel.Detail.Count > 0) { foreach (var item in objModel.Detail) { pObjDetail = new P_PlayVideoSheduleDetail(); Parse.CopyObject(item, ref pObjDetail); pObjDetail.VideoSheduleId = pObj.Id; db.P_PlayVideoSheduleDetail.Add(pObjDetail); } } } else if (oldDetails.Count > 0 && objModel.Detail.Count == 0) { foreach (var item in oldDetails) { item.IsDeleted = true; } } else if (oldDetails.Count == 0 && objModel.Detail.Count > 0) { foreach (var item in objModel.Detail) { pObjDetail = new P_PlayVideoSheduleDetail(); Parse.CopyObject(item, ref pObjDetail); pObjDetail.VideoSheduleId = pObj.Id; db.P_PlayVideoSheduleDetail.Add(pObjDetail); } } } else { result.IsSuccess = false; result.Messages.Add(new Message() { Title = "Thông Báo", msg = "Không tìm thấy thông tin tệp bạn đang thao tác." }); } } if (flag) { db.SaveChanges(); result.IsSuccess = true; result.Messages.Add(new Message() { Title = "Thông Báo", msg = "Lưu thành công." }); } } catch (Exception ex) { throw ex; } return(result); }