/// <summary> /// Обновляем запись /// </summary> /// <param name="upd">раздел</param> /// <returns></returns> public override bool updateSiteSection(SiteSectionModel upd) { try { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { front_page_views cdSiteSection = db.front_page_viewss .Where(p => p.id == upd.Id) .SingleOrDefault(); if (cdSiteSection == null) { throw new Exception("Запись с таким Id не найдена"); } cdSiteSection.c_title = upd.Title; cdSiteSection.c_url = upd.Url; db.Update(cdSiteSection); if (cdSiteSection.f_page_type != upd.Alias) { var cdFontSection = db.front_sections .Where(s => s.c_alias == cdSiteSection.f_page_type); if (cdFontSection == null) { throw new Exception("cmsRepository_SiteSection updateSiteSection: No such frontSection (" + cdSiteSection.f_page_type + ")!"); } var cdFontSectionItem = cdFontSection.SingleOrDefault(); cdFontSectionItem.c_alias = upd.Alias; db.Update(cdFontSectionItem); //Тут должно сработать каскадное изменение во всех таблицах } var log = new LogModel() { Site = _domain, Section = LogSection.SiteSection, Action = LogAction.update, PageId = upd.Id, PageName = upd.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }
public override bool updPhotoAlbum(Guid id, PhotoAlbum upd) { try { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { content_photoalbum cdPhoto = db.content_photoalbums .Where(p => p.id == upd.Id) .SingleOrDefault(); if (cdPhoto == null) { throw new Exception("Запись с таким Id не найдена"); } cdPhoto.c_title = upd.Title; cdPhoto.c_text = upd.Text; cdPhoto.d_date = upd.Date; cdPhoto.c_preview = (upd.PreviewImage == null) ? cdPhoto.c_preview : upd.PreviewImage.Url; db.Update(cdPhoto); var log = new LogModel() { Site = _domain, Section = LogSection.PhotoAlbums, Action = LogAction.update, PageId = upd.Id, PageName = upd.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }
/// <summary> /// Добавляем товар в корзину /// </summary> /// <param name="userId"></param> /// <param name="productId"></param> public bool OrderUpdateProductInCart(Guid userId, Guid productId, int amount) { using (var db = new CMSdb(_context)) { var data = db.cart_cart_items .Where(o => o.f_client == userId) .Where(o => o.f_product == productId); if (data.Any()) { var product = data.Single(); product.n_amount = amount; db.Update(product); return(true); } return(false); } }
/// <summary> /// Изменение модуля или компонента /// </summary> /// <param name="module"></param> /// <returns></returns> public bool SetSiteModuleTemplateDefault(Guid id, Guid templateId) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var data = db.core_site_controllers .Where(s => s.id == id); if (data.Any()) { var cdSiteController = data.SingleOrDefault(); cdSiteController.f_view = templateId; db.Update(cdSiteController); //Логирование #region //var log = new LogModel() //{ // PageId = id, // PageName = module.Title, // Section = LogModule.Modules, // Action = LogAction.update, // Comment = $"Изменен модуль '{module.Title}' ({module.ControllerName})" //}; //InsertLog(log); #endregion tran.Commit(); return true; } return false; } } }
/// <summary> /// Новая запись /// </summary> /// <param name="item"></param> /// <returns></returns> public bool UpdateCartCategory(CartCategoryModel item) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var data = db.cart_categories .Where(s => s.id == item.Id); if (data.Any()) { var category = data.Single(); category.c_name = item.Title; category.c_desc = item.Desc; category.b_disabled = item.Disabled; category.c_icon = item.Icon; category.d_date_create = DateTime.Now; category.c_user_create = _currentUserId.ToString(); db.Update(category); var log = new LogModel() { PageId = item.Id, PageName = item.Title, Section = LogModule.Cart, Action = LogAction.update, Comment = "Изменена категория" }; InsertLog(log); tran.Commit(); return(true); } return(false); } } }
/// <summary> /// Изменения модуля /// </summary> /// <param name="module"></param> /// <returns></returns> public bool UpdateTemplate(TemplateModel template) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var data = db.core_views .Where(s => s.id == template.Id); if (data.Any()) { var cdTemplate = data.SingleOrDefault(); cdTemplate.c_name = template.Title; cdTemplate.c_desc = template.Desc; cdTemplate.c_path = template.ViewPath; cdTemplate.c_img = template.Image; cdTemplate.f_controller = (template.Controller != null) ? template.Controller.Id : Guid.Empty; db.Update(cdTemplate); var log = new LogModel() { PageId = template.Id, PageName = template.Title, Section = LogModule.Templates, Action = LogAction.update }; InsertLog(log); tran.Commit(); return true; }; return false; } } }
/// <summary> /// Обновляет лицевой счёт /// </summary> /// <param name="item"></param> /// <returns></returns> public bool UpdateSubscr(SubscrModel item) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var dbSubscr = db.lk_subscrs .Where(s => s.id == item.Id); if (dbSubscr.Any()) { var subscr = dbSubscr.Single(); subscr.n_subscr = item.Subscr; subscr.b_ee = item.Ee; subscr.c_name = item.Name; subscr.c_inn = item.Inn; subscr.c_kpp = item.Kpp; subscr.c_address = item.Address; subscr.c_post_address = item.PostAddress; subscr.c_contract = item.Contract; subscr.d_contract_date = item.ContractDate; subscr.d_contract_begin = item.Begin; subscr.d_contract_end = item.End; subscr.link = item.Link; if (item.Ee && item.Bank != null) { subscr.c_bank_name = item.Bank.Name; //subscr.c_bank_dep = item.Bank.Dep; subscr.c_bank_bik = item.Bank.Bik; subscr.c_bank_inn = item.Bank.Inn; //subscr.c_bank_ks = item.Bank.Ks; subscr.c_bank_rs = item.Bank.Rs; } db.Update(subscr); if (item.Configs != null) { var configs = new lk_subscr_configs(); var configsData = db.lk_subscr_configs .Where(p => p.f_subscr == item.Id); if (configsData.Any()) { configs = configsData.Single(); configs.c_edo_link = item.Configs.EDO; if (item.Configs.Manager != null) { configs.f_manager = item.Configs.Manager.Id; } db.Update(configs); } else { configs = new lk_subscr_configs() { id = Guid.NewGuid(), f_subscr = item.Id, n_subscr = item.Subscr, c_edo_link = item.Configs.EDO }; if (item.Configs.Manager != null) { configs.f_manager = item.Configs.Manager.Id; } db.Insert(configs); } } var log = new LogModel { PageId = item.Id, PageName = $"{item.Name}", Section = LogModule.Subscrs, Action = LogAction.update }; InsertLog(log); tran.Commit(); return(true); } return(false); } } }
/// <summary> /// Изменение модуля или компонента /// </summary> /// <param name="module"></param> /// <returns></returns> public bool UpdateModule(ModuleModel module) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var data = db.core_controllers .Where(s => s.id == module.Id); if (data.Any()) { var cdController = data.SingleOrDefault(); cdController.c_name = module.Name; cdController.c_controller_name = module.ControllerName; cdController.c_desc = module.Desc; if (module.ParentId.HasValue) { //Поля которые нельзя менять для компонента модуля //cdController.f_parent; //cdController.c_controller_name; cdController.b_be = module.InAdmin; cdController.c_name = module.Name; cdController.c_action_name = module.ActionName; cdController.c_default_view = module.View; //Устанавливаем выбранному шаблону тип модуля #region var cdViewData = db.core_views .Where(v => v.id == module.View); if (!cdViewData.Any()) return false; var cdView = cdViewData.Single(); cdView.f_controller = module.Id; db.Update(cdView); #endregion //Дополнительное логирование #region //Инфо о модуле, которому принадлежит компонент var parentModuleData = db.core_controllers .Where(m => m.id == module.ParentId.Value); if (parentModuleData.Any()) { var parentModule = parentModuleData.Single(); var parentlog = new LogModel() { PageId = parentModule.id, PageName = module.Name, Section = LogModule.Modules, Action = LogAction.insert, Comment = $"Изменен компонент '{module.Name}' ({module.ControllerName}/{module.ActionName})" + " к модулю '{parentModule.c_name}' ({parentModule.c_controller_name})" }; InsertLog(parentlog); } #endregion } db.Update(cdController); //Логирование #region var log = new LogModel() { PageId = module.Id, PageName = module.Name, Section = LogModule.Modules, Action = LogAction.update, Comment = $"Изменен модуль '{module.Name}' ({module.ControllerName})" }; InsertLog(log); #endregion tran.Commit(); return true; } return false; } } }
/// <summary> /// Добавляет модуль или компонент /// </summary> /// <param name="module"></param> /// <returns></returns> public bool InsertModule(ModuleModel module) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var cdModule = new core_controllers() { id = module.Id, c_name = module.Name, c_controller_name = module.ControllerName, c_desc = module.Desc }; //Если это компонент модуля if (module.ParentId.HasValue) { //Инфо о модуле, которому принадлежит компонент var parentModuleData = db.core_controllers .Where(m => m.id == module.ParentId.Value); if (!parentModuleData.Any()) return false; var parentModule = parentModuleData.Single(); cdModule.b_be = module.InAdmin; cdModule.f_parent = module.ParentId; cdModule.c_action_name = module.ActionName; cdModule.c_default_view = module.View; //Устанавливаем выбранному шаблону тип #region var cdViewData = db.core_views .Where(v => v.id == module.View); if (!cdViewData.Any()) return false; var cdView = cdViewData.Single(); cdView.f_controller = module.Id; db.Update(cdView); #endregion //Дополнительное логирование #region var parentlog = new LogModel() { PageId = parentModule.id, PageName = module.Name, Section = LogModule.Modules, Action = LogAction.insert, Comment = $"Добавлен компонент '{module.Name}' ({module.ControllerName}/{module.ActionName})" + " к модулю '{parentModule.c_name}' ({parentModule.c_controller_name})" }; InsertLog(parentlog); #endregion } db.Insert(cdModule); //Логируем #region var log = new LogModel() { PageId = module.Id, PageName = module.Name, Section = LogModule.Modules, Action = LogAction.insert, Comment = $"Добавлен модуль '{module.Name}' ({module.ControllerName})" }; InsertLog(log); #endregion tran.Commit(); return true; } } }
public override bool updateUserClaims(UserClaims claim) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { cms_resolutions cdUserClaim = null; if (claim.UserId == Guid.Empty || claim.ContentId == Guid.Empty) { throw new Exception("updateUserClaims: user or contentId Is Null Or Empty"); } var query = db.cms_resolutionss .Where(u => u.c_user_id == claim.UserId) .Where(u => u.c_menu_id == claim.ContentId); if (!query.Any()) { cdUserClaim = new cms_resolutions() { c_user_id = claim.UserId, c_menu_id = claim.ContentId }; } else { cdUserClaim = query.SingleOrDefault(); } switch (claim.Claim) { case ClaimType.read: cdUserClaim.b_read = claim.Checked; break; case ClaimType.write: cdUserClaim.b_write = claim.Checked; break; case ClaimType.change: cdUserClaim.b_change = claim.Checked; break; case ClaimType.delete: cdUserClaim.b_delete = claim.Checked; break; } if (!query.Any()) { db.Insert(cdUserClaim); } else { db.Update(cdUserClaim); } tran.Commit(); return(true); } } }
/// <summary> /// Изменение прав для группы /// При этом необходимо всем пользователям этой группы поменять в другой таблице (раньше можно было отдельным пользователям давать отдельные права) /// </summary> /// <param name="groupClaim"></param> /// <returns></returns> public override bool updateGroupClaims(GroupClaims groupClaim) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { cms_resolutions_templates cdGroupResolution = null; if (string.IsNullOrEmpty(groupClaim.GroupAlias) || groupClaim.ContentId == Guid.Empty) { throw new Exception("updateGroupClaims: alias or contentId Is Null Or Empty"); } var query = db.cms_resolutions_templatess .Where(t => t.f_menu_id == groupClaim.ContentId) .Where(t => t.f_user_group == groupClaim.GroupAlias); if (!query.Any()) { cdGroupResolution = new cms_resolutions_templates() { f_user_group = groupClaim.GroupAlias, f_menu_id = groupClaim.ContentId } } ; else { cdGroupResolution = query.SingleOrDefault(); } switch (groupClaim.Claim) { case ClaimType.read: cdGroupResolution.b_read = groupClaim.Checked; break; case ClaimType.write: cdGroupResolution.b_write = groupClaim.Checked; break; case ClaimType.change: cdGroupResolution.b_change = groupClaim.Checked; break; case ClaimType.delete: cdGroupResolution.b_delete = groupClaim.Checked; break; default: return(false); } if (!query.Any()) { db.Insert(cdGroupResolution); } else { db.Update(cdGroupResolution); } //Права пользователей группы var groupUsers = db.cms_userss .Where(p => p.f_group != null) .Where(p => p.f_group == groupClaim.GroupAlias); if (groupUsers.Any()) { foreach (var user in groupUsers.ToArray()) { var userClaims = new UserClaims() { UserId = user.id, ContentId = groupClaim.ContentId, Claim = groupClaim.Claim, Checked = groupClaim.Checked }; updateUserClaims(userClaims); } } tran.Commit(); return(true); } } }
/// <summary> /// Изменение группы, только название группе меняем /// </summary> /// <param name="claim"></param> /// <returns></returns> public override bool updateGroup(GroupModel group) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var getGroup = db.cms_users_groups. Where(g => g.c_alias.ToLower() == group.Alias.ToLower()); if (getGroup.Any()) { var cdGroup = getGroup.SingleOrDefault(); cdGroup.c_title = group.GroupName; db.Update(cdGroup); var log = new LogModel() { Site = _domain, Section = LogSection.UserGroup, Action = LogAction.update, PageId = cdGroup.id, PageName = group.GroupName, UserId = _currentUserId, IP = _ip, }; insertLog(log); } else { var cdGroup = new cms_users_group() { id = Guid.NewGuid(), c_alias = group.Alias, c_title = group.GroupName }; db.Insert(cdGroup); //insert claims var templates = db.cms_menus.Select(p => p.id); if (templates != null) { foreach (var template in templates.ToArray()) { var claims = new cms_resolutions_templates() { f_menu_id = template, f_user_group = group.Alias, b_read = false, b_write = false, b_change = false, b_delete = false, }; db.Insert(claims); } } var log = new LogModel() { Site = _domain, Section = LogSection.UserGroup, Action = LogAction.insert, PageId = cdGroup.id, PageName = group.GroupName, UserId = _currentUserId, IP = _ip, }; insertLog(log); } tran.Commit(); return(true); } } }
/// <summary> /// Обновляем запись /// </summary> /// <param name="material">Новость</param> /// <returns></returns> public override bool updateCmsMaterial(MaterialsModel material) { try { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { content_materials cdMaterial = db.content_materialss .Where(p => p.id == material.Id) .SingleOrDefault(); if (cdMaterial == null) { throw new Exception("Запись с таким Id не найдена"); } cdMaterial.c_title = material.Title; cdMaterial.c_alias = material.Alias; cdMaterial.c_text = material.Text; cdMaterial.d_date = material.Date; if (material.PreviewImage != null) { cdMaterial.c_preview = material.PreviewImage.Url; } else { cdMaterial.c_preview = null; } cdMaterial.c_url = material.Url; cdMaterial.c_url_name = material.UrlName; cdMaterial.c_desc = material.Desc; cdMaterial.c_keyw = material.Keyw; cdMaterial.b_important = material.Important; cdMaterial.b_disabled = material.Disabled; cdMaterial.n_day = material.Date.Day; cdMaterial.n_month = material.Date.Month; cdMaterial.n_year = material.Date.Year; db.Update(cdMaterial); db_updateMaterialGroups(db, material.Id, material.GroupsId); var log = new LogModel() { Site = _domain, Section = LogSection.Materials, Action = LogAction.update, PageId = material.Id, PageName = material.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }