Пример #1
0
        public static ProductDiscount GetByProduct(int productId, DateTime dateTime)
        {
            var action = ModulesRepository.ModuleExecuteReadOne(
                "Select Top(1) * From [Module].[" + ModuleName + "] " +
                "Where ProductId=@ProductId And ((@dateTime between DateStart and DateExpired) Or (IsRepeat = 1)) Order by SortOrder",
                CommandType.Text, GetBuyInTimeProductModelFromReader,
                new SqlParameter("@ProductId", productId),
                new SqlParameter("@dateTime", dateTime));

            if (action == null)
            {
                return(null);
            }

            if (action.IsRepeat && action.DateExpired < DateTime.Now)
            {
                action.DateExpired = GetExpireDateTime(action.DateExpired, action.DaysRepeat);
            }

            return(new ProductDiscount()
            {
                ProductId = productId,
                Discount = action.DiscountInTime,
                DateExpired = action.DateExpired
            });
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="moduleStringId"></param>
        /// <returns></returns>
        public static bool UninstallModule(string moduleStringId)
        {
            var moduleInst = AttachedModules.GetModules(AttachedModules.EModuleType.All).FirstOrDefault(
                item =>
                ((IModule)Activator.CreateInstance(item, null)).ModuleStringId.ToLower() == Convert.ToString(moduleStringId).ToLower());

            if (moduleInst != null)
            {
                var module = ((IModule)Activator.CreateInstance(moduleInst, null));
                if (module.UninstallModule())
                {
                    ModulesRepository.UninstallModuleFromDb(module.ModuleStringId);
                }
                else
                {
                    return(false);
                }
            }

            if (Directory.Exists(HttpContext.Current.Server.MapPath("~/App_Code/Advantshop/Modules/" + moduleStringId)))
            {
                Directory.Delete(HttpContext.Current.Server.MapPath("~/App_Code/Advantshop/Modules/" + moduleStringId), true);
            }
            if (Directory.Exists(HttpContext.Current.Server.MapPath("~/Modules/" + moduleStringId)))
            {
                Directory.Delete(HttpContext.Current.Server.MapPath("~/Modules/" + moduleStringId), true);
            }
            return(true);
        }
Пример #3
0
        public static void Delete(int id)
        {
            ModulesRepository.ModuleExecuteNonQuery("Delete From [Module].[" + ModuleName + "] Where Id=@Id",
                                                    CommandType.Text, new SqlParameter("@Id", id));

            CacheManager.RemoveByPattern(CacheKey);
        }
Пример #4
0
 public static DataTable GetHistory()
 {
     return(ModulesRepository.ModuleExecuteTable(
                "Select [Order].OrderId, MarketOrderId, Status, OrderDate, Sum " +
                "From [Module].[YaMarketOrder] Left Join [Order].[Order] On [YaMarketOrder].[OrderId] = [Order].[OrderId]",
                CommandType.Text));
 }
Пример #5
0
 public static DataTable GetStoreReviews()
 {
     return(ModulesRepository.ModuleExecuteTable(
                "SELECT * FROM [Module].[StoreReview] ORDER BY [DateAdded] DESC",
                CommandType.Text
                ));
 }
Пример #6
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);
            }
        }
Пример #7
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"));
        }
Пример #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="moduleStringId"></param>
        /// <param name="version"></param>
        /// <returns></returns>
        public static bool InstallModule(string moduleStringId, string version)
        {
            var moduleInst = AttachedModules.GetModules().FirstOrDefault(
                item =>
                ((IModule)Activator.CreateInstance(item, null)).ModuleStringId.ToLower() == moduleStringId.ToLower());

            if (moduleInst != null)
            {
                var module = ((IModule)Activator.CreateInstance(moduleInst, null));
                if (module.InstallModule())
                {
                    ModulesRepository.InstallModuleToDb(
                        new Module
                    {
                        StringId     = module.ModuleStringId,
                        Name         = module.ModuleName,
                        DateModified = DateTime.Now,
                        DateAdded    = DateTime.Now,
                        Version      = version,
                        Active       = false,
                        HasSettings  = module.HasSettings
                    });
                    return(true);
                }
            }

            return(false);
        }
Пример #9
0
 public static void DeleteStoreReviewsById(int id)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "DELETE FROM [Module].[StoreReview] WHERE [ID] = @ID",
         CommandType.Text,
         new SqlParameter("@ID", id));
 }
Пример #10
0
 public static void DeleteExpiredLetters()
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Delete From [Module].[AbandonedCartLetter] Where SendingDate < @SendingDate",
         CommandType.Text,
         new SqlParameter("@SendingDate", DateTime.Now.AddMonths(-48)));
 }
Пример #11
0
 public static bool IsAliveStoreReviewsModule()
 {
     using (var da = new SQLDataAccess())
     {
         return(ModulesRepository.IsExistsModuleTable(da, "Module", "StoreReview"));
     }
 }
Пример #12
0
        public static bool UninstallCallbackModule()
        {
            bool isInstall;

            ModuleSettingsProvider.RemoveSqlSetting("email4notify", _moduleName);
            ModuleSettingsProvider.RemoveSqlSetting("emailFormat", _moduleName);
            ModuleSettingsProvider.RemoveSqlSetting("emailSubject", _moduleName);
            ModuleSettingsProvider.RemoveSqlSetting("windowTitle", _moduleName);
            ModuleSettingsProvider.RemoveSqlSetting("windowText", _moduleName);

            using (var da = new SQLDataAccess())
            {
                if (!ModulesRepository.IsExistsModuleTable(da, "Module", _moduleName))
                {
                    return(true);
                }

                da.cmd.CommandText = "DROP TABLE Module." + _moduleName;
                da.cmd.CommandType = CommandType.Text;

                da.cnOpen();
                da.cmd.ExecuteNonQuery();
                da.cnClose();

                isInstall = ModulesRepository.IsExistsModuleTable(da, "Module", _moduleName);
            }
            return(isInstall);
        }
Пример #13
0
 public static DataTable GetProductsTable()
 {
     return(ModulesRepository.ModuleExecuteTable(
                "Select Id, [" + ModuleName + "].[ProductId], DateStart, DateExpired, DiscountInTime, Product.Name, IsRepeat, DaysRepeat, SortOrder From [Module].[" + ModuleName + "] " +
                "Left Join Catalog.Product On Product.ProductId = [" + ModuleName + "].[ProductId] Order By SortOrder",
                CommandType.Text));
 }
Пример #14
0
 public static bool IsAliveCallbackModule()
 {
     using (var da = new SQLDataAccess())
     {
         return(ModulesRepository.IsExistsModuleTable(da, "Module", _moduleName));
     }
 }
Пример #15
0
 public static AbandonedCartTemplate GetTemplate(int id)
 {
     return
         (ModulesRepository.ModuleExecuteReadOne(
              "Select * From [Module].[AbandonedCartTemplate] Where Id = @Id", CommandType.Text,
              GetTemplateFromReader,
              new SqlParameter("@Id", id)));
 }
Пример #16
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));
 }
Пример #17
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));
 }
Пример #18
0
        public static bool UninstallStoreReviewsModule()
        {
            if (ModulesRepository.IsExistsModuleTable("Module", "StoreReview"))
            {
                ModulesRepository.ModuleExecuteNonQuery(@"DROP TABLE Module.StoreReview", CommandType.Text);
            }

            return(ModulesRepository.IsExistsModuleTable("Module", "StoreReview"));
        }
Пример #19
0
 public static BuyInTimeProductModel GetByShowMode(int showMode, DateTime dateTime)
 {
     return(ModulesRepository.ModuleExecuteReadOne(
                "Select Top(1) * From [Module].[" + ModuleName + "] " +
                "Where ShowMode=@ShowMode And ((@dateTime between DateStart and DateExpired) Or (IsRepeat = 1)) Order by SortOrder",
                CommandType.Text, GetBuyInTimeProductModelFromReader,
                new SqlParameter("@ShowMode", showMode),
                new SqlParameter("@dateTime", dateTime)));
 }
Пример #20
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));
 }
Пример #21
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));
 }
Пример #22
0
        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);
        }
Пример #23
0
        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);
        }
Пример #24
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));
 }
Пример #25
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));
 }
Пример #26
0
 public static AbandonedCart GetAbondonedCart(Guid customerId)
 {
     return
         (ModulesRepository.ModuleExecuteReadOne(
              "Select *, " +
              "(Select Count(*) From [Module].[AbandonedCartLetter] Where AbandonedCartLetter.CustomerId = OrderConfirmation.CustomerId) as SendingCount, " +
              "(Select Top(1)SendingDate From [Module].[AbandonedCartLetter] Where AbandonedCartLetter.CustomerId = OrderConfirmation.CustomerId Order By SendingDate Desc) as SendingDate " +
              "From [Order].[OrderConfirmation] Where CustomerId = @CustomerId",
              CommandType.Text,
              GetOrderConfirmationFromReader,
              new SqlParameter("@CustomerId", customerId)));
 }
Пример #27
0
 public static YaOrder GetOrder(int marketOrderId)
 {
     return(ModulesRepository.ModuleExecuteReadOne(
                "Select * From Module.YaMarketOrder Where MarketOrderId = @MarketOrderId", CommandType.Text,
                reader => new YaOrder()
     {
         MarketOrderId = SQLDataHelper.GetInt(reader, "MarketOrderId"),
         OrderId = SQLDataHelper.GetInt(reader, "OrderId"),
         Status = SQLDataHelper.GetString(reader, "Status"),
     },
                new SqlParameter("@MarketOrderId", marketOrderId)));
 }
Пример #28
0
 public static List <YaMarketShipping> GetShippings()
 {
     return(ModulesRepository.ModuleExecuteReadList("Select * From Module.YaMarketShippings", CommandType.Text,
                                                    reader => new YaMarketShipping()
     {
         Id = SQLDataHelper.GetInt(reader, "Id"),
         ShippingMethodId = SQLDataHelper.GetInt(reader, "ShippingMethodId"),
         Type = SQLDataHelper.GetString(reader, "Type"),
         MinDate = SQLDataHelper.GetInt(reader, "MinDate"),
         MaxDate = SQLDataHelper.GetInt(reader, "MaxDate")
     }));
 }
Пример #29
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);
        }
Пример #30
0
 public static List <ProductDiscount> GetProductDiscountsList(DateTime dateTime)
 {
     return(ModulesRepository.ModuleExecuteReadList(
                "Select * From [Module].[" + ModuleName + "] Where ((@dateTime between DateStart and DateExpired) Or (IsRepeat = 1))",
                CommandType.Text,
                reader => new ProductDiscount()
     {
         ProductId = ModulesRepository.ConvertTo <int>(reader, "ProductId"),
         Discount = ModulesRepository.ConvertTo <float>(reader, "DiscountInTime"),
         DateExpired = ModulesRepository.ConvertTo <DateTime>(reader, "DateExpired")
     },
                new SqlParameter("@dateTime", dateTime)));
 }