/// <summary> /// Прикрепляет изображения к альбому /// </summary> /// <returns></returns> public void InsertPhotos(Guid album, IEnumerable <PhotoModel> photos) { using (var db = new CMSdb(_context)) { using (var tr = db.BeginTransaction()) { List <core_photos> list = new List <core_photos>(); foreach (var p in photos) { list.Add(new core_photos { id = Guid.NewGuid(), f_album = album, c_title = p.Title, d_date = p.Date, c_url = p.Url, c_preview = p.Preview, n_sort = p.Sort }); } db.BulkCopy(list); string albumTitle = db.core_photo_albums .Where(w => w.id == album) .Select(s => s.c_title) .SingleOrDefault(); var log = new LogModel { PageId = album, PageName = albumTitle, Section = LogModule.PhotoAlbums, Action = LogAction.update }; InsertLog(log); tr.Commit(); } } }
/// <summary> /// Прикрепляет лицевые счета к пользователю /// </summary> /// <param name="user"></param> /// <param name="subscrs"></param> /// <returns></returns> public bool AddUserSubscr(Guid user, Guid[] subscrs) { using (var db = new CMSdb(_context)) { using (var tr = db.BeginTransaction()) { try { var listExistsSubscrs = db.lk_user_subscrs .Where(w => w.f_user == user) .Select(s => new { s.f_subscr, s.b_default }) .ToArray(); List <lk_user_subscrs> list = new List <lk_user_subscrs>(); int count = 0; foreach (var subscr in subscrs) { if (!listExistsSubscrs.Select(s => s.f_subscr).Contains(subscr)) { list.Add(new lk_user_subscrs { f_user = user, f_subscr = subscr, d_attached = DateTime.Now, b_default = !listExistsSubscrs.Any(a => a.b_default) && count == 0 }); count++; } } db.BulkCopy(list); tr.Commit(); return(true); } catch { return(false); } } } }
/// <summary> /// процесс голосования /// </summary> /// <param name="VoteId"></param> /// <param name="Answer"> массив идентификаторов вариантов ответом</param> /// <returns></returns> public bool ActionVote(Guid VoteId, string[] Answer) { using (var db = new CMSdb(_context)) { List <vote_stat_answer> list = new List <vote_stat_answer>(); foreach (var item in Answer) { list.Add(new vote_stat_answer { f_answer = Guid.Parse(item), f_vote = VoteId, d_date = DateTime.Now, f_user = _currentUserId }); } using (var tr = db.BeginTransaction()) { db.BulkCopy(list); tr.Commit(); return(true); } } }
/// <summary> /// Добавляет эл-т карты сайта /// </summary> /// <param name=""></param> /// <returns></returns> public bool InsertPage(PageModel page) { using (var db = new CMSdb(_context)) { using (var tr = db.BeginTransaction()) { var log = new LogModel { PageId = page.Id, PageName = page.Name, Section = LogModule.Pages, Action = LogAction.insert }; InsertLog(log); var maxSort = db.core_pages .Where(w => w.f_site == _siteId) .Where(w => w.pgid == page.ParentId); int sort = maxSort.Any() ? maxSort.Select(s => s.n_sort).Max() + 1 : 1; bool result = db.core_pages.Insert(() => new core_pages { gid = page.Id, c_name = page.Name, pgid = page.ParentId, c_path = page.Path, c_alias = page.Alias, c_text = page.Text, c_url = page.Url, n_sort = sort, f_site = _siteId, b_disabled = page.IsDisabled, c_keyw = page.Keywords, c_desc = page.Desc, c_fa_icon = page.FaIcon, f_sites_controller = page.ControllerPage }) > 0; // группы меню if (page.MenuGroups != null) { List <core_page_group_links> groups = new List <core_page_group_links>(); foreach (var g in page.MenuGroups) { var _q = db.core_page_group_links.Where(w => w.f_page_group == g).Select(s => s.n_sort); int _sort = _q.Any() ? _q.Max() : 0; _sort++; groups.Add(new core_page_group_links { id = Guid.NewGuid(), f_page = page.Id, f_page_group = g, n_sort = _sort }); } db.BulkCopy(groups); } tr.Commit(); return(result); } } }