コード例 #1
0
        public JsonResult GetError(ErrorFilter errorFilter)
        {
            var error = _BuggerBusiness.GetError(errorFilter);

            error.FirstOrDefault().ScreenShot    = null;
            error.FirstOrDefault().ScreenShotB64 = null;
            return(Json(error));
        }
コード例 #2
0
ファイル: WaveServer.cs プロジェクト: zhabis/nfx
        protected override void DoConfigure(IConfigSectionNode node)
        {
            if (node == null)
            {
                //0 get very root
                node = App.ConfigRoot[SysConsts.CONFIG_WAVE_SECTION];
                if (!node.Exists)
                {
                    return;
                }

                //1 try to find the server with the same name as this instance
                var snode = node.Children.FirstOrDefault(cn => cn.IsSameName(CONFIG_SERVER_SECTION) && cn.IsSameNameAttr(Name));

                //2 try to find a server without a name
                if (snode == null)
                {
                    snode = node.Children.FirstOrDefault(cn => cn.IsSameName(CONFIG_SERVER_SECTION) && cn.AttrByName(Configuration.CONFIG_NAME_ATTR).Value.IsNullOrWhiteSpace());
                }

                if (snode == null)
                {
                    return;
                }
                node = snode;
            }


            ConfigAttribute.Apply(this, node);

            m_Prefixes.Clear();
            foreach (var name in node.Children
                     .Where(c => c.IsSameName(CONFIG_PREFIX_SECTION))
                     .Select(c => c.AttrByName(Configuration.CONFIG_NAME_ATTR).Value)
                     .Where(n => n.IsNotNullOrWhiteSpace()))
            {
                m_Prefixes.Add(name);
            }

            var nGate = node[CONFIG_GATE_SECTION];

            if (nGate.Exists)
            {
                m_Gate = FactoryUtils.MakeAndConfigure <INetGateImplementation>(nGate, typeof(NetGate), args: new object[] { this });
            }

            var nDispatcher = node[CONFIG_DISPATCHER_SECTION];

            if (nDispatcher.Exists)
            {
                m_Dispatcher = FactoryUtils.MakeAndConfigure <WorkDispatcher>(nDispatcher, typeof(WorkDispatcher), args: new object[] { this });
            }

            ErrorFilter.ConfigureMatches(node[CONFIG_DEFAULT_ERROR_HANDLER_SECTION], m_ErrorShowDumpMatches, m_ErrorLogMatches, null, GetType().FullName);
        }
コード例 #3
0
        public void Given_there_are_no_filters_that_match_Should_not_exclude_it()
        {
            var error    = new Error(new ArgumentException());
            var pipeline = new ErrorFilter();

            pipeline.WithExceptionTypes(typeof(InvalidOperationException));
            pipeline.WithErrorMessageContaining("test");

            var exclude = pipeline.Exclude(error);

            Assert.IsFalse(exclude);
        }
コード例 #4
0
        public void Given_at_least_one_filter_matches_Should_exclude_it()
        {
            var error    = new Error(new ArgumentException("test"));
            var pipeline = new ErrorFilter();

            pipeline.WithExceptionTypes(typeof(InvalidOperationException));
            pipeline.WithErrorMessageContaining("test");

            var exclude = pipeline.Exclude(error);

            Assert.IsTrue(exclude);
        }
コード例 #5
0
        public void OnError_ErrorWithoutException_ShouldReturnErrorAsIs()
        {
            // Arrange
            IError error = ErrorBuilder.New()
                           .SetMessage("Error occurred")
                           .Build();
            var filter = new ErrorFilter();

            // Act
            IError result = filter.OnError(error);

            // Assert
            result.Should().Be(error);
        }
コード例 #6
0
        public void OnError_WithException_ShouldSetErrorCode()
        {
            // Arrange
            IError error = ErrorBuilder.New()
                           .SetMessage("Error occurred")
                           .SetException(new NotImplementedException())
                           .Build();
            var filter = new ErrorFilter();

            // Act
            IError result = filter.OnError(error);

            // Assert
            result.Code.Should().Be("NOT_IMPLEMENTED");
        }
コード例 #7
0
ファイル: WaveServer.cs プロジェクト: zhabis/nfx
        /// <summary>
        /// Handles processing exception by calling ErrorFilter.HandleException(work, error).
        /// All parameters except ERROR can be null - which indicates error that happened during WorkContext dispose
        /// </summary>
        public virtual void HandleException(WorkContext work, WorkFilter filter, WorkHandler handler, Exception error)
        {
            try
            {
                if (m_InstrumentationEnabled)
                {
                    Interlocked.Increment(ref m_stat_ServerHandleException);
                }

                //work may be null (when WorkContext is already disposed)
                if (work != null)
                {
                    ErrorFilter.HandleException(work, error, m_ErrorShowDumpMatches, m_ErrorLogMatches);
                }
                else
                {
                    Log(MessageType.Error,
                        StringConsts.SERVER_DEFAULT_ERROR_WC_NULL_ERROR + error.ToMessageWithType(),
                        "HandleException()",
                        error);
                }
            }
            catch (Exception error2)
            {
                if (m_LogHandleExceptionErrors)
                {
                    try
                    {
                        Log(MessageType.Error,
                            StringConsts.SERVER_DEFAULT_ERROR_HANDLER_ERROR + error2.ToMessageWithType(),
                            "HandleException.catch()",
                            error2,
                            pars: new
                        {
                            OriginalError = error.ToMessageWithType()
                        }.ToJSON()
                            );
                    }
                    catch {}
                }
            }
        }
コード例 #8
0
        public void OnError_WithExceptionContainingProperties_ShouldSetErrorData()
        {
            // Arrange
            IError error = ErrorBuilder.New()
                           .SetMessage("Error occurred")
                           .SetException(new PropertiesException(123, "abc"))
                           .Build();
            var filter = new ErrorFilter();

            // Act
            IError result = filter.OnError(error);

            // Assert
            result.Extensions.Keys.Should().Contain("data");
            var data = result.Extensions["data"] as IReadOnlyDictionary <string, object>;

            data.Should().NotBeNull();
            data["paramA"].Should().Be(123);
            data["paramB"].Should().Be("abc");
        }
コード例 #9
0
ファイル: Core.cs プロジェクト: andiappan-ar/sitecore-bugger
        internal static List <Error> GetError(ErrorFilter errorFilter)
        {
            List <Error> result = new List <Error>();

            using (SqlConnection sqlcon = new SqlConnection(Settings.GetCS()))
            {
                using (SqlCommand cmd = new SqlCommand("SP_GetError", sqlcon))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add("@ErrorId", SqlDbType.Int).Value              = CheckDBNUll(errorFilter.ErrorId);
                    cmd.Parameters.Add("@ProjectId", SqlDbType.Int).Value            = CheckDBNUll(errorFilter.ProjectId);
                    cmd.Parameters.Add("@AssigneeUserId", SqlDbType.Int).Value       = CheckDBNUll(errorFilter.UserId);
                    cmd.Parameters.Add("@ErrorSeverityId", SqlDbType.NVarChar).Value = CheckDBNUll_STR(errorFilter.ErrorSeverity);
                    cmd.Parameters.Add("@ErrorTypeId", SqlDbType.NVarChar).Value     = CheckDBNUll_STR(errorFilter.ErrorType);
                    cmd.Parameters.Add("@ErrorStatusId", SqlDbType.NVarChar).Value   = CheckDBNUll_STR(errorFilter.ErrorStatus);
                    cmd.Parameters.Add("@PageSize", SqlDbType.Int).Value             = CheckDBNUll(errorFilter.PageSize);
                    cmd.Parameters.Add("@PageNumber", SqlDbType.Int).Value           = CheckDBNUll(errorFilter.PageNumber);

                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        using (DataSet ds = new DataSet())
                        {
                            da.Fill(ds);

                            result = ds.Tables[0].ToListof <Error>();

                            //foreach(Error err in result)
                            //{
                            //    err.ScreenShotB64 = Convert.ToBase64String(err.ScreenShot);
                            //    err.ScreenShot = null;
                            //}
                        }
                    }
                }
            }

            return(result);
        }
コード例 #10
0
        private void Error_Filter_Catch()
        {
            var errorFilter = new ErrorFilter();

            var context = new ExceptionContext(
                new ActionContext()
            {
                HttpContext      = new DefaultHttpContext(),
                ActionDescriptor = new ActionDescriptor(),
                RouteData        = new RouteData()
            },
                new List <IFilterMetadata>()
                );

            context.Exception = _throwedException;

            errorFilter.OnException(context);

            _statusCode         = context.HttpContext.Response.StatusCode;
            _result             = context.Result;
            _isExceptionHandled = context.ExceptionHandled;
        }
コード例 #11
0
        private void ConfigureFilters(string config)
        {
            var doc = new XmlDocument();

            doc.Load(config);
            var filterNodes = doc.SelectNodes("//errorFilter");

            if (filterNodes != null)
            {
                foreach (XmlNode filterNode in filterNodes)
                {
                    var notList   = new List <string>();
                    var notifiers = filterNode.SelectNodes("//notifier");
                    {
                        if (notifiers != null)
                        {
                            foreach (XmlElement notifier in notifiers)
                            {
                                var name = notifier.Attributes["name"]?.Value;
                                if (name != null)
                                {
                                    notList.Add(name);
                                }
                            }
                        }
                    }
                    var assertionNode = (XmlElement)filterNode.SelectSingleNode("test/*");

                    if (assertionNode != null)
                    {
                        var a      = AssertionFactory.Create(assertionNode);
                        var filter = new ErrorFilter(a, notList);
                        Filtering += filter.OnErrorModuleFiltering;
                        _filters.Add(filter);
                    }
                }
            }
        }
コード例 #12
0
        public MemoryStream GetExcelReport(ErrorFilter errorFilter)
        {
            var masterRecord = GetMasterRecords();

            var result = Core.GetError(errorFilter);

            // ScreenshotUrlFrameUp

            foreach (Error err in result)
            {
                err.E_ScreenShotUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(HttpContext.Current.Request.Url.PathAndQuery, "") + Settings.ScreenSHotURLPrefix + err.ErrorId;
                err.E_Project       = masterRecord.project.Where(x => x.ProjectId.Equals(err.ProjectId)).FirstOrDefault().ProjectName;
                err.E_ErrorSeverity = masterRecord.ErrorSeverity.Where(x => x.EId.Equals(err.ErrorSeverityId)).FirstOrDefault().EDisplayName;
                err.E_ErrorType     = masterRecord.ErrorType.Where(x => x.EId.Equals(err.ErrorTypeId)).FirstOrDefault().EDisplayName;
                err.E_ErrorStatus   = masterRecord.ErrorStatus.Where(x => x.EId.Equals(err.ErrorStatusId)).FirstOrDefault().EDisplayName;
                err.E_AssigneeUser  = masterRecord.UserList.Where(x => x.UserId.Equals(err.AssigneeUserId)).FirstOrDefault().UserName;
                err.E_OwnerUser     = masterRecord.UserList.Where(x => x.UserId.Equals(err.OwnerUserId)).FirstOrDefault().UserName;
            }

            var dataTable = Helper.ConvertToDataTable <Error>(result);

            return(Helper.GetExcelSheetMemoryStream(dataTable));
        }
コード例 #13
0
 public ErrorFilterTests()
 {
     _errorFilter = new ErrorFilter();
 }
コード例 #14
0
        public List <Error> GetError(ErrorFilter errorFilter)
        {
            var result = Core.GetError(errorFilter);

            return(result);
        }
コード例 #15
0
 public FileResult GetExcelReport(ErrorFilter error)
 {
     return(new FileStreamResult(_BuggerBusiness.GetExcelReport(error), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
 }
コード例 #16
0
 public static ErrorFilter WithUrlMatching(this ErrorFilter pipeline, string expression)
 {
     pipeline.WithFilter(new RegexUrlErrorFilter(expression));
     return(pipeline);
 }
コード例 #17
0
 public static ErrorFilter WithUrlFragment(this ErrorFilter pipeline, string urlFragment)
 {
     pipeline.WithFilter(new ContainsUrlFragmentErrorFilter(urlFragment));
     return(pipeline);
 }
コード例 #18
0
 public static ErrorFilter WithHttpCode(this ErrorFilter pipeline, HttpStatusCode statusCode)
 {
     pipeline.WithFilter(new HttpCodeErrorFilter(statusCode));
     return(pipeline);
 }
コード例 #19
0
 public ActionResult GetError(ErrorFilter errorFilter)
 {
     ViewBag.ErrorFilter = errorFilter;
     return(View(_BuggerBusiness.GetError(errorFilter)));
 }