public List <LoggerDataViewModel> GetComplexLoggerDataForWebService(string siteID, DateTime startDate, DateTime endDate) { List <LoggerDataViewModel> listLoggerDataViewModel = new List <LoggerDataViewModel>(); var site = _siteBL.GetSite(siteID); var loggerConfiguration = site.t_Logger_Configurations; double startHour = Convert.ToDouble(loggerConfiguration.StartHour); if (site.LoggerId.Contains("__"))//inventia { startDate = startDate.AddHours(startHour).AddSeconds(1).AddMilliseconds(1); endDate = endDate.AddDays(1).AddHours(startHour).AddSeconds(1); } else { startDate = startDate.AddHours(startHour).AddMilliseconds(1); endDate = endDate.AddDays(1).AddHours(startHour); } List <t_Logger_Data> listForward = new List <t_Logger_Data>(); List <t_Logger_Data> listReverse = new List <t_Logger_Data>(); List <t_Logger_Data> listPressure1 = new List <t_Logger_Data>(); List <t_Logger_Data> listPressure2 = new List <t_Logger_Data>(); //List<t_Logger_Data> listForwardIndex = new List<t_Logger_Data>(); //List<t_Logger_Data> listReverseIndex = new List<t_Logger_Data>(); try { if (loggerConfiguration.ForwardFlow != null) { string channelForward = ""; //string channelForward = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.ForwardFlow); channelForward = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "f").ChannelId; listForward = _loggerDataBL.GetLoggerData(channelForward, startDate, endDate); //listForwardIndex = _loggerDataBL.GetLoggerIndex(channelForward, startDate, endDate); } } catch (Exception ex) { //throw ex; } try { if (loggerConfiguration.ReverseFlow != null) { string channelReverse = ""; //string channelReverse = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.ReverseFlow); channelReverse = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "r").ChannelId; listReverse = _loggerDataBL.GetLoggerData(channelReverse, startDate, endDate); //listReverseIndex = _loggerDataBL.GetLoggerIndex(channelReverse, startDate, endDate); } } catch (Exception ex) { //throw ex; } try { if (loggerConfiguration.Pressure1 != null) { string channelPressure1 = ""; //string channelPressure1 = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.Pressure1); channelPressure1 = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "p1").ChannelId; listPressure1 = _loggerDataBL.GetLoggerData(channelPressure1, startDate, endDate); } } catch (Exception ex) { //throw ex; } try { if (loggerConfiguration.Pressure2 != null) { string channelPressure2 = ""; //string channelPressure2 = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.Pressure2); channelPressure2 = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "p2").ChannelId; listPressure2 = _loggerDataBL.GetLoggerData(channelPressure2, startDate, endDate); } } catch (Exception ex) { //throw ex; } List <t_Logger_Data> temp = new List <t_Logger_Data>(); if (listForward.Count != 0) { temp = listForward; goto t; } if (listReverse.Count != 0) { temp = listReverse; goto t; } if (listPressure1.Count != 0) { temp = listPressure1; goto t; } if (listPressure2.Count != 0) { temp = listPressure2; } t: if (listForward.Count == 0) { foreach (var item in temp) { t_Logger_Data t = new t_Logger_Data(); t.TimeStamp = item.TimeStamp; listForward.Add(t); } } if (listReverse.Count == 0) { foreach (var item in temp) { t_Logger_Data t = new t_Logger_Data(); t.TimeStamp = item.TimeStamp; listReverse.Add(t); } } if (listPressure1.Count == 0) { foreach (var item in temp) { t_Logger_Data t = new t_Logger_Data(); t.TimeStamp = item.TimeStamp; listPressure1.Add(t); } } if (listPressure2.Count == 0) { foreach (var item in temp) { t_Logger_Data t = new t_Logger_Data(); t.TimeStamp = item.TimeStamp; listPressure2.Add(t); } } //if (listForwardIndex.Count == 0) //{ // foreach (var item in temp) // { // t_Logger_Data t = new t_Logger_Data(); // t.TimeStamp = item.TimeStamp; // listForwardIndex.Add(t); // } //} //if (listReverseIndex.Count == 0) //{ // foreach (var item in temp) // { // t_Logger_Data t = new t_Logger_Data(); // t.TimeStamp = item.TimeStamp; // listReverseIndex.Add(t); // } //} //double interval = temp[1].TimeStamp.Subtract(temp[0].TimeStamp).TotalMinutes; //double mul = interval / 60; for (int i = 0; i < temp.Count; i++) { LoggerDataViewModel loggerDataViewModel = new LoggerDataViewModel(); //loggerDataViewModel.ForwardIndex = listForwardIndex[i].Value ?? 0; //loggerDataViewModel.NetIndex = listForwardIndex[i].Value ?? 0 - listReverseIndex[i].Value ?? 0; loggerDataViewModel.FlowRate = listForward[i].Value ?? 0 - listReverse[i].Value ?? 0; loggerDataViewModel.Pressure = listPressure2[i].Value ?? listPressure1[i].Value ?? 0; //loggerDataViewModel.ReverseIndex = listReverseIndex[i].Value ?? 0; loggerDataViewModel.TimeStamp = temp[i].TimeStamp; listLoggerDataViewModel.Add(loggerDataViewModel); } return(listLoggerDataViewModel); }
public List <ReportDataViewModel> GetMonthyReportData(string siteID, DateTime startDate, DateTime endDate) { List <ReportDataViewModel> listReportDataViewModel = new List <ReportDataViewModel>(); var site = _siteBL.GetSite(siteID); var loggerConfiguration = site.t_Logger_Configurations; DateTime start; double startDay = Convert.ToDouble(site.StartDay); double startHour = Convert.ToDouble(loggerConfiguration.StartHour); string channelForward = ""; string channelReverse = ""; if (loggerConfiguration.ForwardFlow != null) { channelForward = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "f").ChannelId; //string channelForward = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.ForwardFlow); } if (loggerConfiguration.ReverseFlow != null) { channelReverse = _channelConfigurationBL.GetChannelConfigurationByType(loggerConfiguration.LoggerId, "r").ChannelId; //string channelReverse = loggerConfiguration.LoggerId + "_" + string.Format("{0:00}", loggerConfiguration.ReverseFlow); } var listMonthlyComplexDataViewModel = _complexDataHelper.GetMonthlyComplexData(loggerConfiguration.LoggerId, startDate, endDate); int interval = 0;//sec if (listMonthlyComplexDataViewModel.Count != 0) { interval = listMonthlyComplexDataViewModel[0].TimeStamp.Second; } startDate = startDate.AddDays(startDay - 1).AddHours(startHour); int totalMonth = (endDate.Year - startDate.Year) * 12 + (endDate.Month - startDate.Month) + 1; for (int i = 0; i < totalMonth; i++) { start = startDate.AddMonths(i); ReportDataViewModel data = new ReportDataViewModel(); data.StartDate = start; data.EndDate = start.AddMonths(1); data.SiteID = site.SiteId; data.SiteAliasName = site.SiteAliasName; data.Location = site.Location; var startRecord = _rawIndexBL.GetRawIndex(site.SiteId, data.StartDate); if (startRecord != null) { data.StartIndex = startRecord.Index; } var endRecord = _rawIndexBL.GetRawIndex(siteID, data.EndDate); if (endRecord != null) { data.EndIndex = endRecord.Index; } if (startRecord != null && endRecord != null) { data.Output = data.EndIndex - data.StartIndex; } listReportDataViewModel.Add(data); } double startForwardIndex = 0; double startReveseIndex = 0; double endForwardIndex = 0; double endReveseIndex = 0; t_Logger_Data startLoggerForwardIndex = null; t_Logger_Data startLoggerReveseIndex = null; t_Logger_Data endLoggerForwardIndex = null; t_Logger_Data endLoggerReveseIndex = null; for (int i = 0; i < listReportDataViewModel.Count; i++) { if (listReportDataViewModel[i].Output == null) { var complexData = listMonthlyComplexDataViewModel.Where(d => d.SiteID == listReportDataViewModel[i].SiteID && d.TimeStamp == listReportDataViewModel[i].StartDate.AddHours(1)).SingleOrDefault(); if (complexData == null)//Inventia { complexData = listMonthlyComplexDataViewModel.Where(d => d.SiteID == listReportDataViewModel[i].SiteID && d.TimeStamp == listReportDataViewModel[i].StartDate.AddHours(1).AddSeconds(1)).SingleOrDefault(); } if (complexData != null) { listReportDataViewModel[i].Output = complexData.Output; if (loggerConfiguration.ForwardFlow != null) { startLoggerForwardIndex = _loggerDataBL.GetLoggerIndex(channelForward, listReportDataViewModel[i].StartDate); if (startLoggerForwardIndex == null) { startLoggerForwardIndex = _loggerDataBL.GetLoggerIndex(channelForward, listReportDataViewModel[i].StartDate.AddSeconds(1)); } endLoggerForwardIndex = _loggerDataBL.GetLoggerIndex(channelForward, listReportDataViewModel[i].EndDate); if (endLoggerForwardIndex == null) { endLoggerForwardIndex = _loggerDataBL.GetLoggerIndex(channelForward, listReportDataViewModel[i].EndDate.AddSeconds(1)); } } if (loggerConfiguration.ReverseFlow != null) { startLoggerReveseIndex = _loggerDataBL.GetLoggerIndex(channelReverse, listReportDataViewModel[i].StartDate); if (startLoggerReveseIndex == null) { startLoggerReveseIndex = _loggerDataBL.GetLoggerIndex(channelReverse, listReportDataViewModel[i].StartDate.AddSeconds(1)); } endLoggerReveseIndex = _loggerDataBL.GetLoggerIndex(channelReverse, listReportDataViewModel[i].EndDate); if (endLoggerReveseIndex == null) { endLoggerReveseIndex = _loggerDataBL.GetLoggerIndex(channelReverse, listReportDataViewModel[i].EndDate.AddSeconds(1)); } } startForwardIndex = 0; startReveseIndex = 0; endForwardIndex = 0; endReveseIndex = 0; if (startLoggerForwardIndex != null) { startForwardIndex = startLoggerForwardIndex.Value ?? 0; } if (startLoggerReveseIndex != null) { startReveseIndex = startLoggerReveseIndex.Value ?? 0; } if (endLoggerForwardIndex != null) { endForwardIndex = endLoggerForwardIndex.Value ?? 0; } if (endLoggerReveseIndex != null) { endReveseIndex = endLoggerReveseIndex.Value ?? 0; } listReportDataViewModel[i].StartIndex = startForwardIndex - startReveseIndex; listReportDataViewModel[i].EndIndex = endForwardIndex - endReveseIndex; } } } return(listReportDataViewModel); }