/// <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;
                }
            }
        }
Example #2
0
        /// <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);
                }
            }
        }
Example #3
0
        //Данная функция должна вызываться в рамках транзакции
        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;
                }
            }
        }
Example #5
0
        /// <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);
                }
            }
        }
Example #6
0
        /// <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);
                    }
                }
            }
        }
Example #8
0
        /// <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);
            }
        }
Example #9
0
        /// <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);
            }
        }
Example #11
0
        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);
                }
            }
        }
Example #13
0
        /// <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);
                }
            }
        }
Example #14
0
        /// <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);
                }
            }
        }
Example #15
0
        /// <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);
                }
            }
        }
Example #17
0
        /// <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;
                }
            }
        }
Example #18
0
        /// <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);
            }
        }
Example #19
0
        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);
                }
            }
        }
Example #20
0
        /// <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);
                }
            }
        }
Example #21
0
        /// <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);
                }
            }
        }