public static void Handle(FaultException faultException) { Exception innerException = null; if (faultException is FaultException<RecordNotFoundFault>) { var recordNotFoundFault = faultException as FaultException<RecordNotFoundFault>; innerException = new RecordNotFoundException(recordNotFoundFault.Message); } if (faultException is FaultException<InvalidRecordFault>) { var invalidRecordFault = faultException as FaultException<InvalidRecordFault>; innerException = new InvalidRecordException(invalidRecordFault.Message); } if (faultException is FaultException<DuplicateRecordFoundFault>) { var duplicateRecordFault = faultException as FaultException<DuplicateRecordFoundFault>; innerException = new DuplicateRecordFoundException(duplicateRecordFault.Message); } if (innerException == null) { throw faultException; } if (innerException == null) { throw faultException; } throw new StockException("A exception has occured.",innerException); }
private object PopulateResponse(Exception exception, HttpResponse httpResponse) { httpResponse.StatusCode = exception switch { InvalidActionException _ => StatusCodes.Status400BadRequest, DuplicateRecordException _ => StatusCodes.Status400BadRequest, RecordNotFoundException _ => StatusCodes.Status404NotFound, _ => StatusCodes.Status500InternalServerError }; if (httpResponse.StatusCode == StatusCodes.Status500InternalServerError) { _logger.LogError(exception, "Unhandled exception"); if (!_env.IsDevelopment()) { return(new { Message = "Unexpected error :(" }); } while (exception.InnerException != null) { exception = exception.InnerException; } } return(new { exception.Message }); } }
public T Find(int recordId, bool errorIfMissing = true) { using (var db = _db.OpenRead()) { var coll = GetCollection(db); T rec = default(T); try { rec = coll.FindById(recordId); } catch (UnauthorizedAccessException) { if (!_db.DbPath.TryGrantEveryoneFullControl()) { throw Locked.File(_db.DbPath); } } if (rec == null && errorIfMissing) { throw RecordNotFoundException.For <T>("Id", recordId); } return(rec); } }
private Response GetResponse(Exception exception) { var statusCode = exception switch { InvalidActionException _ => StatusCodes.Status400BadRequest, DuplicateRecordException _ => StatusCodes.Status400BadRequest, ForbiddenException _ => StatusCodes.Status403Forbidden, RecordNotFoundException _ => StatusCodes.Status404NotFound, _ => StatusCodes.Status500InternalServerError }; if (statusCode == StatusCodes.Status500InternalServerError) { _logger.LogError(exception, "Unhandled exception"); if (!_env.IsDevelopment()) { return(new Response(statusCode, "Unexpected error :(")); } while (exception.InnerException != null) { exception = exception.InnerException; } } return(new Response(statusCode, exception)); }
protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError().GetBaseException(); HttpException httpException = exception as HttpException; RecordNotFoundException recordException = exception as RecordNotFoundException; if (httpException != null) { Server.ClearError(); switch (httpException.GetHttpCode()) { case 404: { Response.Redirect("~/home/error?id=404"); } break; default: { Response.Redirect("~/home/error/"); } break; } } else if (recordException != null) { Response.Redirect("~/home/error?id=204"); } else { Response.Redirect("~/home/error/"); } }
public void OnException(ExceptionContext context) { var error = context.Exception switch { RecordNotFoundException e => new ApiError($"{e.Message} not found"), _ => UnknownError(context.Exception), }; context.Result = new JsonResult(error); }
public DataRow Get(Guid id) { var row = _databaseGateway.GetSingleRowUsing(_queryFactory.Get(id)); if (row == null) { throw RecordNotFoundException.For("Formula", id); } return(row); }
private static T DefaultOrThrow(string field, BsonValue value, bool errorIfMissing) { if (errorIfMissing) { throw RecordNotFoundException.For <T>(field, value); } else { return(default(T)); } }
public void WithCustomErrorMessage() { const string entity = "entity"; const long key = 1; // Arrange var exception = new RecordNotFoundException(entity, key); // Assert exception.Message.Should().Be($"Entity '{entity}' does not matter with the '{key}' key."); }
public T Find(int recordId, bool errorIfMissing = true) { using (var db = _db.OpenRead()) { var rec = GetCollection(db).FindById(recordId); if (rec == null && errorIfMissing) { throw RecordNotFoundException.For <T>("Id", recordId); } return(rec); } }
private object PopulateResponse(Exception exception, HttpResponse httpResponse) { httpResponse.StatusCode = exception switch { InvalidActionException _ => StatusCodes.Status400BadRequest, RecordNotFoundException _ => StatusCodes.Status404NotFound, _ => StatusCodes.Status500InternalServerError }; if (httpResponse.StatusCode == StatusCodes.Status500InternalServerError) { _logger.LogError(exception, "Unhandled exception"); } return(new { exception.Message }); } }
public void InsertUpdateRecord() { var db = new SimpleDatabase_Accessor("EEE", false); db.Initialize(); const int rowSize = 100; var key1 = new string('1', 36); var key2 = new string('2', 36); var key3 = new string('3', 36); var key4 = new string('4', 36); var encoder = new UTF8Encoding(); var tid = new Transaction(); db.CreateTable("Inventory.Car", rowSize); db.InsertRecord(tid, "Inventory.Car", key1, new Row(rowSize) { Data = encoder.GetBytes("Seattle, 123") }); var row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, 123", row.DataString); db.InsertRecord(tid, "Inventory.Car", key2, new Row(rowSize) { Data = encoder.GetBytes("New York, 456") }); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, 123", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, 456", row.DataString); db.InsertRecord(tid, "Inventory.Car", key3, new Row(rowSize) { Data = encoder.GetBytes("London, 789") }); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, 123", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, 456", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key3); Assert.AreEqual("London, 789", row.DataString); db.InsertRecord(tid, "Inventory.Car", key4, new Row(rowSize) { Data = encoder.GetBytes("Phoenix, 012") }); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, 123", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, 456", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key3); Assert.AreEqual("London, 789", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key4); Assert.AreEqual("Phoenix, 012", row.DataString); // Update db.UpdateRecord(tid, "Inventory.Car", key1, new Row(rowSize) { Data = encoder.GetBytes("Seattle, key1") }); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, key1", row.DataString); db.UpdateRecord(tid, "Inventory.Car", key2, new Row(rowSize) { Data = encoder.GetBytes("New York, key2") }); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, key2", row.DataString); db.UpdateRecord(tid, "Inventory.Car", key3, new Row(rowSize) { Data = encoder.GetBytes("London, key3") }); row = db.ReadRecord(tid, "Inventory.Car", key3); Assert.AreEqual("London, key3", row.DataString); db.UpdateRecord(tid, "Inventory.Car", key4, new Row(rowSize) { Data = encoder.GetBytes("Phoenix, key4") }); row = db.ReadRecord(tid, "Inventory.Car", key4); Assert.AreEqual("Phoenix, key4", row.DataString); db.DeleteRecord(tid, "Inventory.Car", key4); RecordNotFoundException exception = null; try { row = db.ReadRecord(tid, "Inventory.Car", key4); Assert.Fail(); } catch (RecordNotFoundException e) { exception = e; } Assert.IsNotNull(exception); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, key1", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, key2", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key3); Assert.AreEqual("London, key3", row.DataString); db.InsertRecord(tid, "Inventory.Car", key4, new Row(rowSize) { Data = encoder.GetBytes("Oregon, 345") }); row = db.ReadRecord(tid, "Inventory.Car", key1); Assert.AreEqual("Seattle, key1", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key2); Assert.AreEqual("New York, key2", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key3); Assert.AreEqual("London, key3", row.DataString); row = db.ReadRecord(tid, "Inventory.Car", key4); Assert.AreEqual("Oregon, 345", row.DataString); }