/// <summary> /// Добавление Модуля сайту /// </summary> /// <param name="siteId"></param> /// <param name="moduleId"></param> /// <returns></returns> public bool InsertSiteModuleLink(Guid siteId, Guid moduleId) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var data = db.core_site_controllers .Where(s => s.f_site == siteId) .Where(s => s.f_controller == moduleId); if (!data.Any()) { var cdSiteModule = new core_site_controllers() { id = Guid.NewGuid(), f_site = siteId, f_controller = moduleId }; db.Insert(cdSiteModule); //Переносим компоненты модуля var cdSiteModuleParts = db.core_controllers .Where(p => p.f_parent == moduleId) .Select(p => new core_site_controllers() { id = Guid.NewGuid(), f_site = siteId, f_controller = p.id }); if(cdSiteModuleParts.Any()) foreach(var modulePart in cdSiteModuleParts.ToArray()) { db.Insert(modulePart); } //Доп инфа для логирования var module = db.core_controllers .Where(m => m.id == moduleId) .Single(); var log = new LogModel() { PageId = siteId, PageName = module.c_name, Section = LogModule.Sites, Action = LogAction.update, Comment = "Сайту включен модуль " + module.c_controller_name + "/" + module.c_action_name }; InsertLog(log); tran.Commit(); return true; } return false; } } }
/// <summary> /// Дублируем пользователя на др. сайт /// </summary> /// <param name="userId"></param> /// <param name="siteId"></param> /// <returns></returns> public bool DublicateUser(Guid newId, Guid userId, Guid siteId) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var dbUser = db.core_AspNetUsers .Where(s => s.Id == userId.ToString()) .SingleOrDefault(); if (dbUser != null) { //Аккаунт dbUser.Id = newId.ToString(); dbUser.UserName = newId.ToString(); dbUser.UserId = newId; dbUser.SiteId = siteId; db.Insert(dbUser); //Данные var dbUserProfile = db.core_AspNetUserProfiles .Where(s => s.UserId == userId.ToString()) .SingleOrDefault(); if (dbUserProfile == null) { return(false); } dbUserProfile.UserId = newId.ToString(); db.Insert(dbUserProfile); tran.Commit(); return(true); } //log //var log = new LogModel //{ // PageId = Guid.NewGuid, // PageName = "", // Section = LogModule.Users, // Action = LogAction.update, // Comment = "Изменена связь пользователя с сайтами" //}; //InsertLog(log); return(false); } } }
//Данная функция должна вызываться в рамках транзакции private void db_updateMaterialGroups(CMSdb db, Guid materialId, Guid[] groups) { //Удаляем привязанные группы db.content_materials_groups_links .Where(w => w.f_material == materialId) .Delete(); // привязываем новые группы if (groups != null) { foreach (var group in groups) { if (group != Guid.Empty) { var materialGroup = new content_materials_groups_link { id = Guid.NewGuid(), f_material = materialId, f_group = group }; db.Insert(materialGroup); } } } }
/// <summary> /// Добавляет запись о шаблоне /// </summary> /// <param name="template"></param> /// <returns></returns> public bool InsertTemplate(TemplateModel template) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var cdTemplate = new core_views() { id = template.Id, c_name = template.Title, c_desc = template.Desc, c_path = template.ViewPath, c_img = template.Image, f_controller = Guid.Empty }; db.Insert(cdTemplate); var log = new LogModel() { PageId = Guid.NewGuid(), PageName = template.Title, Section = LogModule.Templates, Action = LogAction.insert }; InsertLog(log); tran.Commit(); return true; } } }
/// <summary> /// Изменение прав у роли /// </summary> /// <param name="roleClaim"></param> /// <returns></returns> public bool UpdateRoleClaim(RoleClaimModel roleClaim) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var dbRoleclaim = db.core_AspNetRoleClaims .Where(s => s.RoleId == roleClaim.RoleId.ToString()) .Where(s => s.ClaimType == roleClaim.Type) .Where(s => s.ClaimValue == roleClaim.Value); if (roleClaim.Checked) { if (!dbRoleclaim.Any()) { //insert var newRoleClaim = new core_AspNetRoleClaims() { RoleId = roleClaim.RoleId.ToString(), ClaimType = roleClaim.Type, ClaimValue = roleClaim.Value }; db.Insert(newRoleClaim); //log //var log = new LogModel //{ // PageId = Guid.NewGuid, // PageName = "", // Section = LogModule.Users, // Action = LogAction.update, // Comment = "Изменена связь пользователя с сайтами" //}; //InsertLog(log); tran.Commit(); return(true); } } else { if (dbRoleclaim.Any()) { //delete var roleClaimData = dbRoleclaim.Single(); db.Delete(roleClaimData); //log tran.Commit(); return(true); } } return(false); } } }
/// <summary> /// Добавляем товар в корзину /// </summary> /// <param name="userId"></param> /// <param name="productId"></param> public bool OrderAddProductToCart(Guid userId, Guid productId) { 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 = new cart_cart_items() { id = Guid.NewGuid(), f_site = _siteId, f_client = userId, f_product = productId, n_amount = 1, date = DateTime.Now }; db.Insert(product); return(true); } return(false); } }
/// <summary> /// Обновляет список категорий для продукта /// </summary> /// <param name="db"></param> /// <param name="prodId"></param> /// <param name="cats"></param> private void dbUpdateProductCategories(CMSdb db, Guid prodId, Guid[] cats) { // удаляем старые категории db.content_product_categories_linkss .Where(w => w.f_product.Equals(prodId)) .Delete(); // привязываем новые категории if (cats != null) { foreach (var cat in cats) { if (!cat.Equals(Guid.Empty)) { var prodCategory = new content_product_categories_links { f_product = prodId, f_category = cat }; db.Insert(prodCategory); } } } }
/// <summary> /// Прикрепление пользователям доступных сайтов /// </summary> /// <param name="data"></param> /// <returns></returns> public override bool updateUserSiteLinks(ContentLinkModel data) { try { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var getSite = db.cms_sitess.Where(s => s.id == data.LinkId); var alias = getSite.SingleOrDefault().c_alias; //Если существует var linkExist = db.cms_user_site_links .Where(l => l.f_user == data.ObjctId) .Where(l => l.f_site == alias); if (linkExist.Any()) { if (!data.Checked) { linkExist.Delete(); } } else { if (data.Checked) { var cdUserSiteLink = new cms_user_site_link() { id = Guid.NewGuid(), f_user = data.ObjctId, f_site = alias }; db.Insert(cdUserSiteLink); } } var log = new LogModel() { Site = _domain, Section = LogSection.Users, Action = LogAction.change_resolutions, PageId = data.ObjctId, PageName = alias, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }
/// <summary> /// update news /// </summary> /// <param name="news"></param> /// <returns></returns> public bool UpdateNews(NewsModel news) { using (var db = new CMSdb(_context)) { using (var tr = db.BeginTransaction()) { var q = db.core_materials.Where(w => w.gid == news.Guid && w.f_site == _siteId); if (q.Any()) { InsertLog(new LogModel { PageId = news.Guid, PageName = news.Title, Section = LogModule.News, Action = LogAction.update }); var thisnews = q.Single(); bool result = q.Set(s => s.c_title, news.Title) .Set(s => s.c_text, news.Text) .Set(s => s.c_alias, news.Alias) .Set(s => s.d_date, news.Date) .Set(s => s.c_photo, news.Photo) .Set(s => s.c_keyw, news.Keyw) .Set(s => s.c_desc, news.Desc) .Set(s => s.c_source_name, news.SourceName) .Set(s => s.c_source_url, news.SourceUrl) .Set(s => s.b_disabled, news.Disabled) .Set(s => s.b_important, news.Important) .Update() > 0; //удаляем все привязки к категориям db.core_material_category_link.Where(w => w.f_materials == thisnews.gid).Delete(); //добавляем категории if (news.CategoryId != null) { foreach (var cat in news.CategoryId) { db.Insert(new core_material_category_link { id = Guid.NewGuid(), f_materials = news.Guid, f_materials_category = cat }); } } tr.Commit(); return(result); } return(false); } } }
public override bool insPhotoAlbum(Guid id, PhotoAlbum ins) { try { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { content_photoalbum cdPhotoAlbum = db.content_photoalbums .Where(p => p.id == ins.Id) .SingleOrDefault(); if (cdPhotoAlbum != null) { throw new Exception("Запись с таким Id уже существует"); } cdPhotoAlbum = new content_photoalbum { id = ins.Id, f_site = _domain, c_path = ins.Path, c_title = ins.Title, c_text = ins.Text, d_date = ins.Date, c_preview = (ins.PreviewImage != null) ? ins.PreviewImage.Url : null }; db.Insert(cdPhotoAlbum); var log = new LogModel() { Site = _domain, Section = LogSection.PhotoAlbums, Action = LogAction.insert, PageId = ins.Id, PageName = ins.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }
public bool InsertNews(NewsModel news) { using (var db = new CMSdb(_context)) { using (var tr = db.BeginTransaction()) { InsertLog(new LogModel { PageId = news.Guid, PageName = news.Title, Section = LogModule.News, Action = LogAction.insert }); db.core_materials .Insert( () => new core_materials { gid = news.Guid, c_title = news.Title, d_date = news.Date, c_alias = news.Alias, c_photo = news.Photo, c_source_name = news.SourceName, c_source_url = news.SourceUrl, c_desc = news.Desc, c_keyw = news.Keyw, b_disabled = news.Disabled, b_important = news.Important, f_site = _siteId }); if (news.CategoryId != null) { foreach (var cat in news.CategoryId) { db.Insert(new core_material_category_link { id = Guid.NewGuid(), f_materials = news.Guid, f_materials_category = cat }); } } tr.Commit(); return(true); } } }
/// <summary> /// Новая запись /// </summary> /// <param name="item"></param> /// <returns></returns> public bool InsertCartCategory(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 newCategory = new cart_categories() { id = item.Id, f_site = _siteId, c_name = item.Title, c_desc = item.Desc, b_disabled = item.Disabled, c_icon = item.Icon, d_date_create = DateTime.Now, c_user_create = _currentUserId.ToString() }; db.Insert(newCategory); var log = new LogModel() { PageId = item.Id, PageName = item.Title, Section = LogModule.Cart, Action = LogAction.insert, Comment = "Добавлена новая категория" }; 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="item"></param> /// <returns></returns> public bool InsertSubscr(SubscrModel item) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { var dbSubscr = db.lk_subscrs .Where(s => s.id == item.Id || s.n_subscr == item.Subscr); if (!dbSubscr.Any()) { var subscr = new lk_subscrs() { id = item.Id, n_subscr = item.Subscr, b_ee = item.Ee, c_address = item.Address, c_post_address = item.PostAddress, c_contract = item.Contract, d_contract_date = item.ContractDate, d_contract_begin = item.Begin, d_contract_end = item.End, link = item.Link }; subscr.c_name = item.Name; if (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.Insert(subscr); if (item.Configs != null) { var 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.insert }; InsertLog(log); tran.Commit(); return(true); } return(false); } } }
/// <summary> /// Оформление заказа /// </summary> /// <param name="order"></param> /// <returns></returns> public bool SendOrder(OrderModel order) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { //Получаем данные о товарах в корзине и количестве var query = db.cart_cart_items .Where(c => c.f_client == order.Id) .Where(c => !c.fkitemsproduct.b_disabled); var list = query .Select(s => new OrderedItemModel { Id = s.id, Number = s.fkitemsproduct.n_product, Title = s.fkitemsproduct.c_title, Desc = s.fkitemsproduct.c_desc, PriceInfo = s.fkitemsproduct.c_price, Price = s.fkitemsproduct.n_price, Amount = s.n_amount }).ToArray(); //Записываем в таблицу заказов var newOrderId = Guid.NewGuid(); var newOrderDate = DateTime.Now; var newOrder = new cart_orders() { id = newOrderId, d_date = newOrderDate, f_site = _siteId, f_client = order.UserId, c_client_phone = order.UserPhone, c_client_email = order.UserEmail, c_client_address = order.UserAddress, c_note = order.Note, f_status = (int)OrderStatus.Processing, f_delivery = (int)order.DeliveryType, f_acquiring = (int)order.AcquiringType, b_payed = order.Payed }; db.Insert(newOrder); foreach (var item in list) { var newOrderProduct = new cart_orders_items() { id = Guid.NewGuid(), f_order = newOrderId, f_product = item.Id, c_product = $"{item.Title} {item.PriceInfo}", n_price = item.Price, n_amount = item.Amount, n_total_sum = item.AmountSum }; db.Insert(newOrderProduct); } //Очищаем корзину db.cart_cart_items .Where(s => s.f_client == order.UserId) .Where(s => s.f_site == _siteId) .Delete(); tran.Commit(); return(true); } } }
/// <summary> /// Добавляем запись /// </summary> /// <param name="sitesection">Раздел</param> /// <returns></returns> public override bool insertSiteSection(SiteSectionModel sitesection) { using (var db = new CMSdb(_context)) { using (var tran = db.BeginTransaction()) { front_page_views cdSiteSection = db.front_page_viewss .Where(p => p.id == sitesection.Id) .SingleOrDefault(); if (cdSiteSection != null) { throw new Exception("Запись с таким Id уже существует"); } cdSiteSection = new front_page_views { f_site = sitesection.SiteId, id = sitesection.Id, c_title = sitesection.Title, f_page_type = sitesection.Alias, c_url = sitesection.Url }; db.Insert(cdSiteSection); front_section cdSection = new front_section { id = Guid.NewGuid(), c_name = sitesection.Title, c_alias = sitesection.Alias, c_default_view = sitesection.Id }; db.Insert(cdSection); //сделаем этот шаблон для всех существующих сайтов var allsites = db.cms_sitess.Select(s => s.c_alias).ToArray(); foreach (var siteId in allsites) { db.front_site_sections .Value(v => v.f_site, siteId) .Value(v => v.f_front_section, sitesection.Alias) .Value(v => v.f_page_view, sitesection.Id) .Insert(); } var log = new LogModel() { Site = _domain, Section = LogSection.SiteSection, Action = LogAction.insert, PageId = sitesection.Id, PageName = sitesection.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } }
/// <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; } } }
/// <summary> /// Добавляем запись /// </summary> /// <param name="material">Новость</param> /// <returns></returns> public override bool insertCmsMaterial(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 = new content_materials { id = material.Id, c_title = material.Title, c_alias = material.Alias, c_text = material.Text, d_date = material.Date, c_preview = (material.PreviewImage != null) ? material.PreviewImage.Url : null, c_url = material.Url, c_url_name = material.UrlName, c_desc = material.Desc, c_keyw = material.Keyw, b_important = material.Important, b_disabled = material.Disabled, n_day = material.Date.Day, n_month = material.Date.Month, n_year = material.Date.Year }; db.Insert(cdMaterial); db_updateMaterialGroups(db, material.Id, material.GroupsId); var log = new LogModel() { Site = _domain, Section = LogSection.Materials, Action = LogAction.insert, PageId = material.Id, PageName = material.Title, UserId = _currentUserId, IP = _ip, }; insertLog(log); tran.Commit(); return(true); } } } catch { return(false); } }
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); } } }