public CategoryMapJsonModel(CategoryMap categoryMap) { Id = categoryMap.Id; CategoryId = categoryMap.CategoryId; CategoryName = Locator.GetService<ICategoriesRepository>().Load(categoryMap.CategoryId).Title; DisplayName = categoryMap.DisplayName; Image = categoryMap.Image; SortOrder = categoryMap.SortOrder; DateCreated = categoryMap.DateCreated; }
private void detach_CategoryMaps(CategoryMap entity) { this.SendPropertyChanging(); entity.Category = null; }
public JsonResult Save([ModelBinder(typeof(JsonModelBinder))] CategoryMapJsonModel model, HttpPostedFileBase file, int parent, string categoryIds) { // TODO: refactor try { // Репозиторий var repository = Locator.GetService<ICategoriesMapRepository>(); var categoriesRepository = Locator.GetService<ICategoriesRepository>(); var mapItemsRepository = Locator.GetService<ICategoriesMapItemsRepository>(); var mapItems = mapItemsRepository.FindAll().ToList(); CategoryMap categoryMap; if (model.Id <= 0) { // Создаем новый элемент categoryMap = new CategoryMap { DisplayName = model.DisplayName, DateCreated = DateTime.Now, SortOrder = model.SortOrder, CategoryId = parent }; repository.Add(categoryMap); repository.SubmitChanges(); } else { // Обновляем существующую categoryMap = repository.Load(model.Id); if (categoryMap == null) { throw new ObjectNotFoundException(String.Format("Карта категорий с идентификатором {0} не найден", model.Id)); } categoryMap.DisplayName = model.DisplayName; categoryMap.SortOrder = model.SortOrder; categoryMap.CategoryId = parent; } if (file != null && file.ContentLength > 0) { // Загружаем изображение для карты категорий try { categoryMap.UploadImage(file); } catch (Exception e) { return JsonErrors(e); } } if (categoryIds != null) { var itemsOfMap = mapItems.Where(f => f.CategoryMapId == categoryMap.Id).ToList(); foreach (var item in itemsOfMap) { mapItemsRepository.Delete(item); } if (categoryIds.Length > 0) { var categoryIdsArr = categoryIds.Split(',').Select(n => Convert.ToInt32(n)).ToArray(); var categories = categoryIdsArr.Select(id => categoriesRepository.Load(id)).ToList(); if (categories.Any()) { foreach (var category in categories) { mapItemsRepository.Add(new CategoryMapItem { Category = category, CategoryMap = categoryMap }); } } } } // Сохраняем изменения mapItemsRepository.SubmitChanges(); repository.SubmitChanges(); return JsonSuccess(); } catch (Exception e) { return JsonErrors(e); } }
private void attach_CategoryMaps(CategoryMap entity) { this.SendPropertyChanging(); entity.Category = this; }