Пример #1
0
        /// <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();
                }
            }
        }
Пример #2
0
        /// <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);
                    }
                }
            }
        }
Пример #3
0
        /// <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);
                }
            }
        }
Пример #4
0
        /// <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);
                }
            }
        }