Cześć uczę sie ASP.NET i mam takie pytanie dlaczrgo wysyakuje mi ten błąd skoro wszystko deklaruje wiem ze codzi tu chyba o wstrzykiwanie zależności ale nie mam pojęcia jak to zrobić bardzo prosze o pomoc z góry dziękuje :)
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Sklep.Infrastructure;
using Sklep.Models;
using Sklep.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Sklep.Controllers
{
public class OrderController : Controller
{
private OrderManager orderManager;
private ApplicationDbContext db;
private ISessionManager session { get; set; }
public OrderController()
{
}
public OrderController(ApplicationDbContext db, ISessionManager session)
{
this.db = db;
this.session = session;
orderManager = new OrderManager(session, db);
}
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
public ActionResult Index()
{
var orderItems = orderManager.GetBasket();
var totalValue = orderManager.GetTotalValue();
OrderViewModel vm = new OrderViewModel()
{
OrderItems = orderItems,
TotalValue = totalValue
};
ViewBag.Amount = orderItems.Count;
return View(vm);
}
public ActionResult AddToBasket(int id)
{
orderManager.AddToBasket(id);
TempData["message"] = "Pomyślnie dodano do koszyka";
return RedirectToAction("Index", "Home");
}
public int AmountItems()
{
var basketAmount = orderManager.GetAmountBasketItems();
return basketAmount;
}
public ActionResult DeleteFromBasket(int id)
{
var orderItems = orderManager.GetBasket();
var basketItem = orderItems.Find(x => x.ProductId == id);
if (basketItem.Quantity >= 2)
{
basketItem.Quantity--;
}
else
{
orderItems.Remove(basketItem);
}
var totalValue = orderManager.GetTotalValue();
OrderViewModel vm = new OrderViewModel()
{
OrderItems = orderItems,
TotalValue = totalValue
};
ViewBag.Amount = orderItems.Count;
return RedirectToAction("Index", vm);
}
[HttpGet]
public ActionResult Pay()
{
if(Request.IsAuthenticated)
{
var userId = User.Identity.GetUserId();
var user = UserManager.FindById(userId);
var order = new Order()
{
FirstName = user.FirstName,
SecondName = user.SecondName,
Adress = user.Adress,
City = user.City,
ZipCode = user.ZipCode,
Phone = user.PhoneNumber,
Email = user.Email
};
return View(order);
}
else
{
return RedirectToAction("Login", "Account", new { returnUrl = Url.Action("Pay", "Order") });
}
}
[HttpPost]
public ActionResult Pay(Order order)
{
if(ModelState.IsValid)
{
var userId = User.Identity.GetUserId();
var newOrder = orderManager.CreateOrder(order, userId);
var user = UserManager.FindById(userId);
TryUpdateModel(user);
UserManager.Update(user);
orderManager.EmptyBasket();
TempData["message"] = "Dziękujemy za złożenie zamówienia";
return RedirectToAction("Index", "Home");
}
else
{
return View(order);
}
}
}
}