public IQueryable<AlertSettingViewModel> GetAlertSetting(String EventClass) { List<AlertSettingViewModel> ret = new List<AlertSettingViewModel>(); var qry = db.SystemSetting.Where(x => x.Seq != 0); if (EventClass != "" && db.SystemSetting.Where(x => x.EventClass == EventClass).Count() != 0) qry = db.SystemSetting.Where(x => x.EventClass == EventClass); else qry = db.SystemSetting.Where(x => x.EventClass == null); foreach (SystemSetting o in qry) { AlertSettingViewModel s = new AlertSettingViewModel(); s.AlertTimes = o.AlertTimes; s.EventClass = o.EventClass; s.isSysDefault = o.isSysDefault; s.Seq = o.Seq; s.TimeSetting = new List<AlertTimeSettingViewModel>(); s.HolidaySetting = new List<AlertHolidaySettingViewModel>(); s.DetailSetting = new List<AlertDetailSettingViewModel>(); var qry2 = db.AlertTimeSetting.Where(x => x.Seq != 0); if (EventClass != "" && db.AlertTimeSetting.Where(x => x.EventClass == EventClass).Count() != 0) qry2 = db.AlertTimeSetting.Where(x => x.EventClass == EventClass); else qry2 = db.AlertTimeSetting.Where(x => x.EventClass == null); foreach (AlertTimeSetting o2 in qry2) { AlertTimeSettingViewModel t = new AlertTimeSettingViewModel(); t.EventClass = o2.EventClass; t.isSysDefault = o2.isSysDefault; t.Seq = o2.Seq; t.Week = o2.Week; t.isAlert = o2.isAlert; t.StartTime = o2.StartTime; t.EndTime = o2.EndTime; t.StartTime2 = o2.StartTime2; t.EndTime2 = o2.EndTime2; t.StartTime3 = o2.StartTime3; t.EndTime3 = o2.EndTime3; s.TimeSetting.Add(t); } var qry3 = db.AlertHolidaySetting.Where(x => x.Seq != 0); if (EventClass != "" && db.AlertHolidaySetting.Where(x => x.EventClass == EventClass).Count() != 0) qry3 = db.AlertHolidaySetting.Where(x => x.EventClass == EventClass); else qry3 = db.AlertHolidaySetting.Where(x => x.EventClass == null); foreach (AlertHolidaySetting o3 in qry3) { AlertHolidaySettingViewModel h = new AlertHolidaySettingViewModel(); h.EventClass = o3.EventClass; h.isSysDefault = o3.isSysDefault; h.Seq = o3.Seq; h.EndDate = o3.EndDate; h.StartDate = o3.StartDate; h.isAlert = o3.isAlert; s.HolidaySetting.Add(h); } var qry4 = db.AlertDetailSetting.Where(x => x.Seq != 0); if (EventClass != "" && db.AlertDetailSetting.Where(x => x.EventClass == EventClass).Count() != 0) qry4 = db.AlertDetailSetting.Where(x => x.EventClass == EventClass); else qry4 = db.AlertDetailSetting.Where(x => x.EventClass == null); foreach (AlertDetailSetting o4 in qry4) { AlertDetailSettingViewModel d = new AlertDetailSettingViewModel(); d.EventClass = o4.EventClass; d.isSysDefault = o4.isSysDefault; d.Seq = o4.Seq; d.AlertEvent = o4.AlertEvent; d.FirstTime = o4.FirstTime; d.Memo = o4.Memo; d.SecondTime = o4.SecondTime; d.Times = o4.Times; s.DetailSetting.Add(d); } ret.Add(s); } return ret.AsQueryable(); }
public String SaveAlertSetting(AlertSettingViewModel Setting) { String ret = "false"; try { if (Setting.EventClass == null) { SystemSetting setting = db.SystemSetting.Find(db.SystemSetting.Where(x => x.EventClass == null).Select(x => x.Seq).First()); setting.AlertTimes = Setting.AlertTimes; db.SaveChanges(); var qry = db.AlertTimeSetting.Where(x => x.EventClass == null); foreach (AlertTimeSetting o in qry) { o.StartTime = Setting.TimeSetting[0].StartTime; o.StartTime2 = Setting.TimeSetting[0].StartTime2; o.StartTime3 = Setting.TimeSetting[0].StartTime3; o.EndTime = Setting.TimeSetting[0].EndTime; o.EndTime2 = Setting.TimeSetting[0].EndTime2; o.EndTime3 = Setting.TimeSetting[0].EndTime3; o.isAlert = Setting.TimeSetting[o.Week - 1].isAlert; } db.SaveChanges(); var qry2 = db.AlertHolidaySetting.Where(x => x.EventClass == null); foreach (AlertHolidaySetting o in qry2) { db.AlertHolidaySetting.Remove(o); } db.SaveChanges(); for (int k = 0; k < Setting.HolidaySetting.Count; k++) { AlertHolidaySetting hSetting = new AlertHolidaySetting(); hSetting.EventClass = null; hSetting.EndDate = Setting.HolidaySetting[k].EndDate.Date.AddHours(23).AddMinutes(59); hSetting.isSysDefault = true; hSetting.StartDate = Setting.HolidaySetting[k].StartDate.Date; hSetting.isAlert = Setting.HolidaySetting[k].isAlert; db.AlertHolidaySetting.Add(hSetting); db.SaveChanges(); } for (int k = 0; k < Setting.DetailSetting.Count; k++) { int temp = Setting.DetailSetting[k].AlertEvent; var qry3 = db.AlertDetailSetting.Where(x => x.EventClass == null && x.AlertEvent == temp); foreach (AlertDetailSetting o in qry3) { o.FirstTime = Setting.DetailSetting[k].FirstTime; if (Setting.DetailSetting[k].Memo == null) o.Memo = ""; else o.Memo = Setting.DetailSetting[k].Memo; o.SecondTime = Setting.DetailSetting[k].SecondTime; o.Times = Setting.DetailSetting[k].Times; } db.SaveChanges(); } ret = "true"; } else { if (Setting.isSysDefault) { SystemSetting setting = new SystemSetting(); setting.EventClass = Setting.EventClass; setting.AlertTimes = Setting.AlertTimes; setting.SugArriveMin = db.SystemSetting.Where(x => x.EventClass == null).Select(x => x.SugArriveMin).First(); setting.SugFinishMin = db.SystemSetting.Where(x => x.EventClass == null).Select(x => x.SugFinishMin).First(); setting.isSysDefault = false; db.SystemSetting.Add(setting); db.SaveChanges(); for (int k = 0; k < Setting.DetailSetting.Count; k++) { AlertDetailSetting dSetting = new AlertDetailSetting(); dSetting.EventClass = Setting.DetailSetting[k].EventClass; dSetting.AlertEvent = Setting.DetailSetting[k].AlertEvent; dSetting.FirstTime = Setting.DetailSetting[k].FirstTime; if (Setting.DetailSetting[k].Memo==null) dSetting.Memo = ""; else dSetting.Memo = Setting.DetailSetting[k].Memo; dSetting.SecondTime = Setting.DetailSetting[k].SecondTime; dSetting.isSysDefault = false; dSetting.Times = Setting.DetailSetting[k].Times; db.AlertDetailSetting.Add(dSetting); db.SaveChanges(); } ret = "true"; } else { SystemSetting setting = db.SystemSetting.Find(db.SystemSetting.Where(x => x.EventClass == Setting.EventClass).Select(x => x.Seq).First()); setting.AlertTimes = Setting.AlertTimes; db.SaveChanges(); for (int k = 0; k < Setting.DetailSetting.Count; k++) { int temp = Setting.DetailSetting[k].AlertEvent; var qry = db.AlertDetailSetting.Where(x => x.EventClass == Setting.EventClass && x.AlertEvent == temp); foreach (AlertDetailSetting o in qry) { o.FirstTime = Setting.DetailSetting[k].FirstTime; if (Setting.DetailSetting[k].Memo == null) o.Memo = ""; else o.Memo = Setting.DetailSetting[k].Memo; o.SecondTime = Setting.DetailSetting[k].SecondTime; o.Times = Setting.DetailSetting[k].Times; } db.SaveChanges(); } ret = "true"; } if (Setting.TimeSetting[0].isSysDefault) { for (int k = 0; k < 7; k++) { AlertTimeSetting aSetting = new AlertTimeSetting(); aSetting.EventClass = Setting.TimeSetting[k].EventClass; aSetting.EndTime = Setting.TimeSetting[k].EndTime; aSetting.EndTime2 = Setting.TimeSetting[k].EndTime2; aSetting.EndTime3 = Setting.TimeSetting[k].EndTime3; aSetting.isAlert = Setting.TimeSetting[k].isAlert; aSetting.isSysDefault = false; aSetting.StartTime = Setting.TimeSetting[k].StartTime; aSetting.StartTime2 = Setting.TimeSetting[k].StartTime2; aSetting.StartTime3 = Setting.TimeSetting[k].StartTime3; aSetting.Week = Setting.TimeSetting[k].Week; db.AlertTimeSetting.Add(aSetting); db.SaveChanges(); } ret = "true"; } else { var qry = db.AlertTimeSetting.Where(x => x.EventClass == Setting.EventClass); foreach (AlertTimeSetting o in qry) { o.StartTime = Setting.TimeSetting[0].StartTime; o.StartTime2 = Setting.TimeSetting[0].StartTime2; o.StartTime3 = Setting.TimeSetting[0].StartTime3; o.EndTime = Setting.TimeSetting[0].EndTime; o.EndTime2 = Setting.TimeSetting[0].EndTime2; o.EndTime3 = Setting.TimeSetting[0].EndTime3; o.isAlert = Setting.TimeSetting[o.Week - 1].isAlert; } db.SaveChanges(); ret = "true"; } var qry2 = db.AlertHolidaySetting.Where(x => x.EventClass == Setting.EventClass); foreach (AlertHolidaySetting o in qry2) { db.AlertHolidaySetting.Remove(o); } db.SaveChanges(); for (int k = 0; k < Setting.HolidaySetting.Count; k++) { AlertHolidaySetting hSetting = new AlertHolidaySetting(); hSetting.EventClass = Setting.EventClass; hSetting.EndDate = Setting.HolidaySetting[k].EndDate.Date.AddHours(23).AddMinutes(59); hSetting.isSysDefault = false; hSetting.StartDate = Setting.HolidaySetting[k].StartDate.Date; hSetting.isAlert = Setting.HolidaySetting[k].isAlert; db.AlertHolidaySetting.Add(hSetting); db.SaveChanges(); } } } catch { ret = "false"; } return ret; }