Я пытаюсь войти в приложение, но это исключение. Я оставил его с правильно работающим приложением. Через 2 дня я снова начал работать над этим, так что теперь это исключение.
Я применил единицу работы за 2 дня. Сегодня, перед проверкой приложения, я попытался добавить проверку, добавив метод действия «элемент уже существует». Затем я удалил этот код, все еще давая это исключение. Не понимаю. Проблема в контроллере учетной записи, так как он не позволяет войти в систему.
public static class UnityConfig
{
public static void RegisterComponents()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
// e.g. container.RegisterType<ITestService, TestService>();
container.RegisterType<ICategoryRepository, CategoryRepository>();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
Это UnityConfig.
public class CategoryViewModel
{
public int CategoryId { get; set; }
[Required]
[Remote("IsCategoryExists", "Category", HttpMethod = "POST", ErrorMessage = "This Category already exist.", AdditionalFields = "CategoryName,CategoryId")]
[Display(Name ="Category Name")]
public string CategoryName { get; set; }
[Display(Name = "Is Active")]
public bool IsActive { get; set; }
}
Вот модель категории
public class CategoryController : AdminBaseController
{
LaundryManagementSystemEntities db = new LaundryManagementSystemEntities();
//private ICategoryRepository interfaceobj;
private UnitOfWork unitOfWork;
public CategoryController()
{
// this.interfaceobj = iCategory;
//For Repositorypatterns
//this.interfaceobj = new CategoryRepository(new LaundryManagementSystemEntities());
//For Unit Of Work
this.unitOfWork = new UnitOfWork(new LaundryManagementSystemEntities());
}
// GET: Category
public ActionResult Index()
{
return View();
}
public ActionResult Create()
{
CategoryViewModel categoryViewModel = new CategoryViewModel();
return PartialView("Create",categoryViewModel);
}
[HttpPost]
public ActionResult Create(CategoryViewModel category)
{
if (ModelState.IsValid)
{
unitOfWork.CategoryRepository.CreateCategory(category);
// interfaceobj.CreateCategory(catogery);
}
return PartialView("Create",category);
}
//[HttpPost]
//public JsonResult IsCategoryExists(string CategoryName, int CategoryId)
//{
// bool found = false;
// if (CategoryId == 0)
// {
// found = db.Categories.Any(na => na.CategoryName == CategoryName);
// }
// else
// {
// found = db.Categories.Any(na => na.CategoryName == CategoryName && na.CategoryID != CategoryId);
// }
// if (!found)
// {
// return Json(true, JsonRequestBehavior.AllowGet);
// }
// return Json(false, JsonRequestBehavior.AllowGet);
//}
Это контроллер, к которому я добавил метод IsCategoryExists, который пока комментируется.
ublic class UnitOfWork: IDisposable
{
private CategoryRepository categoryRepository;
private LaundryManagementSystemEntities _entities;
public UnitOfWork(LaundryManagementSystemEntities entities)
{
this._entities = entities;
}
public CategoryRepository CategoryRepository
{
get
{
if (categoryRepository == null)
{
categoryRepository = new CategoryRepository(_entities);
}
return categoryRepository;
}
}
public void Dispose()
{
_entities.Dispose();
}
public void Save()
{
_entities.SaveChanges();
}
}
Единицакласса работы
public class CategoryRepository : ICategoryRepository
{
private LaundryManagementSystemEntities context;
public CategoryRepository(LaundryManagementSystemEntities db)
{
this.context = db;
}
public void CreateCategory(CategoryViewModel categoryViewModel)
{
var category = new Category();
category.CategoryName = categoryViewModel.CategoryName;
category.IsActive = categoryViewModel.IsActive;
context.Categories.Add(category);
context.SaveChanges();
}
public void DeleteCategory(int categoryId)
{
Category category = context.Categories.Find(categoryId);
if (category != null)
{
context.Categories.Remove(category);
context.SaveChanges();
}
}
public void DeleteProductOfCategory(int productId)
{
var listProducts = context.Products.Where(x => x.CategoryID == productId).ToList();
foreach (var p in listProducts)
{
context.Entry(p).State = EntityState.Deleted;
}
}
public void Dispose()
{
throw new NotImplementedException();
}
public CategoryViewModel GetEditCategory(int? categoryId)
{
Category category = context.Categories.Find(categoryId);
var categoryViewModel = new CategoryViewModel();
categoryViewModel.CategoryId = category.CategoryID;
categoryViewModel.CategoryName = category.CategoryName;
categoryViewModel.IsActive = category.IsActive;
return categoryViewModel;
}
public void PostEditCategory(CategoryViewModel model)
{
Category category = context.Categories.Find(model.CategoryId);
category.CategoryID = model.CategoryId;
category.CategoryName = model.CategoryName;
category.IsActive = model.IsActive;
context.SaveChanges();
}
public List<Category> GetCategories()
{
context.Configuration.ProxyCreationEnabled = false;
return context.Categories.OrderBy(a => a.CategoryName).ToList();
}
public Category GetCategoryById(int? categoryId)
{
return context.Categories.Find(categoryId);
}
Это класс репозитория категорий
Я просто хочу знать, почему он дает исключение и что мне делать.