public IEnumerable <BookOrder> GetBySupplier(string supplier, BookOrderState state) { using (var connection = CreateConnection()) { return(GetBookOrdersAction.Execute(connection, supplier, state)); } }
public BookOrderDto(string supplier, string id, BookOrderState state, IEnumerable <OrderLineDto> orderLines) { Supplier = supplier; _id = id; State = state; OrderLines = orderLines; }
public IEnumerable <BookOrder> GetByState(BookOrderState state) { using (var connection = CreateConnection()) { return(GetBookOrdersAction.Execute(connection, state: state)); } }
private BookOrder(string supplier, BookOrderState state, Guid id, IList <OrderLine> lines) { Supplier = supplier; Id = id; State = state; _orderLines = lines.ToList(); }
public IEnumerable <BookOrder> GetBySupplier(string supplier, BookOrderState state) { List <BookOrder> bookOrders = new List <BookOrder>(); using (var client = new MyCouchClient(_databaseUri, _databaseName)) { QueryViewRequest request = new QueryViewRequest( "bookorders", "bysupplier"); request.Configure(parameters => parameters .Key(supplier) .IncludeDocs(false)); ViewQueryResponse <string> docIdsBySupplier = client.Views.QueryAsync <string>(request).Result; if (docIdsBySupplier.IsEmpty) { return(Enumerable.Empty <BookOrder>()); } QueryViewRequest request2 = new QueryViewRequest( "bookorders", "bystate"); request2.Configure(parameters => parameters .Key(state) .IncludeDocs(false)); ViewQueryResponse <string> docIdsByState = client.Views.QueryAsync <string>(request2).Result; if (docIdsByState.IsEmpty) { return(Enumerable.Empty <BookOrder>()); } var docIds = docIdsBySupplier.Rows.Select(x => x.Id) .Intersect(docIdsByState.Rows.Select(x => x.Id)); var request3 = new QueryViewRequest("_all_docs"); request3.Configure(parameters => parameters .Keys(docIds.ToArray()) .IncludeDocs(true)); var results = client.Views.QueryAsync <string>(request3).Result; if (results.IsEmpty) { return(Enumerable.Empty <BookOrder>()); } foreach (var resultsRow in results.Rows) { BookOrderDto dto = JsonConvert.DeserializeObject <BookOrderDto>( resultsRow.IncludedDoc); bookOrders.Add(BookOrderMapper.MapFrom(dto)); } } return(bookOrders); }
public void Approve() { if (State != BookOrderState.New) { throw new BookOrderApproveException(); } State = BookOrderState.Approved; }
public void Send() { if (State != BookOrderState.Approved) { throw new BookOrderSendException(); } State = BookOrderState.Sent; }
public static BookOrder ToDomain(this BookOrderDto dto) { BookOrderState state = dto.State.ToDomain(); List <OrderLine> orderLines = new List <OrderLine>(); foreach (var dtoOrderLine in dto.OrderLines) { orderLines.Add(new OrderLine(dtoOrderLine.Title, dtoOrderLine.Price, dtoOrderLine.Quantity, dtoOrderLine.Id)); } return(BookOrder.CreateExisting(dto.Supplier, dto.Id, state, orderLines)); }
private BookOrder(string supplier, Guid id, BookOrderState state, IEnumerable <OrderLine> orderLines) { if (string.IsNullOrWhiteSpace(supplier)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(supplier)); } if (orderLines == null) { throw new ArgumentNullException(nameof(orderLines)); } Supplier = supplier; Id = id; State = state; OrderLines = orderLines.ToList(); }
public static IEnumerable <BookOrder> ToDomain(this IEnumerable <BookOrderDto> dtos) { List <BookOrder> bookOrders = new List <BookOrder>(); foreach (var dto in dtos) { BookOrderState state = dto.State.ToDomain(); List <OrderLine> orderLines = new List <OrderLine>(); foreach (var dtoOrderLine in dto.OrderLines) { orderLines.Add(new OrderLine(dtoOrderLine.Title, dtoOrderLine.Price, dtoOrderLine.Quantity, dtoOrderLine.Id)); } bookOrders.Add( BookOrder.CreateExisting(dto.Supplier, dto.Id, state, orderLines)); } return(bookOrders); }
public void ApproveABookOrder_WhenStateIsNotNew_ShouldThrowDomainException(BookOrderState state) { var sut = CreateSut(); BookOrder bookOrder; if (state == BookOrderState.Approved) { bookOrder = a.BookOrder.ThatIsApproved(); } else if (state == BookOrderState.Sent) { bookOrder = a.BookOrder.ThatIsSent(); } else { throw new ArgumentOutOfRangeException(); } _bookOrderRepository.Store(bookOrder); Action sendBookOrderThatIsAlreadySent = () => sut.Execute(bookOrder.Id); sendBookOrderThatIsAlreadySent.ShouldThrow <Exception>(); }
public IEnumerable <BookOrder> GetByState(BookOrderState state) { List <BookOrder> bookOrders = new List <BookOrder>(); using (var client = new MyCouchClient(_databaseUri, _databaseName)) { QueryViewRequest request = new QueryViewRequest( "bookorders", "bystate"); request.Configure(parameters => parameters .Key(state) .IncludeDocs(true)); ViewQueryResponse <string> results = client.Views.QueryAsync <string>(request).Result; foreach (var resultsRow in results.Rows) { BookOrderDto dto = JsonConvert.DeserializeObject <BookOrderDto>( resultsRow.IncludedDoc); bookOrders.Add(BookOrderMapper.MapFrom(dto)); } } return(bookOrders); }
public BookOrderCreatedEvent(string supplier, Guid id, BookOrderState state) { Supplier = supplier; Id = id; }
public BookOrderBuilder WithState(BookOrderState bookOrderState) { _state = bookOrderState; return(this); }
public static BookOrderStateDto ToDto(this BookOrderState bookOrderState) { return((BookOrderStateDto)Enum.Parse(typeof(BookOrderState), bookOrderState.ToString())); }
public IEnumerable <BookOrder> GetBySupplier(string supplier, BookOrderState state) { return(_bookOrders.Where(x => x.Supplier == supplier && x.State == state.ToDto()).ToDomain()); }
public IEnumerable <BookOrder> GetByState(BookOrderState state) { return(_bookOrders.Where(x => x.State == state.ToDto()).ToDomain()); }
public IEnumerable <BookOrder> GetBySupplier(string supplier, BookOrderState state) { return(_bookOrders.Values.Where(x => x.Supplier == supplier && x.State == state)); }
public IEnumerable <BookOrder> GetByState(BookOrderState state) { return(_bookOrders.Values.Where(x => x.State == state)); }
public void SendingABookOrder_WhenStateIsNotApproved_ShouldThrowDomainException(BookOrderState state) { var sut = CreateSut(); BookOrder bookOrder = a.BookOrder.WithState(state); _bookOrderRepository.Store(bookOrder); Action sendBookOrderThatIsAlreadySent = () => sut.Execute(bookOrder.Id); sendBookOrderThatIsAlreadySent.ShouldThrow <Exception>(); }
/// <summary> /// Create an existing book order /// </summary> public static BookOrder CreateExisting(string supplier, BookOrderState state, Guid id, IList <OrderLine> lines) { return(new BookOrder(supplier, state, id, lines)); }
public static BookOrder CreateExisting(string supplier, Guid id, BookOrderState state, IEnumerable <OrderLine> orderLines) { return(new BookOrder(supplier, id, state, orderLines)); }