public UserIndex Update(IAssignedUserOrder assignedUserOrder) { var index = MyOrders.IndexOf(assignedUserOrder); if (index < 0) { throw new InvalidOperationException(string.Format("MyOrders does not contains user order {0}.", assignedUserOrder)); } var newMyOrders = MyOrders.SetItem(index, assignedUserOrder); return(new UserIndex(User, LastTransaction, newMyOrders, AssigningOrders)); }