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
            });
        }
Beispiel #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);
        }
        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 #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));
 }
Beispiel #5
0
 public static DataTable GetStoreReviews()
 {
     return(ModulesRepository.ModuleExecuteTable(
                "SELECT * FROM [Module].[StoreReview] ORDER BY [DateAdded] DESC",
                CommandType.Text
                ));
 }
Beispiel #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);
            }
        }
Beispiel #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"));
        }
Beispiel #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);
        }
Beispiel #9
0
 public static void DeleteStoreReviewsById(int id)
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "DELETE FROM [Module].[StoreReview] WHERE [ID] = @ID",
         CommandType.Text,
         new SqlParameter("@ID", id));
 }
Beispiel #10
0
 public static void DeleteExpiredLetters()
 {
     ModulesRepository.ModuleExecuteNonQuery(
         "Delete From [Module].[AbandonedCartLetter] Where SendingDate < @SendingDate",
         CommandType.Text,
         new SqlParameter("@SendingDate", DateTime.Now.AddMonths(-48)));
 }
 public static bool IsAliveStoreReviewsModule()
 {
     using (var da = new SQLDataAccess())
     {
         return(ModulesRepository.IsExistsModuleTable(da, "Module", "StoreReview"));
     }
 }
Beispiel #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);
        }
 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));
 }
Beispiel #14
0
 public static bool IsAliveCallbackModule()
 {
     using (var da = new SQLDataAccess())
     {
         return(ModulesRepository.IsExistsModuleTable(da, "Module", _moduleName));
     }
 }
Beispiel #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)));
 }
Beispiel #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));
 }
Beispiel #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));
 }
Beispiel #18
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 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)));
 }
Beispiel #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));
 }
Beispiel #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));
 }
        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);
        }
        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 #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));
 }
Beispiel #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));
 }
Beispiel #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)));
 }
Beispiel #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)));
 }
Beispiel #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")
     }));
 }
Beispiel #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);
        }
 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)));
 }