// GET: Home public ActionResult Index() { try { using (MassCodeEntities db = new MassCodeEntities()) { db.Configuration.LazyLoadingEnabled = true; db.Configuration.ProxyCreationEnabled = false; var context = db.Events.Select(x => x.AreaName).Distinct().AsQueryable(); //var context = db.Locations.Select(x => x.Lokasyon).Distinct().AsQueryable(); var pageModel = new EventSelectModel { AreaNames = context.ToList(), Sources = db.Events.Select(x => x.Source).Distinct().ToList() //Sources = db.Locations.Select(x => x.Point).Distinct().ToList() }; db.Dispose(); return(View(pageModel)); } } catch (Exception ex) { return(null); } //return View(); }
public JsonResult GetSource(EventSelectModel model, string AreaName) { var resultModel = new EventSelectModel(); try { using (MassCodeEntities db = new MassCodeEntities()) { db.Configuration.ProxyCreationEnabled = false; db.Configuration.LazyLoadingEnabled = true; if (AreaName == "All") { model.Sources = db.Events.Select(x => x.Source).Distinct().ToList(); } else { //var selected = db.Locations.FirstOrDefault(x => x.Lokasyon == AreaName); //string keyword = selected.Keyword; model.Sources = db.Events.Where(x => x.AreaName == AreaName).Select(x => x.Source).Distinct().ToList(); //model.Sources = db.Locations.Where(x => x.Lokasyon == AreaName).Select(x => x.Point).ToList(); } //var sourcePoints = db.Events.Where(x => x.AreaName == AreaName).AsQueryable(); //var sourceList = sourcePoints.Select(x => x.Source).Distinct().ToList(); //model.Sources.Add(item.Source); //model.Sources = db.Context.Events.Where(x => x.AreaName == AreaName).ToList(); } } catch (Exception ex) { } return(Json(model, JsonRequestBehavior.AllowGet)); }
public JsonResult GetEventDetail(DataTableModel <EventTableModel> model, DateTime endDate, DateTime startDate, string areaName, string sourceName, bool allArea, bool allSource, bool isMaxOne, bool isMaxTwo, bool isMinOne, bool isMinTwo, bool ishiRange, bool isloRange, bool isalrmFault, string searchQuery) { model.iSortingCols = 0; try { using (MassCodeEntities db = new MassCodeEntities()) { db.Configuration.LazyLoadingEnabled = true; db.Configuration.ProxyCreationEnabled = false; var context = db.Events.AsQueryable(); //var selected = db.Locations.FirstOrDefault(x => x.Lokasyon == areaName); //string keyword = selected.Keyword; //context = allArea ? context.Where(x => x.Source.Contains(keyword)) : context; context = allArea ? context.Where(x => x.AreaName == areaName) : context; context = allSource? context.Where(x => x.Source == sourceName):context; var datesofpoint = context.ToList(); if (startDate != null) { context = context.Where(x => x.EventDate >= startDate.Date); } datesofpoint = context.ToList(); if (endDate != null) { context = context.Where(x => x.EventDate <= endDate.Date); } datesofpoint = context.ToList(); //search if (!(string.IsNullOrEmpty(model.sSearch) || string.IsNullOrWhiteSpace(model.sSearch))) { context = context.Where(x => x.Source.Contains(model.sSearch)); } string[] searchQueryStrigns = !(string.IsNullOrEmpty(searchQuery) || string.IsNullOrWhiteSpace(searchQuery)) && searchQuery.Contains(",")?searchQuery.Split(','): searchQuery.Split('.'); if (!(string.IsNullOrEmpty(searchQuery) || string.IsNullOrWhiteSpace(searchQuery))) { if (searchQuery.Contains(".")) { int realSize = searchQueryStrigns.Length; Array.Resize(ref searchQueryStrigns, 6); for (int i = realSize; i < 6; i++) { searchQueryStrigns[i] = searchQueryStrigns[0]; } //queryStrings = true; //andOr = true; string firstStr = searchQueryStrigns[0]; string secondStr = searchQueryStrigns[1]; string thrdStr = searchQueryStrigns[2]; string fourthStr = searchQueryStrigns[3]; string fifthStr = searchQueryStrigns[4]; string sixthStr = searchQueryStrigns[5]; context = context.Where(x => x.Source.Contains(firstStr)); context = context.Where(x => x.Source.Contains(secondStr)); context = context.Where(x => x.Source.Contains(thrdStr)); context = context.Where(x => x.Source.Contains(fourthStr)); context = context.Where(x => x.Source.Contains(fifthStr)); context = context.Where(x => x.Source.Contains(sixthStr)); } else if (searchQuery.Contains(",")) { int realSize = searchQueryStrigns.Length; Array.Resize(ref searchQueryStrigns, 6); for (int i = realSize; i < 6; i++) { searchQueryStrigns[i] = searchQueryStrigns[0]; } string firstStr = searchQueryStrigns[0]; string secondStr = searchQueryStrigns[1]; string thrdStr = searchQueryStrigns[2]; string fourthStr = searchQueryStrigns[3]; string fifthStr = searchQueryStrigns[4]; string sixthStr = searchQueryStrigns[5]; context = context.Where(x => x.Source.Contains(firstStr) || x.Source.Contains(secondStr) || x.Source.Contains(thrdStr) || x.Source.Contains(fourthStr) || x.Source.Contains(fifthStr) || x.Source.Contains(sixthStr)); } else { context = context.Where(x => x.Source.Contains(searchQuery)); //queryStrings = false; //andOr = true; } } var list = new List <Event>(); var finalEventList = new List <EventTableModel>(); #region CreateRangeLists //var data = context.OrderBy(x => x.EventDate).ToList(); //var distData = db.Events.Select(y => y.Source).Distinct().ToList(); var maxOne = context.Where(x => x.ConditionName.Contains("MAX 1")).OrderBy(y => y.EventDate).ToList(); var maxTwo = context.Where(x => x.ConditionName.Contains("MAX 2")).OrderBy(y => y.EventDate).ToList(); var minOne = context.Where(x => x.ConditionName.Contains("MIN 1")).OrderBy(y => y.EventDate).ToList(); var minTwo = context.Where(x => x.ConditionName.Contains("MIN 2")).OrderBy(y => y.EventDate).ToList(); var hiRange = context.Where(x => x.ConditionName.Contains("HiRange") || x.ConditionName == "Range").OrderBy(y => y.EventDate).ToList(); var loRange = context.Where(x => x.ConditionName.Contains("LoRange")).OrderBy(y => y.EventDate).ToList(); var alarmList = context.Where(x => x.ConditionName == "Alarm" || x.ConditionName == "Return to Normal" || x.ConditionName == "Fault" || x.ConditionName == "Return to Normal (Fault)").OrderBy(y => y.EventDate).ToList(); var maxOneDist = maxOne.Select(x => x.Source).Distinct().ToList(); var maxTwoDist = maxTwo.Select(x => x.Source).Distinct().ToList(); var minOneDist = minOne.Select(x => x.Source).Distinct().ToList(); var minTwoDist = minTwo.Select(x => x.Source).Distinct().ToList(); var hiRangeDist = hiRange.Select(x => x.Source).Distinct().ToList(); var loRangeDist = loRange.Select(x => x.Source).Distinct().ToList(); var alrmDist = alarmList.Select(x => x.Source).Distinct().ToList(); #endregion #region FillRangetoList bool addAlarm = true; bool returnTo = false; if (isMaxOne) { foreach (var item in maxOneDist) { addAlarm = true; returnTo = false; foreach (var newItem in maxOne) { if (returnTo && newItem.Source == item && newItem.ConditionName == "MAX 1 normal") { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && (newItem.ConditionName == "MAX 1 alarm")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (isMaxTwo) { foreach (var item in maxTwoDist) { addAlarm = true; returnTo = false; foreach (var newItem in maxTwo) { if (returnTo && newItem.Source == item && newItem.ConditionName == "MAX 2 normal") { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && (newItem.ConditionName == "MAX 2 alarm")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (isMinOne) { foreach (var item in minOneDist) { addAlarm = true; returnTo = false; foreach (var newItem in minOne) { if (returnTo && newItem.Source == item && newItem.ConditionName == "MIN 1 normal") { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && (newItem.ConditionName == "MIN 1 alarm")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (isMinTwo) { foreach (var item in minTwoDist) { addAlarm = true; returnTo = false; foreach (var newItem in minTwo) { if (returnTo && newItem.Source == item && newItem.ConditionName == "MIN 2 normal") { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && (newItem.ConditionName == "MIN 2 alarm")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (ishiRange) { foreach (var item in hiRangeDist) { addAlarm = true; returnTo = false; foreach (var newItem in hiRange) { if (returnTo && newItem.Source == item && newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && !newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (isloRange) { foreach (var item in loRangeDist) { addAlarm = true; returnTo = false; foreach (var newItem in loRange) { if (returnTo && newItem.Source == item && newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && !newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } if (isalrmFault) { foreach (var item in alrmDist) { addAlarm = true; returnTo = false; foreach (var newItem in alarmList) { if (returnTo && newItem.Source == item && newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = true; returnTo = false; } else if (addAlarm && newItem.Source == item && !newItem.ConditionName.StartsWith("Return")) { list.Add(newItem); addAlarm = false; returnTo = true; } } } } #endregion #region Eskidata // Bu bölümden itibaren eski sartlar gecerli //foreach (var item in distData) //{ // addAlarm = true; // returnTo = false; // foreach (var newItem in data) // { // if (returnTo &&newItem.Source==item&& (newItem.ConditionName.StartsWith("Return")|| newItem.ConditionName.Contains("normal"))) // { // list.Add(newItem); // addAlarm = true; // returnTo = false; // } // else if (addAlarm &&newItem.Source==item && (!newItem.ConditionName.StartsWith("Return")||!newItem.ConditionName.Contains("normal"))) // { // list.Add(newItem); // addAlarm = false; // returnTo = true; // } // } //} #endregion var finalDistdata = list.Select(z => z.Source).Distinct().ToList(); foreach (var item in finalDistdata) { for (int i = 0; i < list.Count; i++) { bool recentSelectedItem = list[i].Source == item ? true : false; if (recentSelectedItem) { bool finalOne = list.Count - 1 == i ? true : false; var eventItem = new EventTableModel(); var alrm = list[i]; eventItem.Bolge = alrm.AreaName; eventItem.Aciklama = alrm.Description; eventItem.BaslamaZamani = alrm.EventDate.Value.ToString(); eventItem.Nokta = alrm.Source; bool sameType = false;; if (!(i == list.Count - 1)) { i++; sameType = alrm.ConditionName.Substring(0, 5) == list[i].ConditionName.Substring(0, 5) || alrm.ConditionName.Contains("Range") && list[i].ConditionName.Contains("Return") || alrm.ConditionName.Contains("Alarm") && list[i].ConditionName.Contains("Return") || alrm.ConditionName.Contains("Fault") && list[i].ConditionName.Contains("Return")? true : false; } bool chooseNext = false; if (!(list.Count == i) && (list[i].Source == item) && sameType) { chooseNext = true; } Event rtrn = chooseNext ? list[i]:alrm; string rtrnCond = chooseNext ? rtrn.ConditionName: "Devam Ediyor"; string rtrnReason = chooseNext ? rtrn.Reason:""; eventItem.Durum = alrm.ConditionName + " <br/> " + "" + rtrnCond; eventItem.EndDate = rtrn.EventDate.Value; eventItem.BitisZamani = chooseNext ? rtrn.EventDate.Value.ToString(): "Devam Ediyor"; eventItem.Sebep = alrm.Reason + " " + "" + rtrnReason; var dateDiff = rtrn.EventDate - alrm.EventDate; eventItem.TimeElapsed = !(chooseNext) ? "Devam Ediyor" : dateDiff.Value.Days.ToString() + " Gün <br/>" + dateDiff.Value.Hours.ToString() + " Saat <br/>" + dateDiff.Value.Minutes.ToString() + " Dakika <br/>" + dateDiff.Value.Seconds.ToString() + " Saniye"; finalEventList.Add(eventItem); i = chooseNext ? i : i - 1; i = finalOne ? i + 1 : i; } } } //var filterData = (from x in data // group x by new { x.Source, x.ConditionName } into G // select new // { // Source = G.Key.Source, // ConditionName = G.Key.ConditionName, // Condition = G.OrderBy(t => t.EventDate).FirstOrDefault() // }); //toplam kayıt sayısı model.iTotalDisplayRecords = finalEventList.Count(); var queryList = finalEventList.AsQueryable(); queryList = queryList.OrderBy(x => x.RecordId); //paging if (model.iDisplayLength > 0) { queryList = queryList.OrderBy(x => x.RecordId).Skip(model.iDisplayStart).Take(model.iDisplayLength); } //select model.aaData = queryList.Select(x => new EventTableModel() { //Bolge = db.a.FirstOrDefault(y => y.Point == x.Nokta).Lokasyon, Bolge = x.Bolge, Nokta = x.Nokta, Aciklama = x.Aciklama, Durum = x.Durum, Sebep = x.Sebep, BaslamaZamani = x.BaslamaZamani, BitisZamani = x.BitisZamani == "Devam Ediyor"? "<span class=\"badge badge-danger\">Devam Ediyor.</span>" : x.BitisZamani, StartDate = x.StartDate, TimeElapsed = x.TimeElapsed == "Devam Ediyor"? "<span class=\"badge badge-danger\">Devam Ediyor.</span>":x.TimeElapsed }).ToArray(); } } catch (Exception ex) { } return(Json(model, JsonRequestBehavior.AllowGet)); }