private void AssertNotConsumed() { if (_isConsumed) { throw ErrorExtensions.NewResultConsumedException(); } }
public void OnFailure(string code, string message) { LogFailure(code, message); var handler = Dequeue(); _error = new ResponsePipelineError(ErrorExtensions.ParseServerException(code, message)); handler.OnFailure(_error); }
public void ConvertWriteClusterErrorToSessionExpiredError(string code) { var connMock = new Mock <IConnection>(); var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(connMock.Object, Uri, AccessMode.Write, handlerMock.Object); var inError = ErrorExtensions.ParseServerException(code, null); var outError = Record.Exception(() => clusterConn.OnError(inError)); outError.Should().BeOfType <SessionExpiredException>(); handlerMock.Verify(x => x.OnConnectionError(Uri, inError), Times.Never); handlerMock.Verify(x => x.OnWriteError(Uri), Times.Once); }
public async Task ConvertWriteClusterErrorToSessionExpiredError(string code) { var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(CreateConnectionWithMode(AccessMode.Write), Uri, handlerMock.Object); var inError = ErrorExtensions.ParseServerException(code, null); var outError = await Record.ExceptionAsync(() => clusterConn.OnErrorAsync(inError)); outError.Should().BeOfType <SessionExpiredException>(); handlerMock.Verify(x => x.OnConnectionErrorAsync(Uri, inError), Times.Never); handlerMock.Verify(x => x.OnWriteError(Uri), Times.Once); }
public IResult GetOrder(Guid id) { var order = _repository.Get(id); if (order == null) { return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado")); } var output = _mapper.Map <OrderModelOutput>(order); return(new Result <OrderModelOutput>(output, "Pedido obtido com sucesso!", true)); }
public IActionResult CloseOrder([FromRoute] string id) { if (Guid.TryParse(id, out var idGuid) == false) { return(GenerateResponse(HttpStatusCode.BadRequest, ErrorExtensions.CreateNotification("id", "Identificador inválido"))); } var response = _service.CloseOrder(idGuid); if (response.Success) { return(GenerateResponse(HttpStatusCode.OK, response)); } return(GenerateResponse(HttpStatusCode.BadRequest, response)); }
public IActionResult RemoveItem([FromRoute] string orderId, [FromRoute] string id) { if (Guid.TryParse(orderId, out var orderIdGuid) == false | Guid.TryParse(id, out var idGuid) == false) { return(GenerateResponse(HttpStatusCode.BadRequest, ErrorExtensions.CreateNotification("id", "Identificador inválido"))); } var response = _service.RemoveItem(new RemoveItemModel(idGuid, orderIdGuid)); if (response.Success) { return(GenerateResponse(HttpStatusCode.OK, response)); } return(GenerateResponse(HttpStatusCode.BadRequest, response)); }
public static string ToHtml(this Error e) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("<h3>Error</h3>"); stringBuilder.Append("<strong>|Message|</strong> " + e.Message + "<br/>"); stringBuilder.Append("<strong>|Error Level|</strong> " + e.ErrorLevel + "<br/>"); stringBuilder.Append("<strong>|Source|</strong> " + e.Source + "<br/>"); stringBuilder.Append("<strong>|Additional Information|</strong> " + e.AdditionalInformation + "<br/>"); stringBuilder.AppendLine("<strong>[Stack Trace|</strong><br/>"); foreach (string item in ErrorExtensions.GetStackStraceStrings(e.StackTrace)) stringBuilder.AppendLine( " " + item.Replace("<", "").Replace(">", "") + "<br/>"); return "<div>" + stringBuilder + "</div>"; }
public IResult CloseOrder(Guid id) { var order = _repository.Get(id); if (order == null) { return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado")); } order.Close(); if (order.IsValid()) { _repository.Update(order); var output = _mapper.Map <OrderModelOutput>(order); return(new Result <OrderModelOutput>(output, "Pedido fechado com sucesso!", true)); } return(order.GetNotifications()); }
public IResult RemoveItem(RemoveItemModel model) { var order = _repository.Get(model.OrderId); if (order == null) { return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado")); } order.RemoveItem(model.Id); if (order.IsValid()) { _repository.Update(order); var output = _mapper.Map <OrderModelOutput>(order); return(new Result <OrderModelOutput>(output, "Item removido com sucesso!", true)); } return(order.GetNotifications()); }
public IResult PaidOrder(PaidOrderModel model) { var order = _repository.Get(model.Id); if (order == null) { return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado")); } order.Paid(model.TotalPaidInCents); if (order.IsValid()) { _repository.Update(order); var output = _mapper.Map <OrderModelOutput>(order); return(new Result <OrderModelOutput>(output, "Pedido pago com sucesso!", true)); } return(order.GetNotifications()); }
public IResult AddItem(AddItemModel model) { var order = _repository.Get(model.OrderId); if (order == null) { return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado")); } var item = _mapper.Map <Item>(model); order.AddItem(item); if (order.IsValid()) { _repository.Update(order); var output = _mapper.Map <ItemModelOutput>(item); return(new Result <ItemModelOutput>(output, "Item adicionado com sucesso!", true)); } return(order.GetNotifications()); }
public IActionResult PaidOrder([FromRoute] string id, [FromBody] PaidOrderModel model) { if (Guid.TryParse(id, out var idGuid) == false) { return(GenerateResponse(HttpStatusCode.BadRequest, ErrorExtensions.CreateNotification("id", "Identificador inválido"))); } if (ModelState.IsValid == false) { return(GenerateBadRequestResponse()); } model.Id = idGuid; var response = _service.PaidOrder(model); if (response.Success) { return(GenerateResponse(HttpStatusCode.OK, response)); } return(GenerateResponse(HttpStatusCode.BadRequest, response)); }