public Guid PostClientError(ClientError error) { Context.ThrowIfNull(error, ClientFaultCodes.ContentMissing, "error", "Error object is missing."); var errLog = Context.App.GetService<IErrorLogService>(); Context.ThrowIfNull(errLog, ClientFaultCodes.ObjectNotFound, "ErrorLog", "Error log service not configured on server."); var errId = errLog.LogClientError(this.Context, error.Id, error.Message, error.Details, error.AppName, error.LocalTime); return errId; }
public Guid PostClientError(ClientError error) { Context.ThrowIf(!EnablePublicEvents, ClientFaultCodes.InvalidAction, "EnablePublicEvents", "Event info cannot be posted if user is not logged in. LogPostController.EnablePublicEvents is false."); Context.ThrowIfNull(error, ClientFaultCodes.ContentMissing, "error", "Error object is missing."); var errLog = Context.App.GetService <IErrorLogService>(); Context.ThrowIfNull(errLog, ClientFaultCodes.ObjectNotFound, "ErrorLog", "Error log service not configured on server."); var errId = errLog.LogClientError(this.Context, error.Id, error.Message, error.Details, error.AppName, error.LocalTime); return(errId); }
public void TestClientErrorPost() { var client = SetupHelper.Client; var clientError = new ClientError() { Id = Guid.NewGuid(), //optional AppName = "TestApp", Message = "Client Error Message", Details = "Client Error Details", LocalTime = SetupHelper.BooksApp.TimeService.Now.AddMinutes(-5) //pretend it happened 5 minutes ago }; var serverErrorId = client.ExecutePost<ClientError, Guid>(clientError, "api/clienterrors"); Assert.AreEqual(clientError.Id, serverErrorId, "Failed to submit client error, IDs do not match"); //Verify record exists in database var serverSession = SetupHelper.BooksApp.OpenSystemSession(); var errInfo = serverSession.GetEntity<IErrorLog>(serverErrorId); Assert.IsNotNull(errInfo, "Failed to get server error record."); Assert.AreEqual(clientError.Message, errInfo.Message, "message does not match"); Assert.AreEqual(clientError.Details, errInfo.Details, "Details do not match"); Assert.IsTrue(clientError.LocalTime.Value.EqualsTo(errInfo.LocalTime), "Time does not match"); //within 1 ms }