Beispiel #1
0
        public static void AddStoreReview(StoreReview storeReview)
        {
            ModulesRepository.ModuleExecuteNonQuery(
                "INSERT INTO [Module].[StoreReview] ([ParentID],[Rate],[Review],[ReviewerEmail],[ReviewerName],[DateAdded],[Moderated]) VALUES (@ParentID,@Rate,@Review,@ReviewerEmail,@ReviewerName,GETDATE(),@Moderated)",
                CommandType.Text,
                new SqlParameter("@ParentID", storeReview.ParentId == 0 ? DBNull.Value : (object)storeReview.ParentId),
                new SqlParameter("@Rate", storeReview.Rate),
                new SqlParameter("@Review", storeReview.Review),
                new SqlParameter("@ReviewerEmail", storeReview.ReviewerEmail),
                new SqlParameter("@ReviewerName", storeReview.ReviewerName),
                new SqlParameter("@Moderated", storeReview.Moderated));

            if (ModuleSettingsProvider.GetSettingValue <bool>("EnableSendMails", "StoreReviews"))
            {
                var message = ModuleSettingsProvider.GetSettingValue <string>("Format", "StoreReviews");
                message = message.Replace("#NAME#", storeReview.ReviewerName);
                message = message.Replace("#EMAIL#", storeReview.ReviewerEmail);
                message = message.Replace("#REVIEW#", storeReview.Review);

                ModulesService.SendModuleMail(
                    ModuleSettingsProvider.GetSettingValue <string>("Subject", "StoreReviews"),
                    message,
                    ModuleSettingsProvider.GetSettingValue <string>("Email", "StoreReviews"),
                    true);
            }
        }
        public static void Delete(int id)
        {
            ModulesRepository.ModuleExecuteNonQuery("Delete From [Module].[" + ModuleName + "] Where Id=@Id",
                                                    CommandType.Text, new SqlParameter("@Id", id));

            CacheManager.RemoveByPattern(CacheKey);
        }
Beispiel #3
0
        public static bool InstallStoreReviewsModule()
        {
            if (!ModulesRepository.IsExistsModuleTable("Module", "StoreReview"))
            {
                ModulesRepository.ModuleExecuteNonQuery(
                    @"CREATE TABLE Module.StoreReview
                    (  ID int NOT NULL IDENTITY (1, 1),
	                        ParentID int NULL,
	                        ReviewerEmail nvarchar(50) NOT NULL,
                            ReviewerName nvarchar(100) NOT NULL,
	                        Review nvarchar(MAX) NOT NULL,
	                        DateAdded datetime NOT NULL,
                            Moderated bit NOT NULL,
	                        Rate int NULL
	                        )  ON [PRIMARY]
	                            TEXTIMAGE_ON [PRIMARY]                                        
                        ALTER TABLE Module.StoreReview ADD CONSTRAINT
	                        PK_StoreReview PRIMARY KEY CLUSTERED 
	                        (
	                        ID
	                        ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]                                        
                        ALTER TABLE Module.StoreReview SET (LOCK_ESCALATION = TABLE)
                        SET IDENTITY_INSERT Module.StoreReview ON",
                    CommandType.Text);
            }
            ModuleSettingsProvider.SetSettingValue("PageSize", "20", "StoreReviews");
            return(ModulesRepository.IsExistsModuleTable("Module", "StoreReview"));
        }
Beispiel #4
0
 public static void DeleteExpiredLetters()
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Delete From [Module].[AbandonedCartLetter] Where SendingDate < @SendingDate",
         CommandType.Text,
         new SqlParameter("@SendingDate", DateTime.Now.AddMonths(-48)));
 }
Beispiel #5
0
 public static void DeleteStoreReviewsById(int id)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "DELETE FROM [Module].[StoreReview] WHERE [ID] = @ID",
         CommandType.Text,
         new SqlParameter("@ID", id));
 }
Beispiel #6
0
 public static void AddOrder(YaOrder order)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Insert Into Module.YaMarketOrder (MarketOrderId,OrderId,Status) VALUES (@MarketOrderId, @OrderId, @Status)", CommandType.Text,
         new SqlParameter("@MarketOrderId", order.MarketOrderId),
         new SqlParameter("@OrderId", order.OrderId),
         new SqlParameter("@Status", order.Status ?? string.Empty));
 }
Beispiel #7
0
 public static void UpdateOrder(YaOrder order)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Update Module.YaMarketOrder Set Status=@Status Where MarketOrderId=@MarketOrderId and OrderId=@OrderId", CommandType.Text,
         new SqlParameter("@MarketOrderId", order.MarketOrderId),
         new SqlParameter("@OrderId", order.OrderId),
         new SqlParameter("@Status", order.Status ?? string.Empty));
 }
Beispiel #8
0
        public static bool UninstallStoreReviewsModule()
        {
            if (ModulesRepository.IsExistsModuleTable("Module", "StoreReview"))
            {
                ModulesRepository.ModuleExecuteNonQuery(@"DROP TABLE Module.StoreReview", CommandType.Text);
            }

            return(ModulesRepository.IsExistsModuleTable("Module", "StoreReview"));
        }
        public static bool UpdateBuyInTimeModule()
        {
            ModulesRepository.ModuleExecuteNonQuery(
                @"IF NOT EXISTS(SELECT * FROM sys.columns WHERE [name] = N'SortOrder' AND [object_id] = OBJECT_ID(N'Module.BuyInTime'))
                BEGIN
	                ALTER TABLE Module.BuyInTime ADD SortOrder int NOT NULL DEFAULT(0)
                END", CommandType.Text);

            return(true);
        }
Beispiel #10
0
 public static void LogLetter(AbandonedCartLetter letter)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Insert Into [Module].[AbandonedCartLetter] (TemplateId,CustomerId,SendingDate,Email) Values(@TemplateId,@CustomerId,@SendingDate,@Email)",
         CommandType.Text,
         new SqlParameter("@TemplateId", letter.TemplateId),
         new SqlParameter("@CustomerId", letter.CustomerId),
         new SqlParameter("@Email", letter.Email),
         new SqlParameter("@SendingDate", letter.SendingDate));
 }
Beispiel #11
0
 public static void AddShipping(YaMarketShipping shipping)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "INSERT INTO [Module].[YaMarketShippings] ([ShippingMethodId],[Type],[MinDate],[MaxDate]) VALUES(@ShippingMethodId,@Type,@MinDate,@MaxDate)",
         CommandType.Text,
         new SqlParameter("@ShippingMethodId", shipping.ShippingMethodId),
         new SqlParameter("@Type", shipping.Type),
         new SqlParameter("@MinDate", shipping.MinDate),
         new SqlParameter("@MaxDate", shipping.MaxDate));
 }
        public static void UpdatePicture(int actionId, string picture)
        {
            ModulesRepository.ModuleExecuteNonQuery(
                "Update [Module].[" + ModuleName + "] Set Picture=@Picture Where Id=@Id",
                CommandType.Text,
                new SqlParameter("@Id", actionId),
                new SqlParameter("@Picture", picture ?? (object)DBNull.Value));

            CacheManager.RemoveByPattern(CacheKey);
        }
Beispiel #13
0
 public static void AddTemplate(AbandonedCartTemplate template)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Insert Into [Module].[AbandonedCartTemplate] (Name,Subject,Body,SendingTime,Active) Values(@Name,@Subject,@Body,@SendingTime,@Active)",
         CommandType.Text,
         new SqlParameter("@Name", template.Name),
         new SqlParameter("@Subject", template.Subject),
         new SqlParameter("@Body", template.Body),
         new SqlParameter("@SendingTime", template.SendingTime),
         new SqlParameter("@Active", template.Active));
 }
Beispiel #14
0
        public static bool InstallModule()
        {
            ModulesRepository.ModuleExecuteNonQuery(
                "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Module.YaMarketShippings') AND type in (N'U'))" +
                "Begin " +
                @"CREATE TABLE Module.YaMarketShippings
	                (
	                Id int NOT NULL IDENTITY (1, 1),
	                ShippingMethodId int NOT NULL,
	                Type nvarchar(25) NOT NULL,
	                MinDate int NOT NULL,
	                MaxDate int NOT NULL
	                )  ON [PRIMARY]

                ALTER TABLE Module.YaMarketShippings ADD CONSTRAINT
	                PK_YaMarketShippings PRIMARY KEY CLUSTERED 
	                (Id) WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

                ALTER TABLE Module.YaMarketShippings ADD CONSTRAINT
	                FK_YaMarketShippings_ShippingMethod FOREIGN KEY (ShippingMethodId) REFERENCES [Order].ShippingMethod
	                (ShippingMethodID) ON UPDATE  NO ACTION 
	                 ON DELETE  CASCADE  "     +
                "End",
                CommandType.Text);

            ModulesRepository.ModuleExecuteNonQuery(
                "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Module.YaMarketOrder') AND type in (N'U'))" +
                "Begin " +
                @"CREATE TABLE Module.YaMarketOrder
                    (
                    MarketOrderId int NOT NULL,
                    OrderId int NOT NULL,
                    Status [nvarchar](max) NOT NULL
                    )  ON [PRIMARY] " +
                "End",
                CommandType.Text);

            YaMarketBuyingSettings.AuthToken = "";
            YaMarketBuyingSettings.Payments  = "";
            YaMarketBuyingSettings.Outlets   = "";

            YaMarketBuyingSettings.AuthClientId      = "";
            YaMarketBuyingSettings.AuthTokenToMarket = "";
            YaMarketBuyingSettings.Login             = "";
            YaMarketBuyingSettings.CampaignId        = "";

            YaMarketBuyingSettings.UpaidStatusId      = 0;
            YaMarketBuyingSettings.ProcessingStatusId = 0;
            YaMarketBuyingSettings.DeliveryStatusId   = 0;
            YaMarketBuyingSettings.DeliveredStatusId  = 0;

            return(true);
        }
Beispiel #15
0
 public static void UpdateTemplate(AbandonedCartTemplate template)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Update [Module].[AbandonedCartTemplate] Set Name = @Name, Subject = @Subject,Body = @Body,SendingTime = @SendingTime, Active = @Active Where Id=@Id",
         CommandType.Text,
         new SqlParameter("@Name", template.Name),
         new SqlParameter("@Subject", template.Subject),
         new SqlParameter("@Body", template.Body),
         new SqlParameter("@SendingTime", template.SendingTime),
         new SqlParameter("@Active", template.Active),
         new SqlParameter("@Id", template.Id));
 }
Beispiel #16
0
 public static void UpdateStoreReview(StoreReview storeReview)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "UPDATE [Module].[StoreReview] SET [ParentID]=@ParentID,[Rate]=@Rate,[Review]=@Review,[ReviewerEmail]=@ReviewerEmail,[ReviewerName]=@ReviewerName, [Moderated]=@Moderated, [DateAdded]=@DateAdded WHERE [ID]=@ID",
         CommandType.Text,
         new SqlParameter("@ID", storeReview.Id),
         new SqlParameter("@ParentID", storeReview.ParentId == 0 ? DBNull.Value : (object)storeReview.ParentId),
         new SqlParameter("@Rate", storeReview.Rate),
         new SqlParameter("@Review", storeReview.Review),
         new SqlParameter("@ReviewerEmail", storeReview.ReviewerEmail),
         new SqlParameter("@ReviewerName", storeReview.ReviewerName),
         new SqlParameter("@Moderated", storeReview.Moderated),
         new SqlParameter("@DateAdded", storeReview.DateAdded));
 }
Beispiel #17
0
        public static bool InstallModule()
        {
            ModulesRepository.ModuleExecuteNonQuery(
                "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Module.AbandonedCartTemplate') AND type in (N'U'))" +
                @"Begin
                    CREATE TABLE Module.AbandonedCartTemplate
	                    (
	                    Id int NOT NULL IDENTITY (1, 1),
	                    Name nvarchar(MAX) NOT NULL,
                        Subject nvarchar(MAX) NOT NULL,
	                    Body nvarchar(MAX) NOT NULL,
                        SendingTime int NOT NULL,
                        Active bit NOT NULL
	                    )  ON [PRIMARY]                    
                End",
                CommandType.Text);

            ModulesRepository.ModuleExecuteNonQuery(
                "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Module.AbandonedCartLetter') AND type in (N'U'))" +
                @"Begin 
                 CREATE TABLE Module.AbandonedCartLetter(
	                [Id] [int] IDENTITY(1,1) NOT NULL,
	                [TemplateId] [int] NOT NULL,
	                [CustomerId] [uniqueidentifier] NOT NULL,
	                [SendingDate] [datetime] NOT NULL,
                    [Email] nvarchar(max) NULL,
                   CONSTRAINT [PK_AbandonedCartLetter] PRIMARY KEY CLUSTERED ([Id] ASC)
                 ) ON [PRIMARY]
                End",
                CommandType.Text);

            ModulesRepository.ModuleExecuteNonQuery(
                @"IF ((Select Count(*) From Module.AbandonedCartTemplate) = 0) 
                Begin  
                    Insert Into Module.AbandonedCartTemplate (Name,Subject,Body,SendingTime,Active)  
                    Values ('Первое письмо', 'Мы обнаружили, что Вы не завершили свой заказ на сайте #SHOPNAME#', '<p>Здравствуйте, уважаемый клиент!</p>    <p>Мы обратили внимание, что Вы начинали оформлять заказ на сайте <a href=""#SHOPURL#"">#SHOPNAME#</a>, но не завершили его.</p>    <p>Цена на товар, который Вы положили в корзину, снизилась и теперь Вы можете оформить заказ по выгодной цене:</p>    <p>#PRODUCTS#</p>    <p>Для того, чтобы закончить <strong>заказ со скидкой</strong>, нажмите <a href=""#BASKETURL#""\><strong>Оформить заказ</strong></a></p>    <p>Приятных покупок!</p>    <p>Наш магазин работает круглосуточно, без выходных. Если у вас появились вопросы, свяжитесь с нами по телефону: 8 (8888) 88-88-88</p> ', 1, 0)  
                End",
                CommandType.Text);

            ModulesRepository.ModuleExecuteNonQuery("DELETE FROM Catalog.ShoppingCart WHERE CreatedOn<@olderThan", CommandType.Text,
                                                    new SqlParameter("@olderThan", DateTime.Now.AddMonths(-2)));

            return(true);
        }
        public static void Update(BuyInTimeProductModel action)
        {
            ModulesRepository.ModuleExecuteNonQuery(
                "Update [Module].[" + ModuleName + "] " +
                "Set ProductId=@ProductId, DateStart=@DateStart, DateExpired=@DateExpired, DiscountInTime=@DiscountInTime, ActionText=@ActionText, ShowMode=@ShowMode, IsRepeat=@IsRepeat, DaysRepeat=@DaysRepeat, Picture=@Picture, SortOrder=@SortOrder " +
                "Where Id=@Id",
                CommandType.Text,
                new SqlParameter("@Id", action.Id),
                new SqlParameter("@ProductId", action.ProductId),
                new SqlParameter("@DateStart", action.DateStart),
                new SqlParameter("@DateExpired", action.DateExpired),
                new SqlParameter("@DiscountInTime", action.DiscountInTime),
                new SqlParameter("@ActionText", action.ActionText),
                new SqlParameter("@ShowMode", action.ShowMode),
                new SqlParameter("@IsRepeat", action.IsRepeat),
                new SqlParameter("@DaysRepeat", action.DaysRepeat),
                new SqlParameter("@Picture", action.Picture ?? (object)DBNull.Value),
                new SqlParameter("@SortOrder", action.SortOrder));

            CacheManager.RemoveByPattern(CacheKey);
        }
Beispiel #19
0
 public static void DeleteShippings()
 {
     ModulesRepository.ModuleExecuteNonQuery("Delete From [Module].[YaMarketShippings]", CommandType.Text);
 }
Beispiel #20
0
 public static void DeleteTemplate(int id)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Delete From [Module].[AbandonedCartTemplate] Where Id=@Id", CommandType.Text,
         new SqlParameter("@Id", id));
 }
        public static bool InstallBuyInTimeModule()
        {
            ModulesRepository.ModuleExecuteNonQuery(
                @"IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Module." + ModuleName + @"') AND type in (N'U'))
                Begin
                    CREATE TABLE Module." + ModuleName + @"
	                    (
	                    Id int NOT NULL IDENTITY (1, 1),
	                    ProductId int NOT NULL,
                        DateStart datetime NOT NULL,
	                    DateExpired datetime NOT NULL,
	                    DiscountInTime float(53) NOT NULL,
                        ActionText nvarchar(MAX) NOT NULL,
	                    ShowMode tinyint NOT NULL,
                        IsRepeat bit NOT NULL,
                        DaysRepeat int NOT NULL,
                        Picture nvarchar(50) NULL
	                    )  ON [PRIMARY]
                    
                    ALTER TABLE Module." + ModuleName + @" ADD CONSTRAINT
	                    PK_BuyInTime PRIMARY KEY CLUSTERED 
	                    (Id) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
                    
                    ALTER TABLE Module." + ModuleName + @" ADD CONSTRAINT
	                    FK_BuyInTime_Product FOREIGN KEY
	                    (ProductId) REFERENCES Catalog.Product (ProductId) ON UPDATE  NO ACTION ON DELETE  CASCADE
                End",
                CommandType.Text);

            ModuleSettingsProvider.SetSettingValue("BuyInTimeLabel", "<span class=\"buyintime-label\">Успей купить</span>", ModuleName);

            ModuleSettingsProvider.SetSettingValue("BuyInTimeActionTitle",
                                                   "<div class=\"buy-in-time-title\">Успей купить!</div> <div class=\"buy-in-time-action\">До конца распродажи:</div>",
                                                   ModuleName);

            ModuleSettingsProvider.SetSettingValue("BuyInTimeDefaultActionTextMode1",
                                                   "<div class=\"buy-in-time-main-b\"> " +
                                                   "<div style=\"border-radius: 2px; background-color: #eceaeb; padding: 24px 20px 0 0px;\">" +
                                                   "<div style=\"padding: 0 15px;display: inline-block;vertical-align: top;\">" +
                                                   "#ActionTitle# #Countdown# " +
                                                   "</div>" +
                                                   "<div style=\"display:inline-block; vertical-align:bottom; padding:0; margin:0 20px 0 0;\">" +
                                                   "<a href=\"#ProductLink#\">" +
                                                   "#ProductPicture#" +
                                                   "</a>" +
                                                   "</div>" +
                                                   "<div style=\"display:inline-block; vertical-align:top; position:relative; min-height:125px;width: 270px;\">" +
                                                   "<div style=\"margin-bottom:5px;\">" +
                                                   "<a href=\"#ProductLink#\" style=\"font-size:18px; font-weight:bold;text-decoration:none;\">#ProductName#</a>" +
                                                   "</div>" +
                                                   "<div style=\"margin-bottom:5px;\"> " +
                                                   "<span style=\"color: #d40b3e; \">Цена: #OldPrice#</span> Экономия: #DiscountPrice#" +
                                                   "</div>" +
                                                   "<div style=\"font-weight:bold; margin-bottom:5px;\"> " +
                                                   "Цена сегодня: #NewPrice#" +
                                                   "</div>" +
                                                   "<div style=\"margin-bottom:20px;\"> " +
                                                   "<a href=\"#ProductLink#\" class=\"btn btn-big btn-buy\">Купить</a>" +
                                                   "</div>" +
                                                   "<div class=\"buy-in-time-discount\"> " +
                                                   "<div style=\"font-size:24px;\">#DiscountPercent#%</div> " +
                                                   "<span style=\"font-size:12px;\">скидка</span> " +
                                                   "</div>" +
                                                   "</div>" +
                                                   "<div style=\"display: inline-block; vertical-align: top; border-left: 1px solid #cccbce; margin-left:10px;\">" +
                                                   "<ul>" +
                                                   "<li style=\"padding-bottom:10px;\">Самая низкая цена</li>" +
                                                   "<li style=\"padding-bottom:10px;\">Бесплатная доставка в день заказа</li>" +
                                                   "<li style=\"padding-bottom:10px;\">Гарантия производителя</li>" +
                                                   "<li>Бесплатное обучение</li>" +
                                                   "</ul>" +
                                                   "</div>" +
                                                   "</div>" +
                                                   "</div>",
                                                   ModuleName);

            ModuleSettingsProvider.SetSettingValue("BuyInTimeDefaultActionTextMode2",
                                                   "<div class=\"buy-in-time\"> " +
                                                   "<div class=\"center\"> " +
                                                   "#ActionTitle# #Countdown# " +
                                                   "</div> " +
                                                   "<div class=\"center\"> " +
                                                   "<div style=\"position:relative; margin:0; padding:10px; display:inline-block;\"> " +
                                                   "<a href=\"#ProductLink#\"> " +
                                                   "#ProductPicture# " +
                                                   "</a> " +
                                                   "<div class=\"buy-in-time-discount\"> " +
                                                   "<div style=\"font-size:24px;\">#DiscountPercent#%</div> " +
                                                   "<span style=\"font-size:12px;\">скидка</span> " +
                                                   "</div> " +
                                                   "</div> " +
                                                   "</div> " +
                                                   "<div style=\"margin-bottom:5px;\"> " +
                                                   "<a href=\"#ProductLink#\" style=\"font-size:14px; font-weight:bold;\">#ProductName#</a> " +
                                                   "</div> " +
                                                   "<div style=\"margin-bottom:5px;\"> " +
                                                   "<span style=\"color: #d40b3e;\">Цена: #OldPrice#</span> " +
                                                   "</div> " +
                                                   "<div style=\"font-weight:bold; margin-bottom:5px;\">Цена сегодня: #NewPrice#</div> " +
                                                   "<div style=\"font-weight:bold;\">Экономия: #DiscountPrice#</div> " +
                                                   "</div>",
                                                   ModuleName);

            return(true);
        }