public NUMBER_FORMAT_DTO ConvertNumberFormatMinute(string date) { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime selectDate = DateTime.Parse(date); string _convertDate = ""; string _year = selectDate.Year.ToString(); string _month = selectDate.Month.ToString(); string _day = selectDate.Day.ToString(); if (_month.Length < 2) { _month = "0" + selectDate.Month.ToString(); } if (_day.Length < 2) { _day = "0" + selectDate.Day.ToString(); } _convertDate = _year + _month + _day; string _strDateBegin = _convertDate + "0400"; string _strDateEnd = _convertDate + "2100"; NUMBER_FORMAT_DTO ndto = new NUMBER_FORMAT_DTO(); ndto._begin = Convert.ToInt64(_strDateBegin); ndto._end = Convert.ToInt64(_strDateEnd); return(ndto); }
public JsonResult GetChartUnitDetail(string beginDate, int stationId) { try { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormat(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime selectDate = DateTime.Parse(@beginDate); int[] ib = DB.Inverters.Where(a => a.STATION_ID == stationId).Select(n => n.ID).ToArray(); var _count = ib.Count(); UnitlistDTO invD = new UnitlistDTO(); invD.units = (from s in DB.UnitSums where s.STATION_ID == stationId && ib.Contains(s.UNIT_ID) && s.DATE_NUMBER >= _numberDateBegin && s.DATE_NUMBER <= _numberDateEnd orderby s.DATE_NUMBER ascending select new TBL_UNIT_OZET_CHART_DTO { INSERT_DATE = s.INSERT_DATE, WP_MINUS_DAILY = s.WP_MINUS_DAILY, WP_MINUS_TOTAL = s.WP_MINUS_TOTAL, WP_PLUS_DAILY = s.WP_PLUS_DAILY, WP_PLUS_TOTAL = s.WP_PLUS_TOTAL, REACTIVE_POWER = s.REACTIVE_POWER, VISIBLE_POWER = s.VISIBLE_POWER, FREQUENCY = s.FREQUENCY, IA = s.IA, IB = s.IB, IC = s.IC, TEMPERATURE1 = s.TEMPERATURE1, TEMPERATURE2 = s.TEMPERATURE2, TEMPERATURE3 = s.TEMPERATURE3, TEMPERATURE4 = s.TEMPERATURE4, TEMPERATURE5 = s.TEMPERATURE5, TEMPERATURE6 = s.TEMPERATURE6, GEN_TEMPERATURE1 = s.GEN_TEMPERATURE1, GEN_TEMPERATURE2 = s.GEN_TEMPERATURE2, GEN_TEMPERATURE3 = s.GEN_TEMPERATURE3, GEN_TEMPERATURE4 = s.GEN_TEMPERATURE4, GEN_TEMPERATURE5 = s.GEN_TEMPERATURE5, GEN_TEMPERATURE6 = s.GEN_TEMPERATURE6, SPEED = s.SPEED, VAB = s.VAB, VBC = s.VBC, VCA = s.VCA, ACTIVE_POWER = s.ACTIVE_POWER, UNIT_ID = s.UNIT_ID } ).ToList(); return(Json(invD)); } catch (Exception ex) { return(Json("{ err:" + ex.Message + "}", JsonRequestBehavior.AllowGet)); } }
public JsonResult GetChartInverterDetail(string beginDate, int stationId) { try { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormat(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime selectDate = DateTime.Parse(@beginDate); int[] ib = DB.Inverters.Where(a => a.STATION_ID == stationId).Select(n => n.ID).ToArray(); var _count = ib.Count(); InvlistDTO invD = new InvlistDTO(); invD.inverters = (from p in DB.InvSums where p.STATION_ID == stationId && ib.Contains(p.Inv_Id) && p.TARIH_NUMBER >= _numberDateBegin && p.TARIH_NUMBER <= _numberDateEnd orderby p.Tarih ascending select new InverterDetailDTO { STATION_ID = p.STATION_ID, Inv_Id = p.Inv_Id, Tarih = p.Tarih.Value, Guc_AC = p.Guc_AC.Value, Guc_DC = p.Guc_DC.Value, Akim_AC = p.Akim_AC.Value, Akim_DC = p.Akim_DC.Value, Gerilim_AC = p.Gerilim_AC.Value, Gerilim_DC = p.Gerilim_DC.Value, InverterProduction = p.Gunluk_Enerji.Value } ).ToList(); //var timeLine= invD.inverters.GroupBy(grp=>grp.Tarih.ToString("dd/MM/yyyy H:mm")).ToList(); return(Json(invD)); } catch (Exception ex) { return(Json("{ err:" + ex.Message + "}", JsonRequestBehavior.AllowGet)); } }
public JsonResult GetOnlyInv(string invId, int stationId, string beginDate) { try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime nowDate = DateTime.Parse(@beginDate); NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormat(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; int id = Convert.ToInt32(invId); var invOnly = (from i in DB.InvSums where i.Inv_Id == id && i.STATION_ID == stationId && i.TARIH_NUMBER >= _numberDateBegin && i.TARIH_NUMBER <= _numberDateEnd orderby i.Tarih ascending select new InverterDetailDTO { STATION_ID = i.STATION_ID, Inv_Id = i.Inv_Id, Tarih = i.Tarih.Value, Guc_AC = i.Guc_AC.Value, Guc_DC = i.Guc_DC.Value, Akim_AC = i.Akim_AC.Value, Akim_DC = i.Akim_DC.Value, Gerilim_AC = i.Gerilim_AC.Value, Gerilim_DC = i.Gerilim_DC.Value, InverterProduction = i.Gunluk_Enerji.Value }).ToList(); return(Json(invOnly)); } catch (Exception ex) { return(Json("{ err:" + ex.Message + "}", JsonRequestBehavior.AllowGet)); } }
public JsonResult GetInvString(int stationId, string beginDate, string invNo) { StringPerformanceView _strModel = new StringPerformanceView(); try { CultureHelper.SetCultureInfo(); DateTime date = DateTime.Parse(beginDate); DateTime curDate = DateTime.Now; _strModel.strModel = new StringModel(); List <String_Hour_DTO> values = new List <String_Hour_DTO>(); int _invNo = int.Parse(invNo); string invStrName = "DCB" + _invNo; if (curDate.Date.Year == date.Date.Year && curDate.Date.Month == date.Date.Month) { NUMBER_FORMAT_DTO convertFormat = DateTimeHelper.ConvertNumberFormatMinute(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; values = (from u in DB.StringOzetQuarterHourAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <= u.TARIH_NUMBER && _numberDateEnd >= u.TARIH_NUMBER && v.DISPLAY_NAME.StartsWith(invStrName) orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = v.DISPLAY_NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); var stringNameList = values.OrderBy(a => a.NAME) .Select(a => a.NAME) .Distinct() .ToList(); foreach (var item in stringNameList) { _strModel.strModel.StringList.Add(item.Substring(8, 7).Replace("_", "")); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 4)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); DateTime EndDate = DateTime.Now.Date; TimeSpan tEndDate = new TimeSpan((int.Parse(groupTime[groupTime.Length - 1].Substring(0, 2))), (int.Parse(groupTime[groupTime.Length - 1].Substring(2, 2))), 0); EndDate = EndDate.Date + tEndDate; DateTime LastDate = EndDate; TimeSpan tLastDate = new TimeSpan(21, 0, 0); LastDate = LastDate.Date + tLastDate; for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i]); } while (EndDate < LastDate) { EndDate = EndDate.AddMinutes(15); _strModel.strModel.Hours.Add(DateTimeHelper.HourMinuteFormat(EndDate)); } var groupList = values.OrderBy(a => a.NAME).GroupBy(a => a.NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round(i.Max(a => a.VALUE), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } else { NUMBER_FORMAT_DTO convertFormat = DateTimeHelper.ConvertNumberFormatHour(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; values = (from u in DB.StringOzetAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <u.TARIH_NUMBER && _numberDateEnd> u.TARIH_NUMBER && v.DISPLAY_NAME.StartsWith(invStrName) orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = v.DISPLAY_NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); var stringNameList = values.OrderBy(a => a.NAME) .Select(a => a.NAME) .Distinct() .ToList(); foreach (var item in stringNameList) { _strModel.strModel.StringList.Add(item.Substring(8, 7).Replace("_", "")); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 2)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i] + "00"); } for (int i = endHour + 1; i < 21; i++) { if (!groupTime.Contains(i.ToString())) { _strModel.strModel.Hours.Add(i.ToString() + "00"); } } var groupList = values.OrderBy(a => a.NAME).GroupBy(a => a.NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round(i.Max(a => a.VALUE), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } } catch (Exception ex) { _strModel.ErrorMessage = ex.ToString(); } return(Json(_strModel, JsonRequestBehavior.AllowGet)); }
public JsonResult HourlyColorReport(int stationId, string slctDate) { StringPerformanceView _strModel = new StringPerformanceView(); try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime date = DateTime.Parse(@slctDate); DateTime curDate = DateTime.Now; List <TempDTO> strTagNames = DB.stationString .Join(DB.Tags, r => r.STRING_ID, ro => ro.ID, (r, ro) => new { r, ro }) .Where(x => x.r.STATION_ID == stationId && x.r.DISPLAY_NAME.Contains("temp") == false && x.r.IS_DELETED == false) .GroupBy(x => x.r.DISPLAY_NAME) .Select(g => new TempDTO { NAME = g.Key, ID = g.FirstOrDefault().ro.ID }).OrderBy(o => o.NAME) .ToList(); _strModel.strModel = new StringModel(); List <String_Hour_DTO> values = new List <String_Hour_DTO>(); List <String_Hour_DTO> valuesTemp = new List <String_Hour_DTO>(); if (curDate.Date.Year == date.Date.Year && curDate.Date.Month == date.Date.Month) { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatMinute(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; valuesTemp = (from u in DB.StringOzetQuarterHourAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID join t in DB.Tags on v.STRING_ID equals t.ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <= u.TARIH_NUMBER && _numberDateEnd >= u.TARIH_NUMBER orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = t.NAME, DISPLAY_NAME = v.DISPLAY_NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); foreach (var item in valuesTemp.GroupBy(gg => gg.TARIH_NUMBER).ToList()) { foreach (var item2 in strTagNames) { var vv = valuesTemp.Where(w => w.TARIH_NUMBER == item.Key && w.ID == item2.ID).FirstOrDefault(); values.Add(vv); } } foreach (var item in strTagNames) { _strModel.strModel.StringList.Add(item.NAME); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 4)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); DateTime EndDate = DateTime.Now.Date; TimeSpan tEndDate = new TimeSpan((int.Parse(groupTime[groupTime.Length - 1].Substring(0, 2))), (int.Parse(groupTime[groupTime.Length - 1].Substring(2, 2))), 0); EndDate = EndDate.Date + tEndDate; DateTime LastDate = EndDate; TimeSpan tLastDate = new TimeSpan(21, 0, 0); LastDate = LastDate.Date + tLastDate; for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i]); } while (EndDate < LastDate) { EndDate = EndDate.AddMinutes(15); _strModel.strModel.Hours.Add(HourMinuteFormat(EndDate)); } //VALUE SIRALAMA var groupList = values.GroupBy(a => a.DISPLAY_NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round((i.Max(a => a.VALUE)), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } else { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatHour(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; valuesTemp = (from u in DB.StringOzetAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID join t in DB.Tags on v.STRING_ID equals t.ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <u.TARIH_NUMBER && _numberDateEnd> u.TARIH_NUMBER orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = t.NAME, DISPLAY_NAME = v.DISPLAY_NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); foreach (var item in valuesTemp.GroupBy(gg => gg.TARIH_NUMBER).ToList()) { foreach (var item2 in strTagNames) { var vv = valuesTemp.Where(w => w.TARIH_NUMBER == item.Key && w.ID == item2.ID).FirstOrDefault(); values.Add(vv); } } foreach (var item in strTagNames) { _strModel.strModel.StringList.Add(item.NAME); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 2)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i] + "00"); } for (int i = endHour + 1; i < 21; i++) { if (!groupTime.Contains(i.ToString())) { _strModel.strModel.Hours.Add(i.ToString() + "00"); } } //VALUE SIRALAMA var groupList = values.GroupBy(a => a.DISPLAY_NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round((i.Max(a => a.VALUE)), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } } catch (Exception ex) { _strModel.ErrorMessage = ex.ToString(); } return(Json(_strModel)); }
public JsonResult HourlyColorReport(int stationId, string slctDate) { StringPerformanceView _strModel = new StringPerformanceView(); try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime date = DateTime.Parse(@slctDate); DateTime curDate = DateTime.Now; _strModel.strModel = new StringModel(); List <String_Hour_DTO> values = new List <String_Hour_DTO>(); if (curDate.Date == date.Date) { values = DB.VWStringOzetDaily.Where(p => p.STATION_ID == stationId).Select(a => new String_Hour_DTO { NAME = a.DISPLAY_NAME, ID = a.STRING_ID, date = a.INSERT_DATE, VALUE = a.VALUE, } ).ToList(); var stringlist1 = values.OrderBy(a => a.NAME) .Select(a => a.NAME) .Distinct() .ToList(); foreach (var item in stringlist1) { _strModel.strModel.StringList.Add(item.Substring(8, 6)); } var list1_ = new List <Values>(); var groupList1 = values.OrderBy(a => a.NAME).GroupBy(a => a.NAME).ToList(); string[] groupTime = values.GroupBy(grp => grp.date).Select(a => a.Key.Split(' ')[1]).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i]); } for (int i = endHour + 1; i < 21; i++) { if (!groupTime.Contains(i.ToString())) { _strModel.strModel.Hours.Add(i.ToString()); } } foreach (var item in groupList1) { var list1 = new Values(); foreach (var i in item.OrderBy(a => a.date).GroupBy(grp => grp.date).ToList()) { list1.values.Add((float)Math.Round((float)i.Max(a => a.VALUE), 2)); } list1_.Add(list1); } _strModel.strModel.series = list1_.ToList(); _strModel.ErrorMessage = ""; } else { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatHour(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; values = (from u in DB.StringOzetAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <u.TARIH_NUMBER && _numberDateEnd> u.TARIH_NUMBER orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = v.DISPLAY_NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); var stringNameList = values.OrderBy(a => a.NAME) .Select(a => a.NAME) .Distinct() .ToList(); foreach (var item in stringNameList) { _strModel.strModel.StringList.Add(item.Substring(8, 6)); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 2)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i]); } for (int i = endHour + 1; i < 21; i++) { if (!groupTime.Contains(i.ToString())) { _strModel.strModel.Hours.Add(i.ToString()); } } var groupList = values.OrderBy(a => a.NAME).GroupBy(a => a.NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round(i.Max(a => a.VALUE), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } } catch (Exception ex) { _strModel.ErrorMessage = ex.ToString(); } return(Json(_strModel)); }
public JsonResult HourlyColorReport2(int stationId, string slctDate) { StringPerformanceView _strModel = new StringPerformanceView(); try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime date = DateTime.Parse(@slctDate); DateTime curDate = DateTime.Now; _strModel.strModel = new StringModel(); List <String_Hour_DTO> values = new List <String_Hour_DTO>(); if (curDate.Date.Year == date.Date.Year && curDate.Date.Month == date.Date.Month) { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatMinute(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; values = (from u in DB.StringOzetQuarterHourAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID join t in DB.Tags on v.STRING_ID equals t.ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <= u.TARIH_NUMBER && _numberDateEnd >= u.TARIH_NUMBER orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = t.NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); /////// List <TempDTO> strTagNames = values .GroupBy(x => x.NAME) .Select(g => new TempDTO { NAME = g.Key, ID = g.FirstOrDefault().ID, TARIH_NUMBER = g.FirstOrDefault().TARIH_NUMBER, VALUE = g.FirstOrDefault().VALUE }) .ToList(); for (int i = 0; i < strTagNames.Count; i++) { strTagNames[i].INPUT_NO = Convert.ToInt32(strTagNames[i].NAME.Split('_')[3].Replace(".", "")); strTagNames[i].INV_NO = Convert.ToInt32(strTagNames[i].NAME.Split('_')[0].Replace("INV", "")); } strTagNames = strTagNames.OrderBy(x => x.INV_NO).ThenBy(x => x.INPUT_NO).ToList(); //// foreach (var item in strTagNames) { _strModel.strModel.StringList.Add(item.NAME); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 4)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); DateTime EndDate = DateTime.Now.Date; TimeSpan tEndDate = new TimeSpan((int.Parse(groupTime[groupTime.Length - 1].Substring(0, 2))), (int.Parse(groupTime[groupTime.Length - 1].Substring(2, 2))), 0); EndDate = EndDate.Date + tEndDate; DateTime LastDate = EndDate; TimeSpan tLastDate = new TimeSpan(21, 0, 0); LastDate = LastDate.Date + tLastDate; for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i]); } while (EndDate < LastDate) { EndDate = EndDate.AddMinutes(15); _strModel.strModel.Hours.Add(HourMinuteFormat(EndDate)); } //VALUE SIRALAMA List <TempDTO> strValue = values .Select(g => new TempDTO { NAME = g.NAME, ID = g.ID, VALUE = g.VALUE, TARIH_NUMBER = g.TARIH_NUMBER }) .ToList(); for (int i = 0; i < strValue.Count; i++) { strValue[i].INPUT_NO = Convert.ToInt32(strValue[i].NAME.Split('_')[3].Replace(".", "")); strValue[i].INV_NO = Convert.ToInt32(strValue[i].NAME.Split('_')[0].Replace("INV", "")); strValue[i].VALUE = strValue[i].VALUE; strValue[i].TARIH_NUMBER = strValue[i].TARIH_NUMBER; } strValue = strValue.OrderBy(x => x.INV_NO).ThenBy(x => x.INPUT_NO).ToList(); var groupList = strValue.GroupBy(a => a.NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round(i.Max(a => a.VALUE.Value), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } else { NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatHour(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; values = (from u in DB.StringOzetAVG join v in DB.stationString on u.STRING_ID equals v.STRING_ID join t in DB.Tags on v.STRING_ID equals t.ID where v.IS_DELETED == false && v.STATION_ID == stationId && u.STATION_ID == stationId && _numberDateBegin <u.TARIH_NUMBER && _numberDateEnd> u.TARIH_NUMBER orderby u.TARIH_NUMBER ascending select new String_Hour_DTO { NAME = t.NAME, ID = u.STRING_ID, TARIH_NUMBER = u.TARIH_NUMBER.Value, VALUE = u.VALUE }).ToList(); /////// List <TempDTO> strTagNames = values .GroupBy(x => x.NAME) .Select(g => new TempDTO { NAME = g.Key, ID = g.FirstOrDefault().ID, TARIH_NUMBER = g.FirstOrDefault().TARIH_NUMBER, VALUE = g.FirstOrDefault().VALUE }) .ToList(); for (int i = 0; i < strTagNames.Count; i++) { strTagNames[i].INPUT_NO = Convert.ToInt32(strTagNames[i].NAME.Split('_')[3].Replace(".", "")); strTagNames[i].INV_NO = Convert.ToInt32(strTagNames[i].NAME.Split('_')[0].Replace("INV", "")); } strTagNames = strTagNames.OrderBy(x => x.INV_NO).ThenBy(x => x.INPUT_NO).ToList(); //// foreach (var item in strTagNames) { _strModel.strModel.StringList.Add(item.NAME); } var valueList = new List <Values>(); string[] groupTime = values.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).Select(a => a.Key.ToString().Substring(8, 2)).ToArray(); int endHour = int.Parse(groupTime[groupTime.Length - 1]); for (int i = 0; i < groupTime.Length; i++) { _strModel.strModel.Hours.Add(groupTime[i] + "00"); } for (int i = endHour + 1; i < 21; i++) { if (!groupTime.Contains(i.ToString())) { _strModel.strModel.Hours.Add(i.ToString() + "00"); } } //VALUE SIRALAMA List <TempDTO> strValue = values .Select(g => new TempDTO { NAME = g.NAME, ID = g.ID, VALUE = g.VALUE, TARIH_NUMBER = g.TARIH_NUMBER }) .ToList(); for (int i = 0; i < strValue.Count; i++) { strValue[i].INPUT_NO = Convert.ToInt32(strValue[i].NAME.Split('_')[3].Replace(".", "")); strValue[i].INV_NO = Convert.ToInt32(strValue[i].NAME.Split('_')[0].Replace("INV", "")); strValue[i].VALUE = strValue[i].VALUE; strValue[i].TARIH_NUMBER = strValue[i].TARIH_NUMBER; } strValue = strValue.OrderBy(x => x.INV_NO).ThenBy(x => x.INPUT_NO).ToList(); var groupList = strValue.GroupBy(a => a.NAME).ToList(); foreach (var item in groupList) { var listvalue = new Values(); foreach (var i in item.GroupBy(grp => grp.TARIH_NUMBER).OrderBy(a => a.Key).ToList()) { listvalue.values.Add((float)Math.Round(i.Max(a => a.VALUE.Value), 2)); } valueList.Add(listvalue); } _strModel.strModel.series = valueList.ToList(); _strModel.ErrorMessage = ""; } } catch (Exception ex) { _strModel.ErrorMessage = ex.ToString(); } return(Json(_strModel)); }
public JsonResult HourlyColorReport(int stationId, string slctDate) { InverterPerformanceView mdl = new InverterPerformanceView(); try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime nowDate = DateTime.Parse(slctDate); NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormat(slctDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; mdl.invModel = new InverterModel(); var hourlyProduction = (from InverterDetail in DB.InvSums join Inverter in DB.Inverters on InverterDetail.Inv_Id equals Inverter.ID where InverterDetail.STATION_ID == stationId && InverterDetail.TARIH_NUMBER >= _numberDateBegin && InverterDetail.TARIH_NUMBER <= _numberDateEnd && InverterDetail.Tarih.Value.Hour > 5 && InverterDetail.Tarih.Value.Hour < 22 select new Hour_DTO_ { InverterName = Inverter.NAME, result = Inverter.INV_DC_GUC == null || InverterDetail.Guc_AC == null ? 0 : Math.Round(((float)InverterDetail.Guc_AC / 1000) / ((float)Inverter.INV_DC_GUC), 1), //Math.Round((double)(InverterDetail.Guc_AC == null ? 0 : InverterDetail.Guc_AC) / 1000, 2) / Math.Round((double)(Inverter.INV_DC_GUC == null ? 1 : Inverter.INV_DC_GUC), 2), InverterId = InverterDetail.Inv_Id, _tarih = InverterDetail.Tarih.Value }) .AsEnumerable() .Distinct() .ToList(); mdl.invModel.InverterList = hourlyProduction.OrderBy(a => a.InverterId) .Select(a => a.InverterName) .Distinct() .ToList(); var list_ = new List <Values>(); var groupList = hourlyProduction.OrderBy(a => a.InverterId).GroupBy(a => a.InverterId).ToList(); foreach (var hour in groupList[0].OrderBy(a => a._tarih)) { mdl.invModel.Hours.Add(hour._tarih.ToString("HH:mm")); } foreach (var item in groupList) { var list = new Values(); foreach (var i in item.OrderBy(a => a._tarih).ToList()) { list.values.Add((float)i.result); } list_.Add(list); } mdl.invModel.series = list_; mdl.ErrorMessage = ""; } catch (Exception ex) { mdl.ErrorMessage = ex.ToString(); } return(Json(mdl)); }
public JsonResult GetInvProduction(string beginDate, int stationId) { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime nowDate = DateTime.Parse(@beginDate); NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormat(beginDate); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; List <TBL_INVERTER> invertors = DB.Inverters.Where(a => a.STATION_ID == stationId && a.IS_DELETED == false).ToList(); //int[] lastIds = (from o in DB.InvSums // where o.STATION_ID == stationId // && o.TARIH_NUMBER >= _numberDateBegin && o.TARIH_NUMBER <= _numberDateEnd // && o.Gunluk_Enerji > 0 // && o.Tarih.Value.Hour > 7 // group o by o.Inv_Id // into g // select g.Max(p => p.Id)).ToArray<int>(); var InvData = (from o in DB.InvSums where o.STATION_ID == stationId && o.TARIH_NUMBER >= _numberDateBegin && o.TARIH_NUMBER <= _numberDateEnd && o.Tarih.Value.Hour > 7 select o).ToList(); var InvGroupList = InvData.GroupBy(grp => grp.Inv_Id).ToList(); int[] idsList = new int[invertors.Count]; int z = 0; foreach (var item in InvGroupList) { int maxValue = (from t1 in item where t1.Gunluk_Enerji == (item.Max(c2 => c2.Gunluk_Enerji)) select t1.Id).FirstOrDefault(); idsList[z] = maxValue; z++; } List <Inv_Production_DTO> InvTbloztA = (from i in DB.InvSums join inv in DB.Inverters on i.Inv_Id equals inv.ID where i.TARIH_NUMBER >= _numberDateBegin && i.TARIH_NUMBER <= _numberDateEnd && idsList.Contains(i.Id) select new Inv_Production_DTO { invId = i.Inv_Id, date = i.Tarih.Value, inverter_Name = inv.NAME, stationId = i.STATION_ID, dailyProduction = (float)Math.Round((double)i.Gunluk_Enerji.Value / 1000, 2), specificYield = inv.INV_DC_GUC == null || inv.INV_DC_GUC.Value == 0 ? 0 : (float)Math.Round((double)i.Gunluk_Enerji.Value / 1000 / inv.INV_DC_GUC.Value, 3), acPower = i.Guc_AC.Value, dcPower = i.Guc_DC.Value, acCurrent = i.Akim_AC.Value, irradiation = i.Isinim == null ? 0 : i.Isinim.Value, dcVoltage = i.Gerilim_DC.Value, totaPanelPower = inv.INV_DC_GUC == null || inv.INV_DC_GUC.Value == 0 ? 0 : inv.INV_DC_GUC.Value }).ToList(); foreach (var item in invertors) { if (InvTbloztA.Where(a => a.invId == item.ID).Count() == 0) { InvTbloztA.Add(new Inv_Production_DTO { invId = item.ID, date = DateTime.Now, inverter_Name = item.NAME, stationId = item.STATION_ID, dailyProduction = 0, specificYield = 0, acPower = 0, dcPower = 0, acCurrent = 0, irradiation = 0, dcVoltage = 0, totaPanelPower = 0 }); } } InvTbloztA = InvTbloztA.OrderBy(x => int.Parse(x.inverter_Name.Split(' ')[1])).ToList(); Session["InvDataTable"] = InvTbloztA; return(Json(InvTbloztA, JsonRequestBehavior.AllowGet)); }
public JsonResult HeatMapInvProductionData(int stationId, string slctDate) { InverterProductionView mdl = new InverterProductionView(); try { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime datePicker = DateTime.Now; string[] year_month = slctDate.Split('-'); int _year = Convert.ToInt32(year_month[0]); int _month = Convert.ToInt32(year_month[1]); datePicker = new DateTime(_year, _month, 1); NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatInvHeatMapMonthly(datePicker.ToString()); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; MontlyInverterProduction mi = new MontlyInverterProduction(); var inverterDetail = DB.Inverters.Where(w => w.STATION_ID == stationId && w.IS_DELETED == false).ToList(); var tblInv = inverterDetail.OrderBy(o => int.Parse(o.NAME.Split(' ')[1])).ToList(); //var adoInv = DB.Database.SqlQuery<TBL_INV_OZET>("select * from TBL_INV_OZET WHERE STATION_ID=370 AND TARIH_NUMBER>='20190400000000' AND TARIH_NUMBER<='20190432000000'").ToList(); //var tblInvTable = DB.InvSums.Where(w => w.STATION_ID == stationId && w.TARIH_NUMBER >= _numberDateBegin && w.TARIH_NUMBER <= _numberDateEnd && (Math.Round(((decimal)w.TARIH_NUMBER.Value%1000000)/10000))>7).ToList(); var listInvOzet = DB.InvSums.Where(ww => ww.STATION_ID == stationId && ww.TARIH_NUMBER >= _numberDateBegin && ww.TARIH_NUMBER <= _numberDateEnd && ww.Tarih.Value.Hour > 7) // int.Parse(ww.TARIH_NUMBER.ToString().Substring(8, 2)) > 07 //(Math.Round(((decimal)ww.TARIH_NUMBER.Value % 1000000) / 10000)) > 7 .GroupBy(grp => new { grp.Tarih.Value.Day, grp.Inv_Id }) .Select(s => new InvMonthlyValue { day = s.Key.Day, inv = s.Key.Inv_Id, energy = (float)Math.Round((s.Max(m => m.Gunluk_Enerji.Value)) / 1000, 2) }) .ToList(); //mi.listInvValue = DB.InvSums.Join(DB.Inverters.Where(ww => ww.STATION_ID == stationId), // invs => invs.Inv_Id, inv => inv.ID, (inv, invs) => inv) // .Where(w => w.STATION_ID == stationId && w.TARIH_NUMBER >= 20190400000000 && w.TARIH_NUMBER <= 20190432000000) // .GroupBy(grp => new { grp.Tarih.Value.Day, grp.Inv_Id }) // .Select(s => new InvMonthlyValue { day = s.Key.Day, inv = s.Key.Inv_Id, energy = (float)Math.Round((s.Max(m => m.Gunluk_Enerji.Value)) / 1000, 1) }) // .OrderBy(o => o.day).ThenBy(t => t.inv).ToList(); var MonthDaysCount = DateTime.DaysInMonth(_year, _month); List <InvMonthlyValue> orderByList = new List <InvMonthlyValue>(); for (int i = 1; i <= MonthDaysCount; i++) { foreach (var inv in tblInv) { var reg = listInvOzet.Where(w => w.day == i && w.inv == inv.ID).FirstOrDefault(); if (reg == null) { orderByList.Add(new InvMonthlyValue { day = i, inv = inv.ID, energy = null }); } else { orderByList.Add(reg); } } } mi.listInvValue = orderByList.OrderBy(o => o.day).ThenBy(t => t.inv).ToList(); var groupDay = mi.listInvValue.GroupBy(grp => grp.day).ToList(); foreach (var itemDay in groupDay) { mi.listDay.Add(itemDay.Key); } foreach (var invName in tblInv) { mi.listInvName.Add(invName.NAME); } mdl.invModel = mi; mdl.ErrorMessage = ""; } catch (Exception ex) { mdl.ErrorMessage = ex.ToString(); } return(Json(mdl)); }
public FileContentResult ExportToExcel(int stationId, string slctDate) { Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR"); DateTime datePicker = DateTime.Now; string[] year_month = slctDate.Split('-'); int _year = Convert.ToInt32(year_month[0]); int _month = Convert.ToInt32(year_month[1]); datePicker = new DateTime(_year, _month, 1); var stat = DB.Stations.Where(w => w.ID == stationId).FirstOrDefault(); NUMBER_FORMAT_DTO convertFormat = ConvertNumberFormatInvHeatMapMonthly(datePicker.ToString()); long _numberDateBegin = convertFormat._begin; long _numberDateEnd = convertFormat._end; MontlyInverterProduction mi = new MontlyInverterProduction(); var inverterDetail = DB.Inverters.Where(w => w.STATION_ID == stationId && w.IS_DELETED == false).ToList(); var tblInv = inverterDetail.OrderBy(o => int.Parse(o.NAME.Split(' ')[1])).ToList(); var listInvOzet = DB.InvSums.Where(ww => ww.STATION_ID == stationId && ww.TARIH_NUMBER >= _numberDateBegin && ww.TARIH_NUMBER <= _numberDateEnd && ww.Tarih.Value.Hour > 7) .GroupBy(grp => new { grp.Tarih.Value.Day, grp.Inv_Id }) .Select(s => new InvMonthlyValue { day = s.Key.Day, inv = s.Key.Inv_Id, energy = (float)Math.Round((s.Max(m => m.Gunluk_Enerji.Value)) / 1000, 2) }) .ToList(); var MonthDaysCount = DateTime.DaysInMonth(_year, _month); List <InvMonthlyValue> orderByList = new List <InvMonthlyValue>(); for (int i = 1; i <= MonthDaysCount; i++) { foreach (var inv in tblInv) { var reg = listInvOzet.Where(w => w.day == i && w.inv == inv.ID).FirstOrDefault(); if (reg == null) { orderByList.Add(new InvMonthlyValue { day = i, inv = inv.ID, energy = null, name = inv.NAME }); } else { reg.name = inv.NAME; orderByList.Add(reg); } } } mi.listInvValue = orderByList.OrderBy(o => o.day).ThenBy(t => t.inv).ToList(); List <INV_PROD_EXCEL_DTO> invProdList = mi.listInvValue.Select(s => new INV_PROD_EXCEL_DTO { DATE = new DateTime(_year, _month, s.day), INVERTERNAME = s.name, PRODUCTION = s.energy == null ? 0 : Math.Round((decimal)s.energy, 2) }).ToList(); string fileName = stat.NAME.ToUpper() + " INVERTER_PRODUCTION_MONTHLY.xlsx"; string[] columns = { "DATE", "INVERTERNAME", "PRODUCTION" }; byte[] filecontent = ExcelExportHelper.ExportExcel(invProdList, stat.NAME, true, columns); return(File(filecontent, ExcelExportHelper.ExcelContentType, fileName)); }