public IActionResult GetEditItem(int item_language_id) { using (var db = CMSContextFactory.Create(Settings.MySqlConnectionString)) { Item_Language itemLanguage = db.Item_Language .Include(_itemLanguage => _itemLanguage.Item) .ThenInclude(item => item.Category) .Include(_itemLanguage => _itemLanguage.Item) .ThenInclude(item => item.Role) .SingleOrDefault(_itemLanguage => _itemLanguage.Id == item_language_id); ViewBag.itemLanguage = itemLanguage; if (itemLanguage.Item.Category.CustomFields != null) { ViewBag.catCustomFields = JsonConvert.DeserializeObject <List <CustomField> >(itemLanguage.Item.Category.CustomFields); ViewBag.itemCustomValue = JsonConvert.DeserializeObject <dynamic>(itemLanguage.Item.CustomValues) as JObject; } else { ViewBag.catCustomFields = new List <CustomField>(); } ViewBag.cats = db.Category_Language.Where(cat_lang => cat_lang.LanguageId == itemLanguage.LanguageId).ToList(); ViewBag.roles = db.Roles.ToList(); return(View("~/Components/Main/Item/Views/Backend/edit.cshtml")); } }
public IActionResult CreateItem(Item item, Item_Language item_language) { using (var db = CMSContextFactory.Create(Settings.MySqlConnectionString)) { //get chosen category, to parse custom fields if existed... var category = db.Categories.SingleOrDefault(cat => cat.Id == item.CategoryId); string customValuesBuilder = null; if (category.CustomFields != null) { var customFields = JsonConvert.DeserializeObject <List <CustomField> >(category.CustomFields); customValuesBuilder = "{"; foreach (var customField in customFields) { var nameOfField = customField.Name; var valueOfField = this.Request.Form[nameOfField]; customValuesBuilder += "\"" + nameOfField + "\":" + valueOfField; } customValuesBuilder += "}"; } item.CustomValues = customValuesBuilder; db.Add(item); item_language.LanguageId = 1;//default language item_language.Item = item; db.Add(item_language); db.SaveChanges(); } return(Redirect("/backend/items")); }
public IActionResult AddItem(Item_Language item_language) { //TODO: authorize, validate... using (var db = CMSContextFactory.Create(Settings.MySqlConnectionString)) { db.Add(item_language); db.SaveChanges(); } return(Redirect("/backend/items")); }
public IActionResult EditItem(Item item, Item_Language itemLanguage) { using (var db = CMSContextFactory.Create(Settings.MySqlConnectionString)) { //get ids item.Id = int.Parse(this.Request.Form["ItemId"]); itemLanguage.Id = int.Parse(this.Request.Form["Item_LanguageId"]); //get chosen category var category = db.Categories.SingleOrDefault(cat => cat.Id == item.CategoryId); string customValuesBuilder = ""; if (category.CustomFields != null) { var customFields = JsonConvert.DeserializeObject <List <CustomField> >(category.CustomFields); customValuesBuilder = "{"; foreach (var customField in customFields) { var nameOfField = customField.Name; var valueOfField = this.Request.Form[nameOfField]; customValuesBuilder += "\"" + nameOfField + "\":" + valueOfField; } customValuesBuilder += "}"; item.CustomValues = customValuesBuilder; } db.Entry(item).State = EntityState.Modified; itemLanguage.Item = item; db.Entry(itemLanguage).State = EntityState.Modified; db.SaveChanges(); return(Redirect("/backend/items")); } }
public void Bootstrap(string connectionString) { using (var db = CMSContextFactory.Create(connectionString)) { //init extendsion var extension = db.Extensions.SingleOrDefault(ext => ext.Namespace == "Components.SingleArticle.SingleArticleComponentController"); if (extension == null) { extension = new Extension() { Id = 1, Namespace = "Components.SingleArticle.SingleArticleComponentController" }; db.Add(extension); } //init 'Single Article' menu type var menuItemType = db.MenuItemTypes.SingleOrDefault(type => type.Id == 1); if (menuItemType == null) { menuItemType = new MenuItemType() { Id = 1, Name = "Single Article", ExtensionId = 1 }; db.Add(menuItemType); } //init menu-item var menuItem = db.MenuItems.SingleOrDefault(item => item.Id == 1); if (menuItem == null) { menuItem = new MenuItem() { Id = 1, Link = "home", MenuItemTypeId = 1, Params = "{ItemId : 1}", // item will be initialized next IsMenu = false, ChildMenuId = 1, //TODO: this should be zero MenuId = 1, IsIndexPage = true, Role = db.Roles.SingleOrDefault(role => role.Name.Equals("Public")) }; db.Add(menuItem); MenuItem_Language menuItem_laguage = new MenuItem_Language() { Id = 1, LanguageId = 1, Label = "Home", MenuItemId = 1 }; db.Add(menuItem_laguage); menuItem_laguage = new MenuItem_Language() { Id = 2, LanguageId = 2, Label = "الرئيسية", MenuItemId = 1 }; db.Add(menuItem_laguage); } //init an item var _item = db.Items.SingleOrDefault(item => item.Id == 1); if (_item == null) { _item = new Item() { Id = 1, CategoryId = 1, Role = db.Roles.SingleOrDefault(role => role.Name.Equals("Public")) }; db.Add(_item); Item_Language _item_language = new Item_Language() { ItemId = 1, LanguageId = 1, Title = "Welcome To LightCMS", ShortContent = "Welcome to LightCMS", FullContent = @"Thank you for using LightCMS, you can access the <strong>Admin Panel</strong> by navigating to <strong>/admin</admin><br>. This is a sample page which was generated automatically by LightCMS." }; db.Add(_item_language); _item_language = new Item_Language() { ItemId = 1, LanguageId = 2, Title = "LightCMS أهلاً بك في ", ShortContent = "LightCMS أهلاً بك في", FullContent = @"نشكر ثقتك بنا.. يمكنك إضافة المزيد باستخدام admin" }; db.Add(_item_language); } db.SaveChanges(); } }