/// <summary>
    /// Search, fill data into summery
    /// </summary>
    public void Populate(int facilityReportId, int searchYear, string pollutantCode, MediumFilter.Medium medium)
    {
        FacilityBasic = Facility.GetFacilityBasic(facilityReportId);
        PollutantCode = pollutantCode;

        ViewState[FACILITY_REPORTID] = facilityReportId;
        CurrentMedium          = medium;
        ViewState[SEARCH_YEAR] = searchYear;

        // reset viewstate data
        ViewState[TIMESERIES_AIR]   = null;
        ViewState[TIMESERIES_WATER] = null;
        ViewState[TIMESERIES_SOIL]  = null;

        showContent(TrendReleaseContent.TimeSeries.ToString());

        // set the year according to search. Include EPER

        List <int> years = ListOfValues.ReportYearsSeries().ToList();

        if (medium == MediumFilter.Medium.Soil)
        {
            years = ListOfValues.ReportYears(showEPER).ToList();
        }

        this.ucYearCompareSeries.Initialize(years, searchYear);
    }
    /// <summary>
    ///
    /// </summary>
    public void PopulateMediumRadioButtonList(
        MediumFilter filter,
        MediumFilter.Medium selected,
        PollutantReleases.FacilityCountObject counts)
    {
        List <string> items = addButtons(filter, counts);

        if (selected == MediumFilter.Medium.Air && filter.ReleasesToAir && items.Contains(getRadioButtonValue(MediumFilter.Medium.Air)))
        {
            rblMediumSelector.SelectedValue = getRadioButtonValue(MediumFilter.Medium.Air);
            OnMediumSelected(new MediumSelectedEventArgs(rblMediumSelector.SelectedValue));
        }
        else if (selected == MediumFilter.Medium.Water && filter.ReleasesToWater && items.Contains(getRadioButtonValue(MediumFilter.Medium.Water)))
        {
            rblMediumSelector.SelectedValue = getRadioButtonValue(MediumFilter.Medium.Water);
            OnMediumSelected(new MediumSelectedEventArgs(rblMediumSelector.SelectedValue));
        }
        else if (selected == MediumFilter.Medium.Soil && filter.ReleasesToSoil && items.Contains(getRadioButtonValue(MediumFilter.Medium.Soil)))
        {
            rblMediumSelector.SelectedValue = getRadioButtonValue(MediumFilter.Medium.Soil);
            OnMediumSelected(new MediumSelectedEventArgs(rblMediumSelector.SelectedValue));
        }
        else
        {
            // medium not supported by this control, select default
            if (this.rblMediumSelector.Items.Count > 0)
            {
                rblMediumSelector.SelectedIndex = 0;
                OnMediumSelected(new MediumSelectedEventArgs(rblMediumSelector.SelectedValue));
            }
        }
    }
Exemple #3
0
    private void setMapList(MediumFilter.Medium medium)
    {
        string sectorId = "";

        if (MediumFilter.Medium.Air == medium)
        {
            sectorId = this.ddlSelectSector.SelectedValue;
        }

        DiffuseSources.Map[] maps = DiffuseSources.GetMaps(medium, sectorId);


        if (maps.Length > 0)
        {
            divAvailableLayers.Visible = true;
            rblMaps.Items.Clear();
            foreach (DiffuseSources.Map map in maps)
            {
                rblMaps.Items.Add(new ListItem(map.GetTitleShort(), map.LayerId));
            }
        }
        else if (MediumFilter.Medium.Water == medium)
        {
            //if no maps hide radiobuttons and map
            ((MasterSearchPage)this.Master).HideSearchForm();
            ((MasterSearchPage)this.Master).HideMap();
            this.divEnlarge.Visible = false;
        }
        else
        {
            divAvailableLayers.Visible = false;
        }
    }
Exemple #4
0
    private void toggleExpanded(int rowindex)
    {
        List <AreaOverview.AOPollutantTreeListRow> data = ViewState[COLDATA] as List <AreaOverview.AOPollutantTreeListRow>;

        AreaOverview.AOPollutantTreeListRow row = data[rowindex];

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

        //Load data from database, if not already loaded
        if (row.HasChildren && row.IsExpanded && !data.Any(r => r.Level == row.Level + 1 && r.ParentCode == row.Code))
        {
            List <string>       pollutantCodes = getOrderedPollutantCodes();
            MediumFilter.Medium medium         = this.ucMediumSelector.SelectedMedium;
            int pollutantGroupID = Convert.ToInt32(this.cbPollutantGroup.SelectedValue);

            if (row.Level == 0)
            {
                var activities = QueryLayer.AreaOverview.GetPollutantReleaseActivities(SearchFilter, medium, pollutantGroupID, new List <string> {
                    row.SectorCode
                }, pollutantCodes);
                addToData(activities);
            }
            else if (row.Level == 1)
            {
                var subactivities = QueryLayer.AreaOverview.GetPollutantReleaseSubActivities(SearchFilter, medium, pollutantGroupID, new List <string> {
                    row.ActivityCode
                }, pollutantCodes);
                addToData(subactivities);
            }
        }

        populateList(false); //do not restart paging
    }
Exemple #5
0
        public MediumFilter(MediumFilter.Medium medium)
        {
            ReleasesToAir        = false;
            ReleasesToWater      = false;
            ReleasesToSoil       = false;
            TransferToWasteWater = false;

            switch (medium)
            {
            case MediumFilter.Medium.Air:
            {
                ReleasesToAir = true;
                break;
            }

            case MediumFilter.Medium.Water:
            {
                ReleasesToWater = true;
                break;
            }

            case MediumFilter.Medium.Soil:
            {
                ReleasesToSoil = true;
                break;
            }

            case MediumFilter.Medium.WasteWater:
            {
                TransferToWasteWater = true;
                break;
            }
            }
        }
Exemple #6
0
    protected void UpdateSortColumnNames(MediumFilter.Medium selectedMedium)
    {
        switch (selectedMedium)
        {
        case MediumFilter.Medium.Air:
        {
            ViewState["QuantityTotalColumnName"]        = "QuantityAir";
            ViewState["QuantityAccidentalColumnName"]   = "QuantityAccidentalAir";
            ViewState["PercentageAccidentalColumnName"] = "PercentAccidentalAir";
            break;
        }

        case MediumFilter.Medium.Water:
        {
            ViewState["QuantityTotalColumnName"]        = "QuantityWater";
            ViewState["QuantityAccidentalColumnName"]   = "QuantityAccidentalWater";
            ViewState["PercentageAccidentalColumnName"] = "PercentAccidentalWater";
            break;
        }

        case MediumFilter.Medium.Soil:
        {
            ViewState["QuantityTotalColumnName"]        = "QuantitySoil";
            ViewState["QuantityAccidentalColumnName"]   = "QuantityAccidentalSoil";
            ViewState["PercentageAccidentalColumnName"] = "PercentAccidentalSoil";
            break;
        }
        }
    }
Exemple #7
0
    //create pollutant headers, order by name and save in view state
    private void preparePollutantHeaders(AreaOverviewSearchFilter filter, MediumFilter.Medium medium, int pollutantGroupID)
    {
        List <LOV_POLLUTANT> orderedPollutants = getOrderedPollutants(filter, medium, pollutantGroupID);

        Dictionary <string, string> pollutantHeaders = new Dictionary <string, string>();

        foreach (LOV_POLLUTANT p in orderedPollutants)
        {
            pollutantHeaders.Add(p.Code, LOVResources.PollutantNameShort(p.Code));
        }

        ViewState[COLHEADER] = pollutantHeaders;
    }
Exemple #8
0
    public void PopulateMaps(MediumFilter.Medium medium)
    {
        if (MediumFilter.Medium.Air == medium)
        {
            litSector.Visible = true;
            populateSectors();
        }
        else
        {
            litSector.Visible = false;
        }

        setMapList(medium);
    }
Exemple #9
0
        /// <summary>
        /// returns a dictionary with sheet headers <key, value> for pollutant releases time series search
        /// </summary>
        public static Dictionary <string, string> GetTsPollutantReleasesSearchHeader(
            PollutantReleasesTimeSeriesFilter filter,
            MediumFilter.Medium currentMedium,
            bool confidentialityAffected)
        {
            Dictionary <string, string> header = makeHeader();

            addArea(header, filter.AreaFilter);
            addActivity(header, filter.ActivityFilter);
            addPollutant(header, filter.PollutantFilter);
            addMedium(header, currentMedium);
            addConfidentiality(header, confidentialityAffected);

            return(header);
        }
Exemple #10
0
        /// <summary>
        /// returns a dictionary with sheet headers <key, value> for Area overview search
        /// </summary>
        public static Dictionary <string, string> GetAreaoverviewPollutantReleaseSearchHeader(
            AreaOverviewSearchFilter filter, int pollutantGroupID, MediumFilter.Medium medium,
            bool confidentialityAffected)
        {
            Dictionary <string, string> header = makeHeader();

            addLegalRegulation(header, filter.YearFilter.Year);
            addYear(header, filter.YearFilter);
            addArea(header, filter.AreaFilter);
            addPollutantGroup(header, pollutantGroupID);
            addMedium(header, medium);

            addConfidentiality(header, confidentialityAffected);
            return(header);
        }
Exemple #11
0
    public void Populate(PollutantReleasesTimeSeriesFilter filter, MediumFilter.Medium medium)
    {
        SearchFilter = filter;
        var counts = PollutantReleaseTrend.GetFacilityCounts(filter);

        this.ucMediumSelector.PopulateMediumRadioButtonList(filter.MediumFilter, medium, counts);

        // check that any relases are selected
        if (!filter.MediumFilter.ReleasesToAir &&
            !filter.MediumFilter.ReleasesToSoil &&
            !filter.MediumFilter.ReleasesToWater)
        {
            dataFound(false);
            return;
        }
    }
Exemple #12
0
        /// <summary>
        /// returns a dictionary with csv headers <key, value> for pollutant release search
        /// </summary>
        public static Dictionary <string, string> GetPollutantReleaseSearchHeader(
            PollutantReleaseSearchFilter filter,
            MediumFilter.Medium medium,
            bool confidentialityAffected)
        {
            Dictionary <string, string> header = makeHeader();

            addPollutant(header, filter.PollutantFilter);
            addMedium(header, medium);
            addYear(header, filter.YearFilter);
            addArea(header, filter.AreaFilter);

            addConfidentiality(header, confidentialityAffected);

            return(header);
        }
    private void showContent(PollutantReleasesTimeSeriesFilter filter, MediumFilter.Medium medium)
    {
        CurrentMedium = medium;

        //examine if there exists any confidential data for the medium given
        bool hasConfidentialInformationMedium = PollutantReleaseTrend.IsAffectedByConfidentiality(filter, medium);

        this.divConfidentialityInformation.Visible   = hasConfidentialInformationMedium;
        this.divNoConfidentialityInformation.Visible = !hasConfidentialInformationMedium;

        if (hasConfidentialInformationMedium)
        {
            this.lvConfidentiality.DataSource = PollutantReleaseTrend.GetConfidentialTimeSeries(filter, medium);
            this.lvConfidentiality.DataBind();
        }
    }
Exemple #14
0
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        var           filter           = SearchFilter;
        int           pollutantGroupID = getPollutantGroupID();
        List <string> pollutantCodes   = getOrderedPollutantCodes();

        MediumFilter.Medium medium = this.ucMediumSelector.SelectedMedium;

        bool isConfidentialityAffected = AreaOverview.IsPollutantReleaseAffectedByConfidentiality(filter, medium, pollutantGroupID);

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

        // Create Body
        List <AreaOverview.AOPollutantTreeListRow> rows = AreaOverview.GetPollutantReleaseActivityTree(filter, medium, pollutantGroupID, pollutantCodes).ToList();

        sortData(rows);

        // dump to file
        string topheader           = csvformat.CreateHeader(header);
        string pollutantinfoHeader = csvformat.GetAreaOverviewPollutantInfoHeader(getOrderedPollutants(filter, medium, pollutantGroupID));
        string rowHeader           = csvformat.GetAreaOverviewPollutantDataHeader(getOrderedPollutants(filter, medium, pollutantGroupID));

        Response.WriteUtf8FileHeader("EPRTR_Areaoverview_PollutantReleases_List");

        Response.Write(topheader + pollutantinfoHeader + rowHeader);


        foreach (var item in rows)
        {
            string row = csvformat.GetAreaOverviewPollutantsRow(item);

            if (AreaOverview.AOPollutantTreeListRow.CODE_TOTAL.Equals(item.Code))
            {
                Response.Write(rowHeader);
            }

            Response.Write(row);
        }


        Response.End();
    }
Exemple #15
0
    // Loads data. Resets paging and expansion of activity rows.
    private void loadData()
    {
        MediumFilter.Medium medium = this.ucMediumSelector.SelectedMedium;
        int pollutantGroupID       = getPollutantGroupID();

        //prepare headers
        preparePollutantHeaders(SearchFilter, medium, pollutantGroupID);

        //get data and save in viewstate
        List <string> pollutantCodes = getOrderedPollutantCodes();
        List <AreaOverview.AOPollutantTreeListRow> data = AreaOverview.GetPollutantReleaseSectors(SearchFilter, medium, pollutantGroupID, pollutantCodes);

        sortData(data);
        ViewState[COLDATA] = data;

        //fill list and restart paging
        populateList(true);
    }
Exemple #16
0
        /// <summary>
        /// Returns true if the filter includes the medium given.
        /// </summary>
        public bool InludesMedium(MediumFilter.Medium medium)
        {
            switch (medium)
            {
            case Medium.Air:
                return(ReleasesToAir);

            case Medium.Water:
                return(ReleasesToWater);

            case Medium.Soil:
                return(ReleasesToSoil);

            case Medium.WasteWater:
                return(TransferToWasteWater);

            default:
                throw new ArgumentOutOfRangeException("Unknown medium");
            }
        }
    private Color[] getColors(MediumFilter.Medium medium)
    {
        Color[] colors = null;

        switch (medium)
        {
        case MediumFilter.Medium.Air:
            colors = new Color[] { Global.ColorAirAccidental, Global.ColorAirTotal };
            break;

        case MediumFilter.Medium.Soil:
            colors = new Color[] { Global.ColorSoilAccidental, Global.ColorSoilTotal };
            break;

        case MediumFilter.Medium.Water:
            colors = new Color[] { Global.ColorWaterAccidental, Global.ColorWaterTotal };
            break;
        }

        return(colors);
    }
    /// <summary>
    /// update piechat
    /// </summary>
    /// <param name="value"></param>
    private void updatePieChart(MediumFilter.Medium medium)
    {
        //The name and path of the .swf file.
        string swfFile = EPRTR.Charts.ChartsUtils.PollutantTransferPieChart;


        if (medium.Equals(MediumFilter.Medium.Air))
        {
            List <Summary.Quantity> air = ViewState[DATA_AIR] as List <Summary.Quantity>;
            DisplayChart(swfFile, air);
        }
        else if (medium.Equals(MediumFilter.Medium.Water))
        {
            List <Summary.Quantity> water = ViewState[DATA_WATER] as List <Summary.Quantity>;
            DisplayChart(swfFile, water);
        }
        else if (medium.Equals(MediumFilter.Medium.Soil))
        {
            List <Summary.Quantity> soil = ViewState[DATA_SOIL] as List <Summary.Quantity>;
            DisplayChart(swfFile, soil);
        }
    }
    public void Populate(int facilityid, string pollutantCode, MediumFilter.Medium medium)
    {
        PollutantCode = pollutantCode;
        //set parentcode
        LOV_POLLUTANT pollutant = ListOfValues.GetPollutant(pollutantCode);

        ParentCode = null;
        if (pollutant != null && pollutant.ParentID != null)
        {
            LOV_POLLUTANT pollutantGroup = ListOfValues.GetPollutant(pollutant.ParentID.Value);
            ParentCode = pollutantGroup != null ? pollutantGroup.Code : null;
        }

        List <TimeSeriesClasses.ConfidentialityPollutant> data = PollutantReleaseTrend.GetConfidentialTimeSeries(facilityid, pollutantCode, medium);
        bool hasConfidentialInformation = data.Any();

        this.divConfidentialityInformation.Visible   = hasConfidentialInformation;
        this.divNoConfidentialityInformation.Visible = !hasConfidentialInformation;

        this.lvConfidentiality.Visible    = true;
        this.lvConfidentiality.DataSource = data;
        this.lvConfidentiality.DataBind();
    }
        public static Func <POLLUTANTRELEASE, double?> QuantityTotal(MediumFilter.Medium medium)
        {
            Expression <Func <POLLUTANTRELEASE, double?> > func;

            switch (medium)
            {
            case MediumFilter.Medium.Air:
                func = z => z.QuantityAir;
                break;

            case MediumFilter.Medium.Soil:
                func = z => z.QuantitySoil;
                break;

            case MediumFilter.Medium.Water:
                func = z => z.QuantityWater;
                break;

            default:
                throw new ArgumentOutOfRangeException("medium", String.Format("Illegal medium:{0}", medium.ToString()));
            }
            return(func.Compile());
        }
    private void onItemCommand(object sender, ListViewCommandEventArgs e, MediumFilter.Medium medium)
    {
        ListView listView = (ListView)sender;
        // get rowindex
        ListViewDataItem dataItem = e.Item as ListViewDataItem;

        if (dataItem == null)
        {
            return;                   //safe check
        }
        int rowindex = dataItem.DataItemIndex;

        if (rowindex >= 0 && rowindex < listView.Items.Count)
        {
            string command = e.CommandName;
            if (command.Equals("toggletimeseries"))
            {
                // get pollutant for db lookup
                string pollutantcode = e.CommandArgument.ToString();

                ucFacilityPollutantReleasesTrendSheet timeseries = (ucFacilityPollutantReleasesTrendSheet)listView.Items[rowindex].FindControl("timeSeries");
                timeseries.Visible = !timeseries.Visible;

                Control div = listView.Items[rowindex].FindControl("subsheet");
                div.Visible = !div.Visible;

                if (timeseries.Visible)
                {
                    // create time series
                    int facilityReportId = (int)ViewState[FACILITYREPORTID];
                    int searchYear       = (int)ViewState[SEARCH_YEAR];
                    timeseries.Populate(facilityReportId, searchYear, pollutantcode, medium);
                }
            }
        }
    }
    public void Populate(PollutantReleasesTimeSeriesFilter filter, bool hasConfidentialInformation, MediumFilter.Medium medium)
    {
        SearchFilter = filter;

        LOV_POLLUTANT pollutant = ListOfValues.GetPollutant(filter.PollutantFilter.PollutantID);

        PollutantCode = pollutant != null ? pollutant.Code : null;

        //set parentcode
        ParentCode = null;
        if (pollutant != null && pollutant.ParentID != null)
        {
            LOV_POLLUTANT pollutantGroup = ListOfValues.GetPollutant(pollutant.ParentID.Value);
            ParentCode = pollutantGroup != null ? pollutantGroup.Code : null;
        }

        this.ucMediumSelector.Visible = hasConfidentialInformation;

        if (hasConfidentialInformation)
        {
            var count = PollutantReleaseTrend.GetFacilityCounts(filter);
            this.ucMediumSelector.PopulateMediumRadioButtonList(filter.MediumFilter, medium, count);
        }
    }
Exemple #23
0
        //D30 END 16/05/2013
        /// <summary>
        /// Get pollutant releases for a specific facility report and medium
        /// </summary>
        public static IEnumerable <FACILITYDETAIL_POLLUTANTRELEASE> GetPollutantReleases(int reportID, MediumFilter.Medium medium)
        {
            string pollutantTo = EnumUtil.GetStringValue(medium);

            DataClassesFacilityDataContext db = getDataContext();
            IEnumerable <FACILITYDETAIL_POLLUTANTRELEASE> data = db.FACILITYDETAIL_POLLUTANTRELEASEs.Where(p => p.FacilityReportID == reportID && p.PollutantTo.Equals(pollutantTo)).OrderBy(x => x.PollutantCode);

            return(data);
        }
    /// <summary>
    /// updateTimeSeries
    /// </summary>
    private void updateCompareChart(PollutantReleasesTimeSeriesFilter filter, MediumFilter.Medium medium)
    {
        CurrentMedium = medium;

        // view everything, user may select other years to compare
        dataFound(true);

        // init year combo boxes
        int year1 = this.ucYearCompare.Year1;
        int year2 = this.ucYearCompare.Year2;

        // get compare result compare char
        TimeSeriesClasses.ComparisonPollutant result = PollutantReleaseTrend.GetComparisonTimeSeries(filter, year1, year2, medium);
        bool foundData = (result.QuantityFrom != null || result.QuantityTo != null);

        if (foundData)
        {
            Color[] colors = new Color[] { };

            // create compare chart and table
            if (medium.Equals(MediumFilter.Medium.Air))
            {
                colors = new Color[] { Global.ColorAirTotal, Global.ColorAirTotal };
            }
            else if (medium.Equals(MediumFilter.Medium.Water))
            {
                // get report data
                colors = new Color[] { Global.ColorWaterTotal, Global.ColorWaterTotal };
            }
            else if (medium.Equals(MediumFilter.Medium.Soil))
            {
                colors = new Color[] { Global.ColorSoilTotal, Global.ColorSoilTotal };
            }

            ChartHatchStyle[] hatchStyles = new ChartHatchStyle[] { Global.HatchStyleBothYears, Global.HatchStyleTotal };
            string[]          legendTexts = new string[] { Resources.GetGlobal("Common", "FacilitiesBothYears"), Resources.GetGlobal("Common", "AllFacilities") };
            this.ucStackColumnCompare.Initialize(colors.Length, StackColumnType.Comparison, PollutantReleaseTrend.CODE_KG, colors, hatchStyles, legendTexts);

            TimeSeriesUtils.BarData dataFrom = new TimeSeriesUtils.BarData
            {
                Year   = result.YearFrom,
                Values = new double?[] { TimeSeriesUtils.RangeValue(result.BothQuantityFrom), TimeSeriesUtils.RangeValue(result.QuantityFrom) - TimeSeriesUtils.RangeValue(result.BothQuantityFrom) },
            };

            TimeSeriesUtils.BarData dataTo = new TimeSeriesUtils.BarData
            {
                Year   = result.YearTo,
                Values = new double?[] { TimeSeriesUtils.RangeValue(result.BothQuantityTo), TimeSeriesUtils.RangeValue(result.QuantityTo) - TimeSeriesUtils.RangeValue(result.BothQuantityTo) },
            };

            // from and to bar
            this.ucStackColumnCompare.Add(new List <TimeSeriesUtils.BarData>()
            {
                dataFrom, dataTo
            });

            // update sinle table
            updateTable(result);
        }
        else
        {
            dataFound(false);
        }
    }
    /// <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);
        }
    }
Exemple #26
0
    /// <summary>
    /// Create trend sheet
    /// </summary>
    private void createTrendSheet(TrendReleaseContent type, int facilityid, MediumFilter.Medium medium)
    {
        this.ucStackColumnTime.Visible    = false;
        this.ucStackColumnCompare.Visible = false;
        this.ucYearCompareEPER.Visible    = false;
        this.compareTable.Visible         = false;

        // Get time series data, used by all sub sheets
        List <TimeSeriesClasses.PollutantReleases> data = getTimeSeriesData(facilityid, medium);



        // comparison
        if (type == TrendReleaseContent.Comparison)
        {
            ViewState[CONTENT_TYPE] = TrendReleaseContent.Comparison;

            if (data != null && data.Count > 0)
            {
                this.compareTable.Visible = true;

                // Create chart
                this.ucStackColumnCompare.Visible = true;

                Color[]  colors     = getColors(medium);
                string[] labelTexts = new string[] { "", Resources.GetGlobal("Common", "ControlledEPER") }; //, Resources.GetGlobal("Common", "Accidental") };

                // init year combo boxes
                // this.ucYearCompareEPER.Visible = true;
                int year1 = this.ucYearCompareEPER.Year1;
                int year2 = this.ucYearCompareEPER.Year2;
                // reset
                resetLabels();

                TimeSeriesClasses.PollutantReleases data1 = data.Where(d => d.Year == year1).DefaultIfEmpty(new TimeSeriesClasses.PollutantReleases(year1)).Single();
                TimeSeriesClasses.PollutantReleases data2 = data.Where(d => d.Year == year2).DefaultIfEmpty(new TimeSeriesClasses.PollutantReleases(year2)).Single();

                bool dataFound = data1 != null || data2 != null;

                if (data1.Quantity >= 100000)
                {
                    this.ucStackColumnCompare.Initialize(colors.Length, StackColumnTypeEPER.Comparison, "TNE", colors, labelTexts);
                }
                else
                {
                    this.ucStackColumnCompare.Initialize(colors.Length, StackColumnTypeEPER.Comparison, PollutantReleaseTrend.CODE_KG, colors, labelTexts);
                }


                if (dataFound)
                {
                    TimeSeriesUtils.BarData dataFrom = new TimeSeriesUtils.BarData {
                        Year = year1
                    };
                    TimeSeriesUtils.BarData dataTo = new TimeSeriesUtils.BarData {
                        Year = year2
                    };

                    if (data1 != null)
                    {
                        dataFrom.Values = new double?[] { data1.QuantityAccidental, data1.Quantity - data1.QuantityAccidental };
                    }

                    if (data2 != null)
                    {
                        dataTo.Values = new double?[] { data2.QuantityAccidental, data2.Quantity - data2.QuantityAccidental };
                    }

                    // from and to bar
                    this.ucStackColumnCompare.Add(new List <TimeSeriesUtils.BarData>()
                    {
                        dataFrom, dataTo
                    });
                    updateTableLabels(data1, data2);
                }

                // display that no data found for the selected years
                this.lbNoDataForSelectedYears.Visible = !dataFound;
            }
        }
    }
    /// <summary>
    /// getTimeSeriesData
    /// </summary>
    private List <TimeSeriesClasses.PollutantReleases> getTimeSeriesData(int facilityid, MediumFilter.Medium medium)
    {
        List <TimeSeriesClasses.PollutantReleases> data = null;

        // look in viewstate first
        if (medium == MediumFilter.Medium.Air)
        {
            data = ViewState[TIMESERIES_AIR] as List <TimeSeriesClasses.PollutantReleases>;
        }
        else if (medium == MediumFilter.Medium.Water)
        {
            data = ViewState[TIMESERIES_WATER] as List <TimeSeriesClasses.PollutantReleases>;
        }
        else if (medium == MediumFilter.Medium.Soil)
        {
            data = ViewState[TIMESERIES_SOIL] as List <TimeSeriesClasses.PollutantReleases>;
        }

        // if no data in viewstate or id has changed, query db
        if ((data == null || data.Count() == 0))
        {
            data = PollutantReleaseTrend.GetTimeSeries(facilityid, PollutantCode, medium);
            if (medium == MediumFilter.Medium.Air)
            {
                ViewState[TIMESERIES_AIR] = data;
            }
            else if (medium == MediumFilter.Medium.Water)
            {
                ViewState[TIMESERIES_WATER] = data;
            }
            else if (medium == MediumFilter.Medium.Soil)
            {
                ViewState[TIMESERIES_SOIL] = data;
            }
        }
        return(data);
    }
    /// <summary>
    /// Create trend sheet
    /// </summary>
    private void createTrendSheet(TrendReleaseContent type, int facilityid, MediumFilter.Medium medium)
    {
        this.ucStackColumnTime.Visible    = false;
        this.ucStackColumnCompare.Visible = false;
        this.ucYearCompareSeries.Visible  = false;
        this.compareTable.Visible         = false;

        // Get time series data, used by all sub sheets
        List <TimeSeriesClasses.PollutantReleases> data = getTimeSeriesData(facilityid, medium);

        // Time series sheet
        if (type == TrendReleaseContent.TimeSeries)
        {
            ViewState[CONTENT_TYPE] = TrendReleaseContent.TimeSeries;
            if (data != null && data.Count > 0)
            {
                this.ucStackColumnTime.Visible = true;

                // initialize chart

                Color[]           colors      = getColors(medium);
                string[]          labelTexts  = new string[] { Resources.GetGlobal("Common", "Accidental"), Resources.GetGlobal("Common", "Controlled") };
                ChartHatchStyle[] hatchStyles = new ChartHatchStyle[] { ChartHatchStyle.None, ChartHatchStyle.None };
                this.ucStackColumnTime.Initialize(colors.Length, StackColumnType.TimeSeries, PollutantReleaseTrend.CODE_KG, colors, hatchStyles, labelTexts);

                List <TimeSeriesUtils.BarData> bars = new List <TimeSeriesUtils.BarData>();

                foreach (var v in data)
                {
                    string[] tip = new string[] { String.Format("{0}: {1}", Resources.GetGlobal("Common", "Year"), v.Year),
                                                  String.Format("{0}: {1}", Resources.GetGlobal("Pollutant", "ReleasesTotal"), QuantityFormat.Format(v.Quantity, v.QuantityUnit)),
                                                  String.Format("{0}: {1}", Resources.GetGlobal("Pollutant", "ReleasesAccidentalReleases"), QuantityFormat.Format(v.QuantityAccidental, v.QuantityAccidentalUnit)),
                                                  (v.AccidentalPercent > 0.0) ? String.Format("{0}: {1:F5}%", Resources.GetGlobal("Pollutant", "ReleasesAccidentalPercentValue"), v.AccidentalPercent) : String.Format("{0}: 0%", Resources.GetGlobal("Pollutant", "ReleasesAccidentalPercentValue")) };


                    TimeSeriesUtils.BarData cd = new TimeSeriesUtils.BarData
                    {
                        Year    = v.Year,
                        Values  = new double?[] { TimeSeriesUtils.RangeValue(v.QuantityAccidental), TimeSeriesUtils.RangeValue(v.Quantity) - TimeSeriesUtils.RangeValue(v.QuantityAccidental) },
                        ToolTip = ToolTipFormatter.FormatLines(tip)
                    };
                    bars.Add(cd);
                }

                if ((medium == MediumFilter.Medium.Air) || (medium == MediumFilter.Medium.Water))
                {
                    this.ucStackColumnTime.Add(TimeSeriesUtils.InsertMissingYears(bars, showEPER));
                }
                if (medium == MediumFilter.Medium.Soil)
                {
                    this.ucStackColumnTime.Add(TimeSeriesUtils.InsertMissingYearsTimeSeries(bars, showEPER));
                }
            }
        }

        // comparison
        if (type == TrendReleaseContent.Comparison)
        {
            ViewState[CONTENT_TYPE] = TrendReleaseContent.Comparison;

            if (data != null && data.Count > 0)
            {
                this.compareTable.Visible = true;

                // Create chart
                this.ucStackColumnCompare.Visible = true;

                Color[]           colors      = getColors(medium);
                ChartHatchStyle[] hatchStyles = new ChartHatchStyle[] { ChartHatchStyle.None, ChartHatchStyle.None };
                string[]          labelTexts  = new string[] { Resources.GetGlobal("Common", "Accidental"), Resources.GetGlobal("Common", "Controlled") };

                this.ucStackColumnCompare.Initialize(colors.Length, StackColumnType.Comparison, PollutantReleaseTrend.CODE_KG, colors, hatchStyles, labelTexts);
                //this.ucStackColumnCompare.Initialize(colors.Length, StackColumnType.Comparison, PollutantReleaseTrend.CODE_TNE, colors, labelTexts);

                // init year combo boxes
                this.ucYearCompareSeries.Visible = true;
                int year1 = this.ucYearCompareSeries.Year1;
                int year2 = this.ucYearCompareSeries.Year2;
                // reset
                resetLabels();

                TimeSeriesClasses.PollutantReleases data1 = data.Where(d => d.Year == year1).DefaultIfEmpty(new TimeSeriesClasses.PollutantReleases(year1)).Single();
                TimeSeriesClasses.PollutantReleases data2 = data.Where(d => d.Year == year2).DefaultIfEmpty(new TimeSeriesClasses.PollutantReleases(year2)).Single();

                bool dataFound = data1 != null || data2 != null;


                if (dataFound)
                {
                    TimeSeriesUtils.BarData dataFrom = new TimeSeriesUtils.BarData {
                        Year = year1
                    };
                    TimeSeriesUtils.BarData dataTo = new TimeSeriesUtils.BarData {
                        Year = year2
                    };

                    if (data1 != null)
                    {
                        dataFrom.Values = new double?[] { data1.QuantityAccidental, data1.Quantity - data1.QuantityAccidental };
                    }

                    if (data2 != null)
                    {
                        dataTo.Values = new double?[] { data2.QuantityAccidental, data2.Quantity - data2.QuantityAccidental };
                    }

                    // from and to bar
                    this.ucStackColumnCompare.Add(new List <TimeSeriesUtils.BarData>()
                    {
                        dataFrom, dataTo
                    });
                    updateTableLabels(data1, data2);
                }

                // display that no data found for the selected years
                this.lbNoDataForSelectedYears.Visible = !dataFound;
            }
        }
    }
Exemple #29
0
    /// <summary>
    /// updateTimeSeries
    /// </summary>
    private void updateTimeSeries(PollutantReleasesTimeSeriesFilter filter, MediumFilter.Medium medium)
    {
        CurrentMedium = medium;

        // assume data is found
        dataFound(true);

        // result from qyerylayer
        List <TimeSeriesClasses.PollutantReleases> data = PollutantReleaseTrend.GetTimeSeries(filter, medium);;

        if (data == null || data.Count == 0)
        {
            dataFound(false); return;
        }

        // set report data to table
        this.lvTimeSeriesTable.DataSource = data;
        this.lvTimeSeriesTable.DataBind();


        Color[]  colors      = new Color[] {};
        string[] legendTexts = new string[] { Resources.GetGlobal("Common", "Accidental"), Resources.GetGlobal("Common", "Controlled") };

        // init chart. Must be done after table databinding, because missing years are added.
        if (medium.Equals(MediumFilter.Medium.Air))
        {
            colors = new Color[] { Global.ColorAirAccidental, Global.ColorAirTotal };
        }
        else if (medium.Equals(MediumFilter.Medium.Water))
        {
            colors = new Color[] { Global.ColorWaterAccidental, Global.ColorWaterTotal };
        }
        else if (medium.Equals(MediumFilter.Medium.Soil))
        {
            colors = new Color[] { Global.ColorSoilAccidental, Global.ColorSoilTotal };
        }

        ChartHatchStyle[] hatchStyles = new ChartHatchStyle[] { ChartHatchStyle.None, ChartHatchStyle.None };

        this.ucStackColumnTime.Initialize(colors.Length, StackColumnType.TimeSeries, PollutantReleaseTrend.CODE_KG, colors, hatchStyles, legendTexts);
        //this.ucStackColumnTime.Initialize(colors.Length, StackColumnType.TimeSeries, PollutantReleaseTrend.CODE_TNE, colors, legendTexts);

        List <TimeSeriesUtils.BarData> bars = new List <TimeSeriesUtils.BarData>();

        foreach (var v in data)
        {
            string[] tip = new string[] { String.Format("{0}: {1}", Resources.GetGlobal("Common", "Year"), v.Year),
                                          String.Format("{0}: {1}", Resources.GetGlobal("Common", "Facilities"), v.Facilities),
                                          String.Format("{0}: {1}", Resources.GetGlobal("Pollutant", "ReleasesTotal"), QuantityFormat.Format(v.Quantity, v.QuantityUnit)),
                                          String.Format("{0}: {1}", Resources.GetGlobal("Pollutant", "ReleasesAccidentalReleases"), QuantityFormat.Format(v.QuantityAccidental, v.QuantityAccidentalUnit)),
                                          (v.AccidentalPercent > 0.0) ? String.Format("{0}: {1:F5}%", Resources.GetGlobal("Pollutant", "ReleasesAccidentalPercentValue"), v.AccidentalPercent) : String.Format("{0}: 0%", Resources.GetGlobal("Pollutant", "ReleasesAccidentalPercentValue")) };

            TimeSeriesUtils.BarData cd = new TimeSeriesUtils.BarData
            {
                Year    = v.Year,
                Values  = new double?[] { TimeSeriesUtils.RangeValue(v.QuantityAccidental), TimeSeriesUtils.RangeValue(v.Quantity) - TimeSeriesUtils.RangeValue(v.QuantityAccidental) },
                ToolTip = ToolTipFormatter.FormatLines(tip)
            };
            bars.Add(cd);
        }

        this.ucStackColumnTime.Add(TimeSeriesUtils.InsertMissingYearsTimeSeries(bars, false));
    }
Exemple #30
0
    private List <LOV_POLLUTANT> getOrderedPollutants(AreaOverviewSearchFilter filter, MediumFilter.Medium medium, int pollutantGroupID)
    {
        List <string> pollutantCodes = AreaOverview.GetPollutantReleasePollutantCodes(filter, medium, pollutantGroupID);

        IEnumerable <LOV_POLLUTANT> pollutants = ListOfValues.Pollutants(pollutantGroupID).Where(p => pollutantCodes.Contains(p.Code));

        //sort by short name
        List <LOV_POLLUTANT> orderedPollutants = pollutants.OrderBy(p => LOVResources.PollutantNameShort(p.Code)).ToList();

        //Add confidential in group to the end of the list.
        LOV_POLLUTANT confPollutant = ListOfValues.GetPollutant(pollutantGroupID);

        if (pollutantCodes.Contains(confPollutant.Code))
        {
            orderedPollutants.Add(confPollutant);
        }

        return(orderedPollutants);
    }