Example #1
0
    /// <summary>
    /// Initialize the bars.
    /// </summary>
    /// <param name="series">The number of series to include in the bar chart</param>
    /// <param name="type">The type of time series chart</param>
    /// <param name="barcolors">The colors to use for the series. The number of colors given must corresponds to the number of series</param>
    /// <param name="barHatchStyles">The hatchstyles to use for the series. The number of styles given must corresponds to the number of series</param>
    /// <param name="legendTexts">The texts to be shown in the legends. If null, no legends will be shown</paparam>
    /// <param name="unitCode">The unit code corresponding to the y-axis</param>
    public void Initialize(int series, StackColumnType type, string unitCode, Color[] barColors, ChartHatchStyle[] barHatchStyles, string[] legendTexts)
    {
        if (series != barColors.Length)
        {
            throw (new ArgumentException("number of colors must correspond to the number of series"));
        }

        if (series != barHatchStyles.Length)
        {
            throw (new ArgumentException("number of hatch styles must correspond to the number of series"));
        }

        if (legendTexts != null && series != legendTexts.Length)
        {
            throw (new ArgumentException("number of legend tetxs must correspond to the number of series"));
        }

        //set in view state
        this.Type = type;

        setAxisYTitle(LOVResources.UnitName(unitCode));
        setFont();
        setLegendStyle(type);

        //add series and legends
        this.stackcolumn.Series.Clear();
        this.stackcolumn.Legends[0].CustomItems.Clear();

        for (int i = 0; i < series; i++)
        {
            Series bar = this.stackcolumn.Series.Add(i.ToString());
            bar.ChartType         = SeriesChartType.StackedColumn;
            bar.Color             = barColors[i];
            bar.IsVisibleInLegend = false; //use custom legends instead.
            bar.BackHatchStyle    = barHatchStyles[i];

            if (legendTexts != null)
            {
                LegendItem item = new LegendItem();
                item.Name           = legendTexts[i];
                item.SeriesName     = legendTexts[i];
                item.BorderColor    = Color.Black;
                item.Color          = bar.Color;
                item.BackHatchStyle = bar.BackHatchStyle;
                item.ImageStyle     = LegendImageStyle.Rectangle;

                this.stackcolumn.Legends[0].CustomItems.Add(item);
            }
        }

        this.stackcolumn.Legends[0].CustomItems.Reverse();
    }
    /// <summary>
    /// Manual insertion of all facility level details into List, which is in turn bound to GridView
    /// </summary>
    private void populateDetails(int facilityReportId)
    {
        FACILITYDETAIL_DETAIL fac = Facility.GetFacilityDetails(facilityReportId).First();
        FACILITYDETAIL_COMPETENTAUTHORITYPARTY authority = Facility.GetFacilityCompetentAuthority(facilityReportId).First();

        List <FacilityDetailElement> elements = new List <FacilityDetailElement>();

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "FacilityDetailsTitle"),
                         String.Empty,
                         true));


        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "ParentCompanyName"),
                         ConfidentialFormat.Format(fac.ParentCompanyName, fac.ConfidentialIndicator)));

        // Take "Valid" string from FACILITY_DETAIL_DETAIL
        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "Coords"),
                         CoordinateFormat.Format(fac.Coordinates, "VALID")));


        //NUTS is voluntary. Only add if reported.
        if (!string.IsNullOrEmpty(fac.NUTSRegionSourceCode))
        {
            //Add both reported and geo-coded value - if they differ.
            if (fac.NUTSRegionSourceCode != fac.NUTSRegionLevel2Code)
            {
                elements.Add(new FacilityDetailElement(
                                 Resources.GetGlobal("Facility", "NUTSMap"),
                                 LOVResources.NutsRegionName(fac.NUTSRegionLevel2Code)));
                elements.Add(new FacilityDetailElement(
                                 Resources.GetGlobal("Facility", "NUTSReported"),
                                 LOVResources.NutsRegionName(fac.NUTSRegionSourceCode)));
            }
            else
            {
                elements.Add(new FacilityDetailElement(
                                 Resources.GetGlobal("Facility", "NUTS"),
                                 LOVResources.NutsRegionName(fac.NUTSRegionLevel2Code)));
            }
        }

        //Add both reported and geo-coded value - if they differ.
        if (fac.RiverBasinDistrictSourceCode != fac.RiverBasinDistrictCode)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "RBDMap"),
                             LOVResources.RiverBasinDistrictName(fac.RiverBasinDistrictCode)));

            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "RBDReported"),
                             LOVResources.RiverBasinDistrictName(fac.RiverBasinDistrictSourceCode)));
        }
        else
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "RBD"),
                             LOVResources.RiverBasinDistrictName(fac.RiverBasinDistrictCode)));
        }

        //NACE code reported on sub-activity level, except for EPER where some is reported on Activity level
        //string naceCode = !String.IsNullOrEmpty(fac.NACESubActivityCode) ? fac.NACESubActivityCode : fac.NACEActivityCode;
        string naceCode = !String.IsNullOrEmpty(fac.NACEActivityCode) ? fac.NACEActivityCode : fac.NACESectorCode;

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "NACE"),
                         LOVResources.NaceActivityName(naceCode)));

        //Production volume is voluntary. Only add if reported.
        if (fac.ProductionVolumeQuantity != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "ProductionV"),
                             String.Format("{0} {1} {2}",
                                           fac.ProductionVolumeProductName,
                                           NumberFormat.Format(fac.ProductionVolumeQuantity),
                                           LOVResources.UnitName(fac.ProductionVolumeUnitCode))));
        }

        //No. of IPPC installations is voluntary. Only add if reported.
        if (fac.TotalIPPCInstallationQuantity != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "IPPC"),
                             NumberFormat.Format(fac.TotalIPPCInstallationQuantity)));
        }

        //No. of emplyees is voluntary. Only add if reported.
        if (fac.TotalEmployeeQuantity != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "Employ"),
                             NumberFormat.Format(fac.TotalEmployeeQuantity)));
        }

        //Operating hours is voluntary. Only add if reported.
        if (fac.OperatingHours != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "OperationHours"),
                             String.Format("{0}", fac.OperatingHours)));
        }

        //Website is voluntary. Only add if reported.
        if (!string.IsNullOrEmpty(fac.WebsiteCommunication))
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "WebSite"),
                             String.Format("{0}", fac.WebsiteCommunication)));
        }

        if (fac.ConfidentialIndicatorCode != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Pollutant", "ConfidentialityReason"),
                             LOVResources.ConfidentialityReason(fac.ConfidentialIndicatorCode)));
        }

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Common", "NationalID") + ":",
                         FacilityDetailsFormat.FormatNationalId(fac)));


        // This is not the most elegant way to obtain a spacing  spacing
        elements.Add(new FacilityDetailElement(String.Empty, String.Empty));

        string updatedDateString = authority.CALastUpdate == null
                                       ? Resources.GetGlobal("Facility", "LastUpdatedUnknown")
                                       : authority.CALastUpdate.Format();

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "CompetentA"),
                         String.Format(Resources.GetGlobal("Facility", "LastUpdated"), updatedDateString),
                         true));

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "Name"),
                         String.Format(authority.CAName)));

        if (authority.CAAddress != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "Address"),
                             AddressFormat.Format(authority.CAAddress, authority.CACity, authority.CAPostalCode, false)));
        }

        if (authority.CATelephoneCommunication != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "Phone"),
                             String.Format(authority.CATelephoneCommunication)));
        }

        if (authority.CAFaxCommunication != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "Fax"),
                             String.Format(authority.CAFaxCommunication)));
        }

        elements.Add(new FacilityDetailElement(
                         Resources.GetGlobal("Facility", "Email"),
                         String.Format(authority.CAEmailCommunication)));

        if (authority.CAContactPersonName != null)
        {
            elements.Add(new FacilityDetailElement(
                             Resources.GetGlobal("Facility", "CPerson"),
                             String.Format(authority.CAContactPersonName)));
        }

        // data binding
        facilityreportDetails.DataSource = elements;
        facilityreportDetails.DataBind();
    }