コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        /// <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;
                }
            }
        }
コード例 #5
0
        /// <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);
                }
            }
        }
コード例 #6
0
        /// <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;
                }
            }
        }
コード例 #7
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);
                }
            }
        }
コード例 #8
0
        /// <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;
                }
            }
        }
コード例 #9
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;
                }
            }
        }
コード例 #10
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);
                }
            }
        }
コード例 #11
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);
                }
            }
        }
コード例 #12
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);
                }
            }
        }
コード例 #13
0
        /// <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);
            }
        }