Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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));
        }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
        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));
        }
Esempio n. 12
0
        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));
        }