コード例 #1
0
    private void toggleExpanded(int rowindex)
    {
        List <PollutantReleases.AreaTreeListRow> data = ViewState[RESULT] as List <PollutantReleases.AreaTreeListRow>;

        PollutantReleases.AreaTreeListRow row = data[rowindex];

        //toggle expansion
        row.IsExpanded = !row.IsExpanded;

        //get data from database, if not already loaded
        if (row.HasChildren && row.IsExpanded && !data.Any(r => r.Level == row.Level + 1 && r.ParentCode == row.Code))
        {
            if (row.Level == 0)
            {
                var subareas = PollutantReleases.GetSubAreas(SearchFilter, new List <string> {
                    row.CountryCode
                });
                addToResult(subareas);
            }
        }

        this.lvPollutantReleasesArea.DataSource = data;
        this.lvPollutantReleasesArea.DataBind();

        // notify that content has changed (print)
        if (ContentChanged != null)
        {
            ContentChanged.Invoke(null, EventArgs.Empty);
        }
    }
コード例 #2
0
    /// <summary>
    /// Search, fill data into summery
    /// </summary>
    public void Populate(PollutantReleaseSearchFilter filter)
    {
        SearchFilter            = filter;
        ConfidentialityAffected = PollutantReleases.IsAffectedByConfidentiality(filter); //Only determine once and store in viewstate

        // always show summery
        showContent(Sheets.PollutantReleases.Summary.ToString());
    }
コード例 #3
0
    private PollutantReleases.FacilityCountObject getFacilityCounts(PollutantReleaseSearchFilter filter)
    {
        if (FacilityCounts == null)
        {
            FacilityCounts = PollutantReleases.GetFacilityCounts(filter);
        }

        return(FacilityCounts);
    }
コード例 #4
0
    private void populateMediumSelector()
    {
        MediumFilter mf = new MediumFilter();

        mf.ReleasesToAir   = true;
        mf.ReleasesToSoil  = true;
        mf.ReleasesToWater = true;

        var filter = FilterConverter.ConvertToPollutantReleaseSearchFilter(SearchFilter);
        var counts = PollutantReleases.GetFacilityCounts(filter);

        this.ucMediumSelector.PopulateMediumRadioButtonList(mf, counts);
    }
コード例 #5
0
    public void DoSaveCSV(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            PollutantReleaseSearchFilter filter = SearchFilter;

            bool isConfidentialityAffected = PollutantReleases.IsAffectedByConfidentiality(filter);

            Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetPollutantReleaseSearchHeader(
                filter,
                SelectedMedium,
                isConfidentialityAffected);

            // Create Body
            var facilities = PollutantReleases.GetFacilityListCSV(filter, SelectedMedium);

            // dump to file
            string topheader      = csvformat.CreateHeader(header);
            string facilityHeader = csvformat.GetPollutantReleaseFacilityHeader();

            string url = Request.Url.AbsoluteUri;
            url = url.Substring(0, url.LastIndexOf("/") + 1);

            Response.WriteUtf8FileHeader("EPRTR_Pollutant_Releases_Facility_List");

            Response.Write(topheader + facilityHeader);

            foreach (var item in facilities)
            {
                item.Url = String.Format("{0}/PopupFacilityDetails.aspx?FacilityReportId={1}", url, item.FacilityReportId);

                string row = csvformat.GetPollutantReleaseFacilityRow(item);
                Response.Write(row);
            }

            Response.End();
        }
        catch
        {
        }
    }
コード例 #6
0
        // ---------------------------------------------------------------------------------------------------
        // Facility couting
        // ---------------------------------------------------------------------------------------------------
        #region Facility counting
        /// <summary>
        /// Returns the number of facilities for each medium type.
        /// </summary>
        public static PollutantReleases.FacilityCountObject GetFacilityCounts(PollutantReleasesTimeSeriesFilter tsFilter)
        {
            // removes all year span information
            var filter = FilterConverter.ConvertToPollutantReleaseSearchFilter(tsFilter);

            ParameterExpression param = Expression.Parameter(typeof(POLLUTANTRELEASE), "POLLUTANTRELEASE");
            Expression          exp   = LinqExpressionBuilder.GetLinqExpressionPollutantReleases(filter, param);

            // Exclude EPER reporting years
            Expression prop    = Expression.Property(param, "ReportingYear");
            Expression val     = Expression.Constant(2007);
            Expression yearExp = Expression.GreaterThanOrEqual(prop, val);

            exp = Expression.AndAlso(yearExp, exp);

            Expression <Func <POLLUTANTRELEASE, bool> > lambda = Expression.Lambda <Func <POLLUTANTRELEASE, bool> >(exp, param);

            return(PollutantReleases.GetFacilityCounts(lambda, filter.MediumFilter));
        }
コード例 #7
0
        public double PollutantReleasesTestA()
        {
            DateTime testStartTime;
            DateTime testEndTime;
            TimeSpan testDelta;

            PollutantReleaseSearchFilter filter = new PollutantReleaseSearchFilter();

            filter.ActivityFilter = new ActivityFilter();
            filter.ActivityFilter.SectorIds.Add(-1);
            filter.ActivityFilter.ActivityIds.Add(-1);
            filter.ActivityFilter.SubActivityIds.Add(-1);

            filter.AreaFilter             = new AreaFilter();
            filter.AreaFilter.AreaGroupID = 1;
            filter.AreaFilter.CountryID   = -1;
            filter.AreaFilter.RegionID    = -1;

            filter.MapFilter          = new MapFilter();
            filter.MapFilter.SqlWhere = "(((((ReportingYear) = 2007) And ((((((((((((((((((((((((((((((((LOV_CountryID) = 15) Or ((LOV_CountryID) = 22)) Or ((LOV_CountryID) = 34)) Or ((LOV_CountryID) = 57)) Or ((LOV_CountryID) = 58)) Or ((LOV_CountryID) = 59)) Or ((LOV_CountryID) = 68)) Or ((LOV_CountryID) = 73)) Or ((LOV_CountryID) = 74)) Or ((LOV_CountryID) = 81)) Or ((LOV_CountryID) = 85)) Or ((LOV_CountryID) = 100)) Or ((LOV_CountryID) = 101)) Or ((LOV_CountryID) = 106)) Or ((LOV_CountryID) = 109)) Or ((LOV_CountryID) = 122)) Or ((LOV_CountryID) = 127)) Or ((LOV_CountryID) = 128)) Or ((LOV_CountryID) = 129)) Or ((LOV_CountryID) = 137)) Or ((LOV_CountryID) = 156)) Or ((LOV_CountryID) = 166)) Or ((LOV_CountryID) = 177)) Or ((LOV_CountryID) = 178)) Or ((LOV_CountryID) = 182)) Or ((LOV_CountryID) = 201)) Or ((LOV_CountryID) = 202)) Or ((LOV_CountryID) = 207)) Or ((LOV_CountryID) = 213)) Or ((LOV_CountryID) = 214)) Or ((LOV_CountryID) = 234))) And ((LOV_PollutantID) = 9)) And (((QuantityAir IS NOT NULL) Or (QuantitySoil IS NOT NULL)) Or (QuantityWater IS NOT NULL)))";

            filter.MediumFilter = new MediumFilter();
            filter.MediumFilter.ReleasesToAir   = true;
            filter.MediumFilter.ReleasesToSoil  = true;
            filter.MediumFilter.ReleasesToWater = true;

            filter.PollutantFilter = new PollutantFilter();
            filter.PollutantFilter.PollutantGroupID = 1;
            filter.PollutantFilter.PollutantID      = 9;

            filter.YearFilter      = new YearFilter();
            filter.YearFilter.Year = 2007;

            testStartTime = DateTime.Now;
            PollutantReleases.Summery(filter);
            testEndTime = DateTime.Now;

            testDelta = testEndTime - testStartTime;

            return(testDelta.TotalSeconds);
        }
コード例 #8
0
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        var filter = SearchFilter;

        bool isConfidentialityAffected = PollutantReleases.IsAffectedByConfidentiality(filter);

        Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetPollutantReleaseSearchHeader(
            filter,
            isConfidentialityAffected);

        // Create Body
        List <PollutantReleases.AreaTreeListRow> rows = PollutantReleases.GetAreaTree(filter).ToList();

        sortResult(rows);

        // dump to file
        string topheader = csvformat.CreateHeader(header);

        string[] colHeaderRows = csvformat.GetPollutantReleaseAreaColHeaderRows(filter);

        Response.WriteUtf8FileHeader("EPRTR_Pollutant_Releases_Area_List");

        Response.Write(topheader + colHeaderRows[0] + colHeaderRows[1]);

        //all rows but total
        foreach (var item in rows.Where(r => r.Code != ActivityTreeListRow.CODE_TOTAL))
        {
            string row = csvformat.GetPollutantReleaseAreaRow(item, filter);
            Response.Write(row);
        }

        //write total row

        var totalRow = rows.SingleOrDefault(r => r.Code == ActivityTreeListRow.CODE_TOTAL);

        if (totalRow == null)
        {
            //find all rows on topLevel. if only one, use this as total row
            var toplevelRows = rows.Where(r => r.Level == 0);
            if (toplevelRows != null && toplevelRows.Count() == 1)
            {
                totalRow = toplevelRows.Single();
            }
        }

        //write total row if any is found
        if (totalRow != null)
        {
            Response.Write(Environment.NewLine);
            Response.Write(csvformat.AddText(Resources.GetGlobal("Common", "Total")));
            Response.Write(Environment.NewLine);

            Response.Write(colHeaderRows[0] + colHeaderRows[1]);

            string row = csvformat.GetPollutantReleaseAreaRow(totalRow, filter);
            Response.Write(row);
        }

        Response.End();
    }
コード例 #9
0
    /// <summary>
    /// Update flash graph
    /// foreach (PollutantReleases.AreaComparison item in list)
    //  Debug.WriteLine(String.Format("Area:{0}   Quantity:{1}   Percent:{2}", item.Area, item.Quantity, item.Percent));
    /// </summary>
    private void updateGraph(PollutantReleaseSearchFilter filter, MediumFilter.Medium medium)
    {
        string title   = LOVResources.MediumName(EnumUtil.GetStringValue(medium));
        string swfFile = EPRTR.Charts.ChartsUtils.PolluntantReleaseAreaComparisonChart;

        EPRTR.Charts.ChartsUtils.AreaType?chartType = null;

        List <PollutantReleases.AreaComparison> list = null;

        if (medium.Equals(MediumFilter.Medium.Air))
        {
            if (ViewState[DATA_AIR] != null)
            {
                list = ViewState[DATA_AIR] as List <PollutantReleases.AreaComparison>;
            }
            else
            {
                list = PollutantReleases.GetAreaComparison(filter, MediumFilter.Medium.Air);
                translateArea(filter.AreaFilter, list);
                ViewState[DATA_AIR] = list;
            }

            chartType = EPRTR.Charts.ChartsUtils.AreaType.Air;
        }

        else if (medium.Equals(MediumFilter.Medium.Water))
        {
            if (ViewState[DATA_WATER] != null)
            {
                list = ViewState[DATA_WATER] as List <PollutantReleases.AreaComparison>;
            }
            else
            {
                list = PollutantReleases.GetAreaComparison(filter, MediumFilter.Medium.Water);
                translateArea(filter.AreaFilter, list);
                ViewState[DATA_WATER] = list;
            }
            chartType = EPRTR.Charts.ChartsUtils.AreaType.Water;
        }

        else if (medium.Equals(MediumFilter.Medium.Soil))
        {
            if (ViewState[DATA_SOIL] != null)
            {
                list = ViewState[DATA_SOIL] as List <PollutantReleases.AreaComparison>;
            }
            else
            {
                list = PollutantReleases.GetAreaComparison(filter, MediumFilter.Medium.Soil);
                translateArea(filter.AreaFilter, list);
                ViewState[DATA_SOIL] = list;
            }
            chartType = EPRTR.Charts.ChartsUtils.AreaType.Soil;
        }

        bool hasData = list != null && list.Count != 0;

        this.NoDataReturned.Visible = !hasData;
        if (hasData)
        {
            DisplayChart(title, swfFile, list, chartType.Value);
        }
    }