Exemplo n.º 1
0
    private void RenderGridSystemReportType_SystemReports(SystemReportType SRT, CallBackEventArgs e)
    {
        switch (SRT)
        {
        case SystemReportType.SystemBusinessReport:
            this.GridSystemBusinessReport_SystemReports.Visible = true;
            this.GridSystemBusinessReport_SystemReports.RenderControl(e.Output);
            break;

        case SystemReportType.SystemEngineReport:
            this.GridSystemEngineReport_SystemReports.Visible = true;
            this.GridSystemEngineReport_SystemReports.RenderControl(e.Output);
            break;

        case SystemReportType.SystemWindowsServiceReport:
            this.GridSystemWindowsServiceReport_SystemReports.Visible = true;
            this.GridSystemWindowsServiceReport_SystemReports.RenderControl(e.Output);
            break;

        case SystemReportType.SystemUserActionReport:
            this.GridSystemUserActionReport_SystemReports.Visible = true;
            this.GridSystemUserActionReport_SystemReports.RenderControl(e.Output);
            break;
        }
    }
Exemplo n.º 2
0
        public int GetSystemReportTypeCount(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            int SystemReportTypeCount = 0;

            switch (SRT)
            {
            case SystemReportType.SystemBusinessReport:
                System.Linq.Expressions.Expression <Func <SystemBusinessReport, bool> > SystemBusinessReportExpression = (System.Linq.Expressions.Expression <Func <SystemBusinessReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions);
                SystemReportTypeCount = this.SrtDataContext.SystemBusinessReports.Where(SystemBusinessReportExpression).Count();
                break;

            case SystemReportType.SystemEngineReport:
                System.Linq.Expressions.Expression <Func <SystemEngineReport, bool> > SystemEngineReportExpression = (System.Linq.Expressions.Expression <Func <SystemEngineReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions);
                SystemReportTypeCount = this.SrtDataContext.SystemEngineReports.Where(SystemEngineReportExpression).Count();
                break;

            case SystemReportType.SystemWindowsServiceReport:
                System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> > SystemWindowsServiceReportExpression = (System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions);
                SystemReportTypeCount = this.SrtDataContext.SystemWindowsServiceReports.Where(SystemWindowsServiceReportExpression).Count();
                break;

            case SystemReportType.SystemUserActionReport:
                System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> > SystemUserActionReportExpression = (System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions);
                SystemReportTypeCount = this.SrtDataContext.SystemUserActionReports.Where(SystemUserActionReportExpression).Count();
                break;
            }
            return(SystemReportTypeCount);
        }
Exemplo n.º 3
0
    private void SetSystemReportTypePageSize_SystemReports(SystemReportType SRT)
    {
        int PageSize = 0;

        switch (SRT)
        {
        case SystemReportType.SystemBusinessReport:
            PageSize = this.GridSystemBusinessReport_SystemReports.PageSize;
            break;

        case SystemReportType.SystemEngineReport:
            PageSize = this.GridSystemEngineReport_SystemReports.PageSize;
            break;

        case SystemReportType.SystemWindowsServiceReport:
            PageSize = this.GridSystemWindowsServiceReport_SystemReports.PageSize;
            break;

        case SystemReportType.SystemUserActionReport:
            PageSize = this.GridSystemUserActionReport_SystemReports.PageSize;
            break;

        case SystemReportType.SystemEngineDebugReport:
            PageSize = this.GridSystemEngineDebugReport_SystemReports.PageSize;
            break;
        }
        this.hfSystemReportTypePageSize_SystemReports.Value = PageSize.ToString();
    }
Exemplo n.º 4
0
        private object GetSystemReportTypeFilterConditions(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            object expresionObj = null;
            Dictionary <string, DateTime> SystemReportTypeConditionsDatesDic = this.GetSystemReportTypeConditionsDates(SrtFilterConditions);
            DateTime FromDate   = SystemReportTypeConditionsDatesDic["FromDate"];
            DateTime ToDate     = SystemReportTypeConditionsDatesDic["ToDate"];
            string   SearchTerm = SrtFilterConditions.SearchTerm;

            switch (SRT)
            {
            case SystemReportType.SystemBusinessReport:
                System.Linq.Expressions.Expression <Func <SystemBusinessReport, bool> > SystemBusinessReportExpresion = x => (x.Username.Contains(SearchTerm) ||
                                                                                                                              x.IPAddress.Contains(SearchTerm) ||
                                                                                                                              x.ClassName.Contains(SearchTerm) ||
                                                                                                                              x.MethodName.Contains(SearchTerm) ||
                                                                                                                              x.Message.Contains(SearchTerm) ||
                                                                                                                              x.Level.Contains(SearchTerm) ||
                                                                                                                              x.Exception.Contains(SearchTerm) ||
                                                                                                                              x.ExceptionSource.Contains(SearchTerm)) &&
                                                                                                                        x.Date.Date >= FromDate &&
                                                                                                                        x.Date.Date <= ToDate;
                expresionObj = (object)SystemBusinessReportExpresion;
                break;

            case SystemReportType.SystemEngineReport:
                System.Linq.Expressions.Expression <Func <SystemEngineReport, bool> > SystemEngineReportExpression = x => (x.PersonBarcode.Contains(SearchTerm) ||
                                                                                                                           x.Level.Contains(SearchTerm) ||
                                                                                                                           x.Message.Contains(SearchTerm) ||
                                                                                                                           x.Exception.Contains(SearchTerm)) &&
                                                                                                                     x.Date.Date >= FromDate &&
                                                                                                                     x.Date.Date <= ToDate;
                expresionObj = (object)SystemEngineReportExpression;
                break;

            case SystemReportType.SystemWindowsServiceReport:
                System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> > SystemWindowsServiceReportExpression = x => (x.Level.Contains(SearchTerm) ||
                                                                                                                                           x.Message.Contains(SearchTerm) ||
                                                                                                                                           x.Exception.Contains(SearchTerm)) &&
                                                                                                                                     x.Date.Date >= FromDate &&
                                                                                                                                     x.Date.Date <= ToDate;
                expresionObj = (object)SystemWindowsServiceReportExpression;
                break;

            case SystemReportType.SystemUserActionReport:
                System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> > SystemUserActionReportExpression = x => (x.Username.Contains(SearchTerm) ||
                                                                                                                                   x.IPAddress.Contains(SearchTerm) ||
                                                                                                                                   x.PageID.Contains(SearchTerm) ||
                                                                                                                                   x.ClassName.Contains(SearchTerm) ||
                                                                                                                                   x.MethodName.Contains(SearchTerm) ||
                                                                                                                                   x.Action.Contains(SearchTerm) ||
                                                                                                                                   x.ObjectInformation.Contains(SearchTerm)) &&
                                                                                                                             x.Date.Value.Date >= FromDate &&
                                                                                                                             x.Date.Value.Date <= ToDate;
                expresionObj = (object)SystemUserActionReportExpression;
                break;
            }
            return(expresionObj);
        }
Exemplo n.º 5
0
        public IList <SystemEngineDebugReport> GetSystemEngineDebugReportList(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions, LanguagesName appLanguage)
        {
            //ApplicationLanguageSettings AppLanguageSettings = this.GetCurrentApplicationLanguageSettings();
            System.Linq.Expressions.Expression <Func <SystemEngineDebugReport, bool> > SystemEngineDebugReportExpression = (System.Linq.Expressions.Expression <Func <SystemEngineDebugReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions, appLanguage);
            IList <SystemEngineDebugReport> SystemEngineDebugReportList = this.SrtDataContext.SystemEngineDebugReports.Where(SystemEngineDebugReportExpression)
                                                                          .ToList();

            return(SystemEngineDebugReportList);
        }
Exemplo n.º 6
0
    private void Fill_GridSystemReportType_SystemReports(SystemReportType SRT, int PageSize, int PageIndex, SystemReportTypeFilterConditions SrtFilterConditions)
    {
        string[] retMessage = new string[4];
        try
        {
            this.InitializeCulture();
            switch (SRT)
            {
            case SystemReportType.SystemBusinessReport:
                IList <SystemBusinessReport> SystemBusinessReportList = this.SystemReportsBusiness.GetSystemBusinessReportList(SRT, PageSize, PageIndex, SrtFilterConditions);
                this.GridSystemBusinessReport_SystemReports.DataSource = SystemBusinessReportList;
                this.GridSystemBusinessReport_SystemReports.DataBind();
                break;

            case SystemReportType.SystemEngineReport:
                IList <SystemEngineReport> SystemEngineReportList = this.SystemReportsBusiness.GetSystemEngineReportList(SRT, PageSize, PageIndex, SrtFilterConditions);
                this.GridSystemEngineReport_SystemReports.DataSource = SystemEngineReportList;
                this.GridSystemEngineReport_SystemReports.DataBind();
                break;

            case SystemReportType.SystemWindowsServiceReport:
                IList <SystemWindowsServiceReport> SystemWindowsServiceReportList = this.SystemReportsBusiness.GetSystemWindowsServiceReportList(SRT, PageSize, PageIndex, SrtFilterConditions);
                this.GridSystemWindowsServiceReport_SystemReports.DataSource = SystemWindowsServiceReportList;
                this.GridSystemWindowsServiceReport_SystemReports.DataBind();
                break;

            case SystemReportType.SystemUserActionReport:
                IList <SystemUserActionReport> SystemUserActionReportList = this.SystemReportsBusiness.GetSystemUserActionReportList(SRT, PageSize, PageIndex, SrtFilterConditions);
                this.GridSystemUserActionReport_SystemReports.DataSource = SystemUserActionReportList;
                this.GridSystemUserActionReport_SystemReports.DataBind();
                break;
            }
        }
        catch (UIValidationExceptions ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
            this.ErrorHiddenField_GridSystemReportType_SystemReports.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
        }
        catch (UIBaseException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
            this.ErrorHiddenField_GridSystemReportType_SystemReports.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
        }
        catch (OutOfExpectedRangeException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ex, retMessage);
            this.ErrorHiddenField_GridSystemReportType_SystemReports.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
        }
        catch (Exception ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
            this.ErrorHiddenField_GridSystemReportType_SystemReports.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
        }
    }
Exemplo n.º 7
0
        public IList <SystemUserActionReport> GetSystemUserActionReportList(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions, LanguagesName appLanguage)
        {
            //ApplicationLanguageSettings AppLanguageSettings = this.GetCurrentApplicationLanguageSettings();
            System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> > SystemUserActionReportExpression = (System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions, appLanguage);
            IList <SystemUserActionReport> SystemUserActionReportList = this.SrtDataContext.SystemUserActionReports.Where(SystemUserActionReportExpression)
                                                                        .OrderByDescending(x => x.Date)
                                                                        .AsEnumerable()
                                                                        .Select(x => { x.UIDate = appLanguage == LanguagesName.Parsi ? x.Date != null ? Utility.Utility.ToPersianDate(x.Date ?? DateTime.MinValue) : string.Empty : x.Date != null ? x.Date.Value.ToShortDateString() : string.Empty; return(x); })
                                                                        .Select(x => { x.UITime = (x.Date ?? DateTime.MinValue).ToString("HH:mm:ss"); return(x); })
                                                                        .ToList();

            return(SystemUserActionReportList);
        }
Exemplo n.º 8
0
        public IList <SystemUserActionReport> GetSystemUserActionReportList(SystemReportType SRT, int PageSize, int PageIndex, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            try
            {
                return(this.systemReportsRepository.GetSystemUserActionReportList(SRT, PageSize, PageIndex, SrtFilterConditions));
            }
            catch (Exception ex)
            {
                BaseBusiness <SystemReportTypesDataContext> .LogException(ex, "BSystemReports", "GetSystemUserActionReportList");

                throw ex;
            }
        }
Exemplo n.º 9
0
    protected void CallBack_GridSystemReportType_SystemReports_onCallBack(object sender, CallBackEventArgs e)
    {
        SystemReportType SRT = (SystemReportType)Enum.Parse(typeof(SystemReportType), this.StringBuilder.CreateString(e.Parameters[0]));
        int PageSize         = int.Parse(this.StringBuilder.CreateString(e.Parameters[1]));
        int PageIndex        = int.Parse(this.StringBuilder.CreateString(e.Parameters[2]));
        SystemReportTypeFilterConditions SrtFilterConditions = this.JsSerializer.Deserialize <SystemReportTypeFilterConditions>(this.StringBuilder.CreateString(e.Parameters[3]));

        this.SetSystemReportsPageCount_SystemReports(SRT, PageSize, SrtFilterConditions);
        this.Fill_GridSystemReportType_SystemReports(SRT, PageSize, PageIndex, SrtFilterConditions);
        this.hfSystemReportTypePageCount_SystemReports.RenderControl(e.Output);
        this.ErrorHiddenField_GridSystemReportType_SystemReports.RenderControl(e.Output);
        this.RenderGridSystemReportType_SystemReports(SRT, e);
    }
Exemplo n.º 10
0
        public int GetSystemReportTypeCount(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            try
            {
                return(this.systemReportsRepository.GetSystemReportTypeCount(SRT, SrtFilterConditions));
            }
            catch (Exception ex)
            {
                BaseBusiness <SystemReportTypesDataContext> .LogException(ex, "BSystemReports", "GetSystemReportTypeCount");

                throw ex;
            }
        }
Exemplo n.º 11
0
        public int GetSystemReportTypeCount(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            try
            {
                return(this.systemReportsRepository.GetSystemReportTypeCount(SRT, SrtFilterConditions, BLanguage.CurrentSystemLanguage));
            }
            catch (Exception ex)
            {
                BaseBusiness <GTS.Clock.Model.Report.SystemReportTypesDataContext> .LogException(ex, "BSystemReports", "GetSystemReportTypeCount");

                throw ex;
            }
        }
Exemplo n.º 12
0
    public string[] GetReport_SystemReportsPage(string Srt, string StrFilterCondition)
    {
        this.InitializeCulture();
        string[] retMessage = new string[5];
        try
        {
            AttackDefender.CSRFDefender(this.Page);

            SystemReportType SRT = (SystemReportType)Enum.Parse(typeof(SystemReportType), this.StringBuilder.CreateString(Srt));
            SystemReportTypeFilterConditions SrtFilterConditions = this.JsSerializer.Deserialize <SystemReportTypeFilterConditions>(this.StringBuilder.CreateString(StrFilterCondition));
            string stiReportGUID = Guid.NewGuid().ToString();

            StiReport stiReport = this.SystemReportsBusiness.GetReport(SRT, SrtFilterConditions);

            Dictionary <string, StiReport> SysReportsDic = new Dictionary <string, StiReport>();

            if (Session["SysReports"] == null)
            {
                Session.Add("SysReports", SysReportsDic);
            }
            SysReportsDic = (Dictionary <string, StiReport>)Session["SysReports"];
            if (!SysReportsDic.Keys.Contains(stiReportGUID))
            {
                SysReportsDic.Add(stiReportGUID, stiReport);
            }
            Session["SysReports"] = SysReportsDic;

            string currentPage = "~/" + HttpContext.Current.Request.UrlReferrer.Segments[HttpContext.Current.Request.UrlReferrer.Segments.Length - 1];
            retMessage[0] = HttpContext.GetLocalResourceObject(currentPage, "RetSuccessType").ToString();
            retMessage[1] = HttpContext.GetLocalResourceObject(currentPage, "EditComplete").ToString();
            retMessage[2] = "success";
            retMessage[3] = stiReportGUID;

            return(retMessage);
        }
        catch (UIValidationExceptions ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
            return(retMessage);
        }
        catch (UIBaseException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
            return(retMessage);
        }
        catch (Exception ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
            return(retMessage);
        }
    }
Exemplo n.º 13
0
        public IList <SystemDataCollectorReport> GetSystemDataCollectorReportList(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions, LanguagesName appLanguage)
        {
            //ApplicationLanguageSettings AppLanguageSettings = this.GetCurrentApplicationLanguageSettings();
            System.Linq.Expressions.Expression <Func <SystemDataCollectorReport, bool> > SystemDataCollectorReportExpression = (System.Linq.Expressions.Expression <Func <SystemDataCollectorReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions, appLanguage);
            IList <SystemDataCollectorReport> SystemDataCollectorReportList = this.SrtDataContext.SystemDataCollectorReports.Where(SystemDataCollectorReportExpression)
                                                                              .OrderByDescending(x => x.TrafficDateTime)
                                                                              .AsEnumerable()
                                                                              .Select(x => { x.TrafficDate = appLanguage == LanguagesName.Parsi ? x.TrafficDateTime != null ? Utility.Utility.ToPersianDate(x.TrafficDateTime ?? DateTime.MinValue) : string.Empty : x.TrafficDateTime != null ? x.TrafficDateTime.Value.ToShortDateString() : string.Empty; return(x); })
                                                                              .Select(y => { y.RecieveDate = appLanguage == LanguagesName.Parsi ? y.RecieveDateTime != null ? Utility.Utility.ToPersianDate(y.RecieveDateTime ?? DateTime.MinValue) : string.Empty : y.RecieveDateTime != null ? y.TrafficDateTime.Value.ToShortDateString() : string.Empty; return(y); })
                                                                              .Select(xt => { xt.TrafficTime = xt.TrafficDateTime != null ? xt.TrafficDateTime.Value.ToShortTimeString() : string.Empty; return(xt); })
                                                                              .Select(yt => { yt.RecieveTime = yt.RecieveDateTime != null ? yt.RecieveDateTime.Value.ToShortTimeString() : string.Empty; return(yt); })
                                                                              .ToList();

            return(SystemDataCollectorReportList);
        }
Exemplo n.º 14
0
        public IList <SystemWindowsServiceReport> GetSystemWindowsServiceReportList(SystemReportType SRT, int PageSize, int PageIndex, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            ApplicationLanguageSettings AppLanguageSettings = this.GetCurrentApplicationLanguageSettings();

            System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> > SystemWindowsServiceReportExpression = (System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> >) this.GetSystemReportTypeFilterConditions(SRT, SrtFilterConditions);
            IList <SystemWindowsServiceReport> SystemWindowsServiceReportList = this.SrtDataContext.SystemWindowsServiceReports.Where(SystemWindowsServiceReportExpression)
                                                                                .OrderByDescending(x => x.Date)
                                                                                .Skip(PageIndex * PageSize)
                                                                                .Take(PageSize)
                                                                                .AsEnumerable()
                                                                                .Select(x => { x.UIDate = AppLanguageSettings.Language.Name == LanguagesName.Parsi ? Utility.Utility.ToPersianDate(x.Date) : x.Date.ToShortDateString(); return(x); })
                                                                                .ToList();

            return(SystemWindowsServiceReportList);
        }
Exemplo n.º 15
0
        public StiReport GetReport(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            try
            {
                ReportHelper reportHelper = ReportHelper.Instance("شرکت طرح و پردازش غدیر", BUser.CurrentUser.ID, BUser.CurrentUser.Person.Name, new List <decimal>(), Guid.NewGuid().ToString(), string.Empty, false, string.Empty, string.Empty, new List <decimal>());


                StiReport stiReport           = new StiReport();
                double    columnWidth         = 0;
                double    dataBandRowHeight   = 1.0;
                double    dataBandHeight      = 4;
                double    dataHeaderRowHeight = 1;
                double    dataHeaderHeight    = 3;
                Font      dataBandFont        = new Font("Tahoma", 8, FontStyle.Bold);
                Font      headerBandFont      = new Font("arial", 11, FontStyle.Bold);
                Font      titleBandFont       = new Font("Tahoma", 16, FontStyle.Bold);
                Font      groupBandFont       = new Font("Tahoma", 10, FontStyle.Bold);
                Font      pageHeaderFont      = new Font("Tahoma", 18, FontStyle.Bold);
                stiReport.Unit = Stimulsoft.Report.Units.StiUnit.Centimeters;
                StiPage page = stiReport.Pages[0];
                page.Orientation    = StiPageOrientation.Landscape;
                page.Width          = 29.7;
                page.Height         = 21;
                page.Margins.Bottom = 0.5;
                page.Margins.Left   = 0.5;
                page.Margins.Right  = 0.5;
                page.Margins.Top    = 0.5;



                StiPageHeaderBand pageHeader = new StiPageHeaderBand();
                pageHeader.Height       = 2;
                pageHeader.Width        = page.Width;
                pageHeader.Name         = "PageHeader";
                pageHeader.Border.Side  = StiBorderSides.All;
                pageHeader.Border.Color = Color.Cornsilk;
                page.Components.Add(pageHeader);

                StiText officeNameText_pageHeader = new StiText(new RectangleD(0, 0, 10.6, 0.6));
                officeNameText_pageHeader.Left = (page.Width / 2) - 5.3;
                officeNameText_pageHeader.Top  = 0;
                IList <Presentaion_Helper.Proxy.DataAccessProxy> dataAccessList = new BDataAccess().GetAllByUserId(DataAccessParts.Corporation, BUser.CurrentUser.ID);
                string headerText = string.Empty;
                if (dataAccessList != null && dataAccessList.Count > 0)
                {
                    headerText = dataAccessList.FirstOrDefault().Name;
                }
                officeNameText_pageHeader.Text          = headerText;
                officeNameText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                officeNameText_pageHeader.VertAlignment = StiVertAlignment.Center;
                officeNameText_pageHeader.Name          = "OfficeNameHeader";
                officeNameText_pageHeader.Font          = pageHeaderFont;
                officeNameText_pageHeader.Height        = 1;
                pageHeader.Components.Add(officeNameText_pageHeader);


                StiText reportNameText_pageHeader = new StiText(new RectangleD(0, 0, 10.6, 0.6));
                reportNameText_pageHeader.Left = (page.Width / 2) - 5.3;
                reportNameText_pageHeader.Top  = 1;

                reportNameText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                reportNameText_pageHeader.VertAlignment = StiVertAlignment.Center;
                reportNameText_pageHeader.Name          = "reportNameText";
                reportNameText_pageHeader.Font          = pageHeaderFont;
                reportNameText_pageHeader.Height        = 1;
                pageHeader.Components.Add(reportNameText_pageHeader);


                StiText reportCreateDateLabelText_pageHeader = new StiText(new RectangleD(0, 0, 2.6, 0.6));
                reportCreateDateLabelText_pageHeader.Left = 2.4;
                reportCreateDateLabelText_pageHeader.Top  = 0;
                switch (BLanguage.CurrentLocalLanguage)
                {
                case LanguagesName.Unknown:
                    reportCreateDateLabelText_pageHeader.Text = ": تاریخ تهیه گزارش";
                    break;

                case LanguagesName.Parsi:
                    reportCreateDateLabelText_pageHeader.Text = ": تاریخ تهیه گزارش";
                    break;

                case LanguagesName.English:
                    reportCreateDateLabelText_pageHeader.Text = "Report Date :";
                    break;

                default:
                    break;
                }
                reportCreateDateLabelText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                reportCreateDateLabelText_pageHeader.VertAlignment = StiVertAlignment.Center;
                reportCreateDateLabelText_pageHeader.Name          = "reportCreateDateLabelText";
                reportCreateDateLabelText_pageHeader.Font          = dataBandFont;
                reportCreateDateLabelText_pageHeader.TextBrush     = new StiSolidBrush(Color.FromArgb(89, 89, 89));
                pageHeader.Components.Add(reportCreateDateLabelText_pageHeader);

                StiText reportCreateDateText_pageHeader = new StiText(new RectangleD(0, 0, 2.4, 0.6));
                reportCreateDateText_pageHeader.Left          = 0;
                reportCreateDateText_pageHeader.Top           = 0;
                reportCreateDateText_pageHeader.Text          = ReportHelper.Instance().ShamsiGetNow();
                reportCreateDateText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                reportCreateDateText_pageHeader.VertAlignment = StiVertAlignment.Center;
                reportCreateDateText_pageHeader.Name          = "reportCreateDateText";
                reportCreateDateText_pageHeader.Font          = dataBandFont;
                reportCreateDateText_pageHeader.TextBrush     = new StiSolidBrush(Color.FromArgb(183, 117, 64));
                pageHeader.Components.Add(reportCreateDateText_pageHeader);

                StiText reportCreatorLabelText_pageHeader = new StiText(new RectangleD(0, 0, 2, 0.6));
                reportCreatorLabelText_pageHeader.Left = 3;
                reportCreatorLabelText_pageHeader.Top  = 0.6;
                switch (BLanguage.CurrentLocalLanguage)
                {
                case LanguagesName.Unknown:
                    reportCreatorLabelText_pageHeader.Text = ": تهیه کننده";
                    break;

                case LanguagesName.Parsi:
                    reportCreatorLabelText_pageHeader.Text = ": تهیه کننده";
                    break;

                case LanguagesName.English:
                    reportCreatorLabelText_pageHeader.Text = "Creator :";
                    break;

                default:
                    break;
                }
                reportCreatorLabelText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                reportCreatorLabelText_pageHeader.VertAlignment = StiVertAlignment.Center;
                reportCreatorLabelText_pageHeader.Name          = "reportCreatorLabelText";
                reportCreatorLabelText_pageHeader.Font          = dataBandFont;
                reportCreatorLabelText_pageHeader.TextBrush     = new StiSolidBrush(Color.FromArgb(89, 89, 89));
                pageHeader.Components.Add(reportCreatorLabelText_pageHeader);


                StiText reportCreatorText_pageHeader = new StiText(new RectangleD(0, 0, 3, 0.6));
                reportCreatorText_pageHeader.Left          = 0;
                reportCreatorText_pageHeader.Top           = 0.6;
                reportCreatorText_pageHeader.Text          = ReportHelper.Instance().UserName;
                reportCreatorText_pageHeader.HorAlignment  = StiTextHorAlignment.Center;
                reportCreatorText_pageHeader.VertAlignment = StiVertAlignment.Center;
                reportCreatorText_pageHeader.Name          = "reportCreatorText";
                reportCreatorText_pageHeader.Font          = dataBandFont;
                reportCreatorText_pageHeader.TextBrush     = new StiSolidBrush(Color.FromArgb(183, 117, 64));
                pageHeader.Components.Add(reportCreatorText_pageHeader);

                StiHeaderBand headerBand = new StiHeaderBand();
                headerBand.Name         = "HeaderBand";
                headerBand.Width        = page.Width;
                headerBand.Border.Side  = StiBorderSides.All;
                headerBand.Border.Color = Color.DimGray;
                page.Components.Add(headerBand);

                StiDataBand dataBand = new StiDataBand();

                dataBand.Name  = "DataBand";
                dataBand.Width = page.Width;

                dataBand.Border.Side  = StiBorderSides.All;
                dataBand.Border.Color = Color.Gainsboro;
                StiCondition conditionDataBand = new StiCondition("{Line%2==0}", Color.Black, Color.PeachPuff, dataBandFont, true);
                dataBand.Conditions.Add(conditionDataBand);
                page.Components.Add(dataBand);



                DataTable dtReport        = new DataTable();
                string    modelReportName = string.Empty;
                switch (SRT)
                {
                case SystemReportType.SystemBusinessReport:
                    IList <GTS.Clock.Model.Report.SystemBusinessReport> SystemBusinessReportList = this.GetSystemBusinessReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemBusinessReport>(SystemBusinessReportList);
                    reportNameText_pageHeader.Text = "System Business Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemBusinessReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;

                case SystemReportType.SystemEngineReport:
                    IList <GTS.Clock.Model.Report.SystemEngineReport> SystemEngineReportList = this.GetSystemEngineReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemEngineReport>(SystemEngineReportList);
                    reportNameText_pageHeader.Text = "System Engine Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemEngineReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;

                case SystemReportType.SystemWindowsServiceReport:
                    IList <GTS.Clock.Model.Report.SystemWindowsServiceReport> SystemWindowsServiceReportList = this.GetSystemWindowsServiceReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemWindowsServiceReport>(SystemWindowsServiceReportList);
                    reportNameText_pageHeader.Text = "System Windows Service Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemWindowsServiceReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;

                case SystemReportType.SystemUserActionReport:
                    IList <GTS.Clock.Model.Report.SystemUserActionReport> SystemUserActionReportList = this.GetSystemUserActionReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemUserActionReport>(SystemUserActionReportList);
                    reportNameText_pageHeader.Text = "System User Action Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemUserActionReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;

                case SystemReportType.SystemEngineDebugReport:
                    IList <GTS.Clock.Model.Report.SystemEngineDebugReport> SystemEngineDebugReportList = this.GetSystemEngineDebugReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemEngineDebugReport>(SystemEngineDebugReportList);
                    reportNameText_pageHeader.Text = "System Engine Debug Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemEngineDebugReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;

                case SystemReportType.SystemDataCollectorReport:
                    IList <GTS.Clock.Model.Report.SystemDataCollectorReport> SystemDataCollectorReportList = this.GetSystemDataCollectorReportList(SRT, SrtFilterConditions);
                    dtReport = Utility.ListToDataTable <GTS.Clock.Model.Report.SystemDataCollectorReport>(SystemDataCollectorReportList);
                    reportNameText_pageHeader.Text = "System Data Collector Report";
                    modelReportName   = dataBand.DataSourceName = typeof(GTS.Clock.Model.Report.SystemDataCollectorReport).Name;
                    dataBand.Height   = dataBandHeight;
                    headerBand.Height = dataHeaderHeight;
                    break;
                }


                columnWidth = (page.Width) / (dtReport.Columns.Count - 2);
                stiReport.RegData(dtReport);
                stiReport.Dictionary.Synchronize();

                double pos       = 0;
                int    nameIndex = 1;
                for (int i = 0; i < dtReport.Columns.Count; i++)
                {
                    StiText headerColumnText;
                    switch (dtReport.Columns[i].ColumnName.ToLower())
                    {
                    case "exception":
                    {
                        headerColumnText = new StiText(new RectangleD(columnWidth, 1, (page.Width - columnWidth), 1));

                        break;
                    }

                    case "message":
                    {
                        headerColumnText = new StiText(new RectangleD(columnWidth, 2, (page.Width - columnWidth), 1));
                        break;
                    }

                    case "id":
                    {
                        if (SRT == SystemReportType.SystemUserActionReport)
                        {
                            headerColumnText = new StiText(new RectangleD(pos, 0, columnWidth, 1));
                        }
                        else
                        {
                            headerColumnText = new StiText(new RectangleD(pos, 0, columnWidth, dataHeaderHeight));
                        }

                        break;
                    }

                    case "cnpname":
                    {
                        headerColumnText = new StiText(new RectangleD(columnWidth, 1, (page.Width - columnWidth), 1));
                        break;
                    }

                    default:
                        headerColumnText       = new StiText(new RectangleD(pos, 0, columnWidth, 1));
                        headerColumnText.Width = columnWidth;
                        break;
                    }
                    headerColumnText.HorAlignment  = StiTextHorAlignment.Center;
                    headerColumnText.VertAlignment = StiVertAlignment.Center;
                    headerColumnText.Name          = "HeaderText" + nameIndex.ToString();
                    headerColumnText.Brush         = new StiSolidBrush(Color.FromArgb(191, 191, 191));
                    headerColumnText.Border.Side   = StiBorderSides.All;
                    headerColumnText.Font          = headerBandFont;
                    headerColumnText.Text.Value    = dtReport.Columns[i].Caption;

                    headerBand.Components.Add(headerColumnText);

                    StiText dataText;
                    switch (dtReport.Columns[i].ColumnName.ToLower())
                    {
                    case "exception":
                    {
                        dataText = new StiText(new RectangleD(columnWidth, dataBandRowHeight, (page.Width - columnWidth), 1.5));

                        pos = pos - columnWidth;
                        break;
                    }

                    case "message":
                    {
                        dataText = new StiText(new RectangleD(columnWidth, dataBandRowHeight + 1.5, (page.Width - columnWidth), 1.5));
                        pos      = pos - columnWidth;
                        break;
                    }

                    case "id":
                    {
                        if (SRT == SystemReportType.SystemUserActionReport)
                        {
                            dataText = new StiText(new RectangleD(pos, 0, columnWidth, 1));
                        }
                        else
                        {
                            dataText = new StiText(new RectangleD(pos, 0, columnWidth, dataBandHeight));
                        }

                        break;
                    }

                    case "cnpname":
                    {
                        dataText = new StiText(new RectangleD(columnWidth, dataBandRowHeight, (page.Width - columnWidth), 1.5));
                        pos      = pos - columnWidth;

                        break;
                    }

                    default:
                        dataText = new StiText(new RectangleD(pos, 0, columnWidth, dataBandRowHeight));

                        break;
                    }
                    dataText.Type          = StiSystemTextType.DataColumn;
                    dataText.Text          = "{Trim(" + modelReportName + "." + Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols(dtReport.Columns[i].ColumnName) + ")}";
                    dataText.HorAlignment  = StiTextHorAlignment.Center;
                    dataText.VertAlignment = StiVertAlignment.Center;
                    dataText.Name          = "DataText" + nameIndex.ToString();
                    dataText.Border.Side   = StiBorderSides.All;
                    dataText.Font          = dataBandFont;
                    dataText.WordWrap      = true;

                    dataBand.Components.Add(dataText);


                    pos = pos + columnWidth;
                    nameIndex++;
                }
                stiReport.Compile();
                return(stiReport);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 16
0
    public string[] UpdateSystemReport_SystemReportsPage(string state, string systemReportType)
    {
        this.InitializeCulture();

        string[] retMessage = new string[4];

        try
        {
            PageState        PS  = (PageState)Enum.Parse(typeof(PageState), this.StringBuilder.CreateString(state));
            SystemReportType SRT = (SystemReportType)Enum.Parse(typeof(SystemReportType), this.StringBuilder.CreateString(systemReportType));
            switch (PS)
            {
            case PageState.DeleteAll:
                switch (SRT)
                {
                case SystemReportType.SystemBusinessReport:
                    this.SystemReportsBusiness.DeleteAllSystemBusinessReport();
                    break;

                case SystemReportType.SystemEngineReport:
                    this.SystemReportsBusiness.DeleteAllSystemEngineReport();
                    break;

                case SystemReportType.SystemWindowsServiceReport:
                    this.SystemReportsBusiness.DeleteAllSystemWindowsServiceReport();
                    break;

                case SystemReportType.SystemUserActionReport:
                    this.SystemReportsBusiness.DeleteAllSystemUserActionReport();
                    break;
                }
                break;
            }

            retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
            string SuccessMessageBody = string.Empty;
            switch (PS)
            {
            case PageState.DeleteAll:
                SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                break;
            }
            retMessage[1] = SuccessMessageBody;
            retMessage[2] = "success";
            return(retMessage);
        }
        catch (UIValidationExceptions ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
            return(retMessage);
        }
        catch (UIBaseException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
            return(retMessage);
        }
        catch (Exception ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
            return(retMessage);
        }
    }
Exemplo n.º 17
0
        public IList <GTS.Clock.Model.Report.SystemEngineReport> GetSystemEngineReportList(SystemReportType SRT, int PageSize, int PageIndex, SystemReportTypeFilterConditions SrtFilterConditions)
        {
            try
            {
                return(this.systemReportsRepository.GetSystemEngineReportList(SRT, PageSize, PageIndex, SrtFilterConditions, BLanguage.CurrentSystemLanguage));
            }
            catch (Exception ex)
            {
                BaseBusiness <GTS.Clock.Model.Report.SystemReportTypesDataContext> .LogException(ex, "BSystemReports", "GetSystemBusinessReportList");

                throw ex;
            }
        }
Exemplo n.º 18
0
    private void SetSystemReportsPageCount_SystemReports(SystemReportType SRT, int PageSize, SystemReportTypeFilterConditions SrtFilterConditions)
    {
        int SystemReportTypeCount = this.SystemReportsBusiness.GetSystemReportTypeCount(SRT, SrtFilterConditions);

        this.hfSystemReportTypePageCount_SystemReports.Value = Utility.GetPageCount(SystemReportTypeCount, PageSize).ToString();
    }
Exemplo n.º 19
0
    public string[] UpdateSystemReport_SystemReportsPage(string state, string systemReportType)
    {
        this.InitializeCulture();

        string[] retMessage = new string[4];

        try
        {
            AttackDefender.CSRFDefender(this.Page);
            PageState        PS  = (PageState)Enum.Parse(typeof(PageState), this.StringBuilder.CreateString(state));
            SystemReportType SRT = (SystemReportType)Enum.Parse(typeof(SystemReportType), this.StringBuilder.CreateString(systemReportType));
            switch (PS)
            {
            case PageState.DeleteAll:
                switch (SRT)
                {
                case SystemReportType.SystemBusinessReport:
                    this.SystemReportsBusiness.DeleteAllSystemBusinessReport();
                    break;

                case SystemReportType.SystemEngineReport:
                    this.SystemReportsBusiness.DeleteAllSystemEngineReport();
                    break;

                case SystemReportType.SystemWindowsServiceReport:
                    this.SystemReportsBusiness.DeleteAllSystemWindowsServiceReport();
                    break;

                case SystemReportType.SystemUserActionReport:
                    this.SystemReportsBusiness.DeleteAllSystemUserActionReport();
                    break;

                case SystemReportType.SystemEngineDebugReport:
                    this.SystemReportsBusiness.DeleteAllEngineDebugReport();
                    break;

                case SystemReportType.SystemDataCollectorReport:
                    this.SystemReportsBusiness.DeleteAllDataCollectorReport();
                    break;
                }
                break;
            }

            string action     = "Delete All Records From " + SRT.ToString() + "";
            string objectInfo = GetLocalResourceObject("DeleteAllRecordsFrom").ToString() + " " + GetLocalResourceObject(SRT.ToString()).ToString();
            this.SystemReportsBusiness.InsertSystemReportCurrentUserActivity(this.Page, action, objectInfo);

            retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
            string SuccessMessageBody = string.Empty;
            switch (PS)
            {
            case PageState.DeleteAll:
                SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                break;
            }
            retMessage[1] = SuccessMessageBody;
            retMessage[2] = "success";
            return(retMessage);
        }
        catch (UIValidationExceptions ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
            return(retMessage);
        }
        catch (UIBaseException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
            return(retMessage);
        }
        catch (Exception ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
            return(retMessage);
        }
    }
Exemplo n.º 20
0
        private object GetSystemReportTypeFilterConditions(SystemReportType SRT, SystemReportTypeFilterConditions SrtFilterConditions, LanguagesName appLanguage)
        {
            object expresionObj = null;
            Dictionary <string, DateTime> SystemReportTypeConditionsDatesDic = this.GetSystemReportTypeConditionsDates(SrtFilterConditions, appLanguage);
            DateTime FromDate   = SystemReportTypeConditionsDatesDic["FromDate"];
            DateTime ToDate     = SystemReportTypeConditionsDatesDic["ToDate"];
            string   SearchTerm = SrtFilterConditions.SearchTerm;

            switch (SRT)
            {
            case SystemReportType.SystemBusinessReport:
                System.Linq.Expressions.Expression <Func <SystemBusinessReport, bool> > SystemBusinessReportExpresion = x => (x.Username.Contains(SearchTerm) ||
                                                                                                                              x.IPAddress.Contains(SearchTerm) ||
                                                                                                                              x.ClassName.Contains(SearchTerm) ||
                                                                                                                              x.MethodName.Contains(SearchTerm) ||
                                                                                                                              x.Message.Contains(SearchTerm) ||
                                                                                                                              x.Level.Contains(SearchTerm) ||
                                                                                                                              x.Exception.Contains(SearchTerm) ||
                                                                                                                              x.ExceptionSource.Contains(SearchTerm)) &&
                                                                                                                        x.Date.Date >= FromDate &&
                                                                                                                        x.Date.Date <= ToDate;
                expresionObj = (object)SystemBusinessReportExpresion;
                break;

            case SystemReportType.SystemEngineReport:
                System.Linq.Expressions.Expression <Func <SystemEngineReport, bool> > SystemEngineReportExpression = x => (x.PersonBarcode.Contains(SearchTerm) ||
                                                                                                                           x.Level.Contains(SearchTerm) ||
                                                                                                                           x.Message.Contains(SearchTerm) ||
                                                                                                                           x.Exception.Contains(SearchTerm)) &&
                                                                                                                     x.Date.Date >= FromDate &&
                                                                                                                     x.Date.Date <= ToDate;
                expresionObj = (object)SystemEngineReportExpression;
                break;

            case SystemReportType.SystemWindowsServiceReport:
                System.Linq.Expressions.Expression <Func <SystemWindowsServiceReport, bool> > SystemWindowsServiceReportExpression = x => (x.Level.Contains(SearchTerm) ||
                                                                                                                                           x.Message.Contains(SearchTerm) ||
                                                                                                                                           x.Exception.Contains(SearchTerm)) &&
                                                                                                                                     x.Date.Date >= FromDate &&
                                                                                                                                     x.Date.Date <= ToDate;
                expresionObj = (object)SystemWindowsServiceReportExpression;
                break;

            case SystemReportType.SystemUserActionReport:
                System.Linq.Expressions.Expression <Func <SystemUserActionReport, bool> > SystemUserActionReportExpression = x => (x.Username.Contains(SearchTerm) ||
                                                                                                                                   x.IPAddress.Contains(SearchTerm) ||
                                                                                                                                   x.PageID.Contains(SearchTerm) ||
                                                                                                                                   x.ClassName.Contains(SearchTerm) ||
                                                                                                                                   x.MethodName.Contains(SearchTerm) ||
                                                                                                                                   x.Action.Contains(SearchTerm) ||
                                                                                                                                   x.ObjectInformation.Contains(SearchTerm)) &&
                                                                                                                             x.Date.Value.Date >= FromDate &&
                                                                                                                             x.Date.Value.Date <= ToDate;
                expresionObj = (object)SystemUserActionReportExpression;
                break;

            case SystemReportType.SystemEngineDebugReport:
                System.Linq.Expressions.Expression <Func <SystemEngineDebugReport, bool> > SystemEngineDebugReportExpression = x => (x.CnpIden.Contains(SrtFilterConditions.Concept) ||
                                                                                                                                     x.cnpName.Contains(SrtFilterConditions.Concept)) &&
                                                                                                                               x.RuleIden.Contains(SrtFilterConditions.RuleCode) &&
                                                                                                                               x.MiladiDate.Value.Date >= FromDate &&
                                                                                                                               x.MiladiDate.Value.Date <= ToDate;
                expresionObj = (object)SystemEngineDebugReportExpression;
                break;

            case SystemReportType.SystemDataCollectorReport:
                System.Linq.Expressions.Expression <Func <SystemDataCollectorReport, bool> > SystemDataCollectorReportExpression = x => (x.PersonBarcode.Contains(SearchTerm) ||
                                                                                                                                         x.Status.Contains(SearchTerm) ||
                                                                                                                                         x.DeviceID.Contains(SearchTerm) ||
                                                                                                                                         x.Message.Contains(SearchTerm)) &&
                                                                                                                                   (x.TrafficDateTime.Value.Date >= FromDate &&
                                                                                                                                    x.TrafficDateTime.Value.Date <= ToDate) || (x.RecieveDateTime.Value.Date >= FromDate && x.RecieveDateTime.Value.Date <= FromDate);
                expresionObj = (object)SystemDataCollectorReportExpression;
                break;
            }
            return(expresionObj);
        }