public IEnumerable <SubCatalog> SubCatalogListWithoutSubs(int catalogId) { IEnumerable <SubCatalog> result = null; using (ISession session = connection.CreateSession()) { // Сделать так, чтобы при выборе подкаталогов для изменения не было дочерних подкаталогов и его самого List <int> parentCatalogsId = new List <int>() { catalogId }; result = SubCatalogList() .Where(subCatalog => { SubCatalog parentCatalog = subCatalog.ParentCatalog; // Если родителский Id подкаталога есть в списке, // то этот подкаталог не подходит (запомнить его) или это он сам (то пропустить) if ((parentCatalog != null && parentCatalogsId.Contains(parentCatalog.Id) == true) || subCatalog.Id == catalogId) { parentCatalogsId.Add(subCatalog.Id); return(false); } else { return(true); } }); } return(result); }
// По входному параметру (идентификатор подкаталога) настроить все необходимые параметры для формирования представления // редактирования подкаталога - модель подкаталога, SelectList для выбора нового родительского каталога // Вернуть представление с формой для изменения данных public ActionResult UpdateSubCatalog(int?idSubCatalog) { if (idSubCatalog == null) { return(RedirectToAction("Index", "Error", new { statusCode = 404, msg = "Вы не выбрали подкаталог" })); } List <SubCatalog> listItems = catalog.SubCatalogListWithoutSubs((int)idSubCatalog).ToList(); SubCatalog subCatalog = catalog.GetOneSubCatalog((int)idSubCatalog); int parentId = subCatalog.ParentCatalog == null ? 0 : subCatalog.ParentCatalog.Id; listItems.Insert(0, new SubCatalog() { Name = "Корень" }); SelectList selectList = new SelectList(listItems, "Id", "Name", parentId); TempData["items"] = selectList; return(View(new SubCatalogModel() { Id = (int)idSubCatalog, Name = subCatalog.Name, ParentId = parentId })); }
public SubCatalog GetOneSubCatalog(int id) { SubCatalog result = null; using (ISession session = connection.CreateSession()) result = session.Get <SubCatalog>(id); return(result); }
public async Task <SubCatalog> GetOneSubCatalogAsync(int id) { SubCatalog result = null; using (ISession session = connection.CreateSession()) result = await session.GetAsync <SubCatalog>(id); return(result); }
public static bool DeleteSubCatalog(SubCatalog subCatalog) { RestRequest request = new RestRequest("admin/sub_catalog/{id}", Method.DELETE); request.AddUrlSegment("id", subCatalog.ID); request.AddHeader("Authorization", "Bearer " + Token); IRestResponse response = _client.Execute(request); return(response.StatusCode == System.Net.HttpStatusCode.OK); }
public static bool AddSubCatalog(SubCatalog subCatalog) { RestRequest request = new RestRequest("admin/sub_catalog/", Method.POST); request.AddParameter("name", subCatalog.Name); request.AddParameter("catalog_id", subCatalog.CatalogID); request.AddHeader("Authorization", "Bearer " + Token); IRestResponse response = _client.Execute(request); return(response.StatusCode == System.Net.HttpStatusCode.Created); }
public async Task DeleteSubCatalog(int catalogId) { using (ISession session = connection.CreateSession()) { using (ITransaction transaction = session.BeginTransaction()) { SubCatalog subCatalog = await GetOneSubCatalogAsync(catalogId); await session.DeleteAsync(subCatalog); await transaction.CommitAsync(); } } }
public static void InitDataDB() { using (ISession session = new DataBaseConnection().CreateSession()) { using (ITransaction transaction = session.BeginTransaction()) { Random random = new Random(); #region Главные каталоги for (int i = 1; i < 6; i++) { SubCatalog newCatalog1 = new SubCatalog(); newCatalog1.ParentCatalog = null; newCatalog1.Name = "Каталог №" + i; session.SaveOrUpdate(newCatalog1); } #endregion #region Подкаталоги главных каталогов for (int i = 1; i < 6; i++) { for (int j = 1; j < random.Next(1, 6); j++) { SubCatalog newSubCatalog = new SubCatalog(); newSubCatalog.Name = "Подкаталог №" + i + "." + j; newSubCatalog.ParentCatalog = session.Get <SubCatalog>(i); session.SaveOrUpdate(newSubCatalog); } } #endregion #region Статьи for (int i = 1; i < 40; i++) { Article newArticle = new Article(); newArticle.Name = "Статья №" + i; newArticle.Text = "Текст статьи №" + i; newArticle.SubCatalog = session.Get <SubCatalog>(random.Next(1, session.QueryOver <SubCatalog>().List().Count + 1)); session.SaveOrUpdate(newArticle); } #endregion transaction.Commit(); } } }
public ActionResult Create(SubCatalogAdmin subcatalogAdmin) { if (Session["userId"] != null) { try { if (db.Users.Find(Session["userId"]).Status == Status.admin) { SubCatalog subcatalog = new SubCatalog(); string sliceOfPath = "/Content/Images/ImageCategory/"; if (subcatalogAdmin.File.ContentLength > 0) { string filename = Path.GetFileName(subcatalogAdmin.File.FileName); string filepath = Path.Combine(Server.MapPath("~/Content/Images/ImageCategory"), filename); subcatalogAdmin.File.SaveAs(filepath); } subcatalog.Name = subcatalogAdmin.Name; subcatalog.ImagePath = sliceOfPath + subcatalogAdmin.File.FileName; subcatalog.CatalogId = subcatalogAdmin.CatalogId; db.SubCatalogs.Add(subcatalog); db.SaveChanges(); ViewBag.Products = db.Products; ViewBag.Catalogs = db.Catalogs; ViewBag.SubCatalogs = db.SubCatalogs; ViewBag.SubSubCatalogs = db.SubSubCatalogs; return(View("~/Areas/Admin/Views/Home/Admin.cshtml")); } return(HttpNotFound()); } catch (Exception) { ViewBag.Products = db.Products; ViewBag.Catalogs = db.Catalogs; ViewBag.SubCatalogs = db.SubCatalogs; ViewBag.SubSubCatalogs = db.SubSubCatalogs; return(View("~/Areas/Admin/Views/Home/Admin.cshtml")); } } return(HttpNotFound()); }
public async Task AddSubCatalog(SubCatalogModel catalogModel) { using (ISession session = connection.CreateSession()) { using (ITransaction transaction = session.BeginTransaction()) { SubCatalog catalog = new SubCatalog() { Name = catalogModel.Name }; if (catalogModel.ParentId != null) { catalog.ParentCatalog = await GetOneSubCatalogAsync((int)catalogModel.ParentId); } await session.SaveOrUpdateAsync(catalog); await transaction.CommitAsync(); } } }
private void ExecuteCommand(Func <SubCatalog, bool> apiMethod, object obj) { if (obj != null) { SubCatalog subCatalog = obj as SubCatalog; bool response = apiMethod(subCatalog); SubCatalogs?.Clear(); MarketAPI.GetSubCatalog(out List <SubCatalog> subCatalogs, out bool result); if (result && subCatalogs != null) { subCatalogs.ForEach(x => SubCatalogs.Add(x)); } MessageBox.Show ( response ? MarketAPI.SuccessMessage : MarketAPI.FailMessage ); } }
public async Task UpdateSubCatalog(SubCatalogModel catalogModel) { using (ISession session = connection.CreateSession()) { using (ITransaction transaction = session.BeginTransaction()) { SubCatalog subCatalog = await GetOneSubCatalogAsync(catalogModel.Id); SubCatalog parentSubCatalog = null; if (catalogModel.ParentId != null) { parentSubCatalog = await GetOneSubCatalogAsync((int)catalogModel.ParentId); } subCatalog.Name = catalogModel.Name; subCatalog.ParentCatalog = parentSubCatalog; await session.SaveOrUpdateAsync(subCatalog); await transaction.CommitAsync(); } } }