Skip to content

Instantly share code, notes, and snippets.

@eulerfx
eulerfx / Customer.cs
Created May 22, 2012 05:24
Customer entity
public class Customer
{
public Customer(string name)
{
this.Name = name;
}
string name;
public string Name
@eulerfx
eulerfx / CustomerViewModel.cs
Created May 22, 2012 05:28
Customer view model
public class CustomerViewModel
{
[Required]
public string Name { get; set; }
public Customer ToCustomer()
{
return new Customer(this.Name);
}
}
public class ImportRequestModel
{
public string SupplierId { get; set; }
public string SeedFilePath { get; set; }
}
public class ImportController : ApiController
{
public ImportController(IBus bus)
{
[Serializable]
public class ImportProducts : NServiceBus.ICommand
{
public string TaskId { get; set; }
public string SupplierId { get; set; }
public string SeedFilePath { get; set; }
}
[Serializable]
public class ImportProduct : NServiceBus.ICommand
public class TaskOverview
{
public string TaskId { get; set; }
public int Total { get; set; }
public int Completed { get; set; }
public int Errored { get; set; }
public DateTime StartDate { get; set; }
public DateTime? EndDate { get; set; }
}
@eulerfx
eulerfx / PurchaseOrder_Naive.cs
Created August 9, 2012 03:49
Naive implementation of purchase order invoice association method
public class Invoice
{
public string Id { get; private set; }
public PurchaseOrder PurchaseOrder { get; set; }
public DateTime Date { get; private set; }
public ICollection<LineItem> LineItems { get; private set; }
}
public class PurchaseOrder
{
@eulerfx
eulerfx / Invoice_AlwaysValid.cs
Created August 9, 2012 03:57
Always valid invoice
public class Invoice
{
public Invoice(PurchaseOrder purchaseOrder, string number, DateTime date, IEnumerable<LineItem> lineItems)
{
this.PurchaseOrder = purchaseOrder;
this.Number = number;
this.Date = date;
this.LineItems = lineItems.ToList();
}
public PurchaseOrder PurchaseOrder { get; private set; }
@eulerfx
eulerfx / Order.cs
Created August 15, 2012 02:41
Order line item aggregation relationship
public class Order
{
public string Id { get; private set; }
public ICollection<LineItem> Items { get; private set; }
public LineItem AddItem(string productId, decimal price, int quantity)
{
var item = new LineItem(this, productId, price, quantity);
this.Items.Add(item);
@eulerfx
eulerfx / Order_ReadOnlyItems.cs
Created August 15, 2012 02:49
Order aggregate with read-only items.
public class Order
{
public string Id { get; private set; }
IList<LineItem> items;
public ICollection<LineItem> Items
{
get { return new ReadOnlyCollection<LineItem>(this.items); }
}
@eulerfx
eulerfx / MultiMapIndexAPI.cs
Created September 5, 2012 02:44
Alternate API for RavenDB Multi-Map Index
// the "database" variable is provided by the context
from strategy in docs.Strategies
let product = database.Load<Product>(strategy.ProductId)
select new
{
// properties of of pricing strategy and product
}