/// <summary> /// Инициаилизирует пользователя во вьюбаг /// </summary> /// <param name="id">Идентификатор пользователя</param> private User InitializeUser(long id) { // Загружаем пользователя var user = UsersRepository.Load(id); if (user == null) { // Редиректим Response.Redirect("/",true); return null; } ViewBag.user = user; // Проверяем каталог его товаров if (user.UserCategories.Count == 0 && user.Products.Count > 0) { var startPos = 0; // Добавляем пользователю категории товаров foreach(var product in user.Products.Where(p => p.Category != null)) { // Ищем категорию var category = user.UserCategories.FirstOrDefault(uc => uc.Title == product.Category.Title); if (category == null) { // СОздаем startPos += 1000; category = new UserCategory() { Title = product.Category.Title, Description = String.Empty, Position = (startPos), User = user }; user.UserCategories.Add(category); } // Добавляем в нее товар category.Products.Add(product); } } // Сохраняем UsersRepository.SubmitChanges(); return user; }
public ActionResult SaveCategoryJson(string name) { if (!IsAuthentificated) { return RedirectToAction("Register"); } if (!string.IsNullOrEmpty(name)) { var category = new UserCategory { Title = name, Position = CurrentUser.UserCategories.Count > 0 ? CurrentUser.UserCategories.Max(c => c.Position) + 1000 : 1000 }; CurrentUser.UserCategories.Add(category); } // Сохраняем UsersRepository.SubmitChanges(); // Переходим на страницу товара return Json(new {success = true},JsonRequestBehavior.AllowGet); }
private void detach_UserCategories(UserCategory entity) { this.SendPropertyChanging(); entity.User = null; }
public ActionResult SaveCategory(UserCategory model) { if (!IsAuthentificated) { return RedirectToAction("Register"); } // Проверяем что у нас - создание или редактирование UserCategory category; if (model.Id <= 0) { category = model; category.Position = CurrentUser.UserCategories.Count > 0 ? CurrentUser.UserCategories.Max(c => c.Position) + 1000 : 1000; CurrentUser.UserCategories.Add(category); } else { category = CurrentUser.UserCategories.First(c => c.Id == model.Id); category.Title = model.Title; category.Description = model.Description; category.Position = model.Position; } // Сохраняем UsersRepository.SubmitChanges(); // Переходим на страницу товара return RedirectToAction("Products"); }
private void attach_UserCategories(UserCategory entity) { this.SendPropertyChanging(); entity.User = this; }