Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Item
- {
- public int ItemId { get; set; }
- public string ItemName { get; set; }
- public string ItemDesc { get; set; }
- public string Brand { get; set; }
- public string Category { get; set; }
- public decimal ItemPrice { get; set; }
- }
- public interface IItemRepository
- {
- IQueryable<Item> Items { get; }
- }
- public class EFItemRepository : IItemRepository
- {
- private EFdbContext context = new EFdbContext();
- public IQueryable<Item> Items
- {
- get { return context.Items; }
- }
- }
- class EFdbContext
- {
- public DbSet<Item> Items { get; set; }
- }
- public class NinjectControllerFactory : DefaultControllerFactory
- {
- private IKernel ninjectKernel;
- public NinjectControllerFactory()
- {
- ninjectKernel = new StandardKernel();
- AddBinding();
- }
- protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
- {
- //return base.GetControllerInstance(requestContext, controllerType);
- return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
- }
- private void AddBinding()
- {
- ////Old binding to bind to moq item repo - All this works
- //Mock<IItemRepository> mock = new Mock<IItemRepository>();
- //mock.Setup(m => m.Items).Returns(new List<Item>
- //{
- // new Item{ItemId=1,ItemName="Trolley", ItemPrice=100M},
- // new Item{ItemId=1,ItemName="Irons", ItemPrice=255M},
- // new Item{ItemId=1,ItemName="Driver", ItemPrice=129.67M}
- //}.AsQueryable());
- //ninjectKernel.Bind<IItemRepository>().ToConstant(mock.Object);
- //New binding to bind to real db
- ninjectKernel.Bind<IItemRepository>().To<EFItemRepository>();
- }
- }
- public class ItemController : Controller
- {
- private IItemRepository repository;
- public ItemController(IItemRepository itemRepository)
- {
- this.repository = itemRepository;
- }
- public ViewResult Index()
- {
- return View(repository.Items);
- }
- }
- @model IEnumerable<SHGolfStore.Domain.Entities.Item>
- @{
- ViewBag.Title = "Index";
- }
- @{
- //TODO FR: Part 6
- }
- <h2>MY DI Stuff Part 1</h2>
- <br />
- @foreach (var i in Model)
- {
- <div class="item">
- <h4>@i.ItemName (€@i.ItemPrice)</h4>
- </div>
- }
- ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
- <add name="EFDbContext" connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-SHGolfStore.WebUI-20140413135241;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-SHGolfStore.WebUI-20140413135241.mdf" providerName="System.Data.SqlClient" />
- <add name="DefaultConnection" connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-SHGolfStore.WebUI-20140413135241;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-SHGolfStore.WebUI-20140413135241.mdf" providerName="System.Data.SqlClient" />
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement