Beispiel #1
0
 public double TongSanLuongDMA()
 {
     try
     {
         using (var context = new LoggerEntities())
         {
             var result = context.Database.SqlQuery <Double?>("TongSanLuongDMA").SingleOrDefault();
             return(result.HasValue ? result.Value : 0);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #2
0
 public List <ChiTietSanLuongDMA> LayChiTietApLucDMA(string dma, DateTime tuNgay, DateTime denNgay)
 {
     try
     {
         using (var context = new LoggerEntities())
         {
             var tuNgaySQL  = tuNgay.ToString("yyyy-MM-dd");
             var denNgaySQL = denNgay.ToString("yyyy-MM-dd");
             var query      = String.Format("EXEC ApLucChiTietDMA '{0}','{1}','{2}'", dma, tuNgaySQL, denNgaySQL);
             return(context.Database.SqlQuery <ChiTietSanLuongDMA>(query).ToList());
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #3
0
 public double SanLuongDMA(string dma, DateTime tuNgay, DateTime denNgay)
 {
     try
     {
         using (var context = new LoggerEntities())
         {
             var tuNgaySQL  = tuNgay.ToString("yyyy-MM-dd");
             var denNgaySQL = denNgay.ToString("yyyy-MM-dd");
             var query      = String.Format("EXEC SanLuongDMA '{0}','{1}','{2}'", dma, tuNgaySQL, denNgaySQL);
             var result     = context.Database.SqlQuery <Double?>(query).DefaultIfEmpty(0).FirstOrDefault();
             return(result.HasValue ? result.Value : 0);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #4
0
        public Double TieuThuDMA(string dma, int nam, int ky)
        {
            try
            {
                using (var context = new LoggerEntities())
                {
                    var loggerDMA = context.LoggerDMAs.SingleOrDefault(s => s.MaDMA == dma);

                    //lấy Logger ID
                    if (loggerDMA != null && !String.IsNullOrEmpty(loggerDMA.MaDMA))
                    {
                        var table = this.CreateLoggerTable(loggerDMA.SiteID);
                        var query = String.Format(
                            @"SELECT SUM(Value) as Value 
FROM {0} 
WHERE DATEPART(YEAR,TimeStamp) = {1} AND DATEPART(MONTH,TimeStamp) = {2}",
                            table, nam, ky
                            );

                        query = query.Replace("\r\n", ""); //xóa \r\n
                        query = query.Replace("\t", "");   //xóa \t

                        var result = context.Database.SqlQuery <Double?>(query).DefaultIfEmpty(0).FirstOrDefault();
                        if (result.HasValue)
                        {
                            return(Math.Round(result.Value, 2));//làm tròn 3 chữ số
                        }
                        else
                        {
                            return(0);
                        }
                    }
                    else
                    {
                        return(0);//không có dữ liệu
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #5
0
        public double TieuThuDMA(string dma)
        {
            try
            {
                using (var context = new LoggerEntities())
                {
                    var loggerID = context.t_Channel_Configurations.Where(w =>
                                                                          w.Description == dma && //lọc dma
                                                                          w.ChannelId.EndsWith("_03") == true //lọc channel đuôi là _3
                                                                          ).Select(s => s.LoggerId).DefaultIfEmpty(null).FirstOrDefault();

                    //lấy Logger ID
                    if (loggerID != null)
                    {
                        var table = this.CreateLoggerTable(loggerID);
                        var query = String.Format(
                            @"SELECT SUM(Value) as Value 
FROM {0}",
                            table
                            );

                        query = query.Replace("\r\n", ""); //xóa \r\n
                        query = query.Replace("\t", "");   //xóa \t

                        var result = context.Database.SqlQuery <Double?>(query).DefaultIfEmpty(0).FirstOrDefault();
                        return(result.HasValue ? result.Value : 0);
                    }
                    else
                    {
                        return(0);//không có dữ liệu
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void OnTimer(Object source, ElapsedEventArgs eventArgs)
        {
            Console.WriteLine("Timer event triggered...");

            try
            {
                Sensors.ForEach(x => x.CompleteMeasurementPeriod());
                //System.Threading.Thread.Sleep(500);
                Sensors.ForEach(x => x.CommenceMeasurementPeriod());

                foreach (var s in Sensors)
                {
                    var measurement = s.ReadMeasuredValue();

                    if (measurement is XL2Reading)
                    {
                        var xl2Reading = measurement as XL2Reading;

                        var SLMSerialNo = ""; //
                        var micSens     = ""; //
                        var micType     = ""; //
                        var RTAs        = ""; //
                        var measStat    = "";
                        var LAEQ        = ""; //

                        // post to Simon :)
                        //Console.WriteLine(xl2Reading.MetricReadings.Count());
                        //xl2Reading.MetricReadings.ForEach(x => Console.WriteLine($"XL2's {x.Metric.GetType().Name} Measurment is {x.Measurement}"));
                        //xl2Reading.MetricReadings.ForEach(delegate(String xl2reading.MetricReadings.Metric);

                        //RTAs = xl2Reading.MetricReadings.Where(n => n.Metric.GetType().Name.Contains("RTA"));
                        LoggerEntities     LE       = new LoggerEntities();
                        List <XL2Spectrum> specPost = new List <XL2Spectrum>();

                        List <string> measChannels = new List <string>();
                        measChannels.Add("L");
                        measChannels.Add("RTA");

                        List <string> freqWeight = new List <string>();
                        freqWeight.Add("A");
                        freqWeight.Add("C");
                        freqWeight.Add("Z");

                        List <string> timeWeight = new List <string>();
                        timeWeight.Add("F");
                        timeWeight.Add("S");
                        timeWeight.Add("I");

                        List <string> metrics = new List <string>();
                        metrics.Add("EQ");
                        metrics.Add("MAX");
                        metrics.Add("MIN");
                        metrics.Add("01");
                        metrics.Add("05");
                        metrics.Add("10");
                        metrics.Add("50");
                        metrics.Add("90");
                        metrics.Add("95");
                        metrics.Add("99");

                        foreach (var x in xl2Reading.MetricReadings)
                        {
                            //Console.WriteLine(x.Metric.GetType().Name);
                            foreach (string m in measChannels)
                            {
                                //Console.WriteLine(n);
                                foreach (string n in freqWeight)
                                {
                                    //Console.WriteLine(m);
                                    foreach (string o in timeWeight)
                                    {
                                        //Console.WriteLine(o);
                                        foreach (string p in metrics)
                                        {
                                            //Console.WriteLine(p);
                                            if (x.Metric.GetType().Name.Contains(m))
                                            {
                                                if (x.Metric.GetType().Name.Contains(n))
                                                {
                                                    if (x.Metric.GetType().Name.Contains(o))
                                                    {
                                                        if (x.Metric.GetType().Name.Contains(p))
                                                        {
                                                            //Console.WriteLine(x.Metric.GetType().Name);
                                                            //Console.WriteLine(x.Measurement);
                                                            //Console.WriteLine(m + n + o + p);
                                                            List <string> q = x.Measurement.Split(',').ToList <string>();
                                                            measStat = q[1];
                                                            //Console.WriteLine(measStat);
                                                            //Console.WriteLine(char.ToString(measStat[0]));
                                                            specPost.Add(new XL2Spectrum()
                                                            {
                                                                XL2id      = 1,
                                                                InChn      = n,
                                                                FreqWeight = m,
                                                                Metric     = o,
                                                                Overall    = q[0]
                                                            }
                                                                         );

                                                            //specPost.ForEach(Console.WriteLine);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //LE.XL2Spectrum.AddRange(specPost);
                            //LE.SaveChanges();
                            //if (x.Metric.GetType().Name.Contains("RTA"))
                            //{
                            //    //Console.WriteLine("Found RTA");
                            //    if(x.Metric.GetType().Name.Contains("50"))
                            //    {
                            //        //Console.WriteLine("Found 50");
                            //        //split data
                            //        List<string> datas = x.Measurement.Split(',').ToList<string>();

                            //    };
                            //    //Console.WriteLine(x.Metric.GetType().Name);
                            //    //Console.WriteLine(x.Measurement);
                            //};
                            //if (x.Metric.GetType().Name.Contains("IDN"))
                            //{
                            //    //Console.WriteLine(x.Metric.GetType().Name);
                            //    List<string> p = x.Measurement.Split(',').ToList<string>();
                            //    SLMSerialNo = p[2];
                            //};
                            //if (x.Metric.GetType().Name.Contains("MicSens"))
                            //{
                            //    List<string> p = x.Measurement.Split(',').ToList<string>();
                            //    micSens = p[0];
                            //}
                            //if (x.Metric.GetType().Name.Contains("MicType"))
                            //{
                            //    List<string> p = x.Measurement.Split(',').ToList<string>();
                            //    micType = p[0];
                            //}
                        }

                        //put in database
                        //using (LoggerEntities context = new LoggerEntities())
                        //{
                        //    XL2Table CurMes = new XL2Table
                        //    {
                        //        SLMSerial = SLMSerialNo,
                        //        MicType = micType,
                        //        MicSens = micSens,
                        //        MeasureStatus = measStat

                        //    };
                        //    context.XL2Table.Add(CurMes);
                        //    context.SaveChanges();
                        //}
                    }

                    if (measurement is FineOffsetWeatherReading)
                    {
                    }

                    if (measurement is ErrorReadingSensor)
                    {
                        var error = measurement as ErrorReadingSensor;
                        Console.WriteLine($"Error reading sensor {s.GetType().Name}");
                        if (error.CommenceException != null)
                        {
                            Console.WriteLine($"CommenceException {error.CommenceException.Message}");
                        }
                        if (error.CompleteException != null)
                        {
                            Console.WriteLine($"CompleteException {error.CompleteException.Message}");
                        }
                        if (error.ReadException != null)
                        {
                            Console.WriteLine($"ReadException {error.ReadException.Message}");
                        }
                    }
                }
            }
            catch (Exception)
            {
                // decide to try something here.
            }
        }