/// <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); }
/// <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 OrderDeleted(int orderId) { foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.OrderChanged)) { System.Reflection.MethodInfo method = cls.GetMethod("DoOrderDeleted"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { orderId }); } } }
public static void ProcessPhoto(Image image) { foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.ProcessPhoto)) { System.Reflection.MethodInfo method = cls.GetMethod("DoProcessPhoto"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { image }); } } }
public static void RenderDetailsModulesToBottom() { foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.DetailsModule)) { System.Reflection.MethodInfo method = cls.GetMethod("RenderToBottom"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); method.Invoke(classInstance, null); } } }
public static void ProcessPhoto(Image image) { foreach (var cls in AttachedModules.GetModules <IProcessPhoto>()) { MethodInfo method = cls.GetMethod("DoProcessPhoto"); if (method != null) { var classInstance = (IProcessPhoto)Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { image }); } } }
public static void SendSms(string phoneNumber, string text) { foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.SMS)) { System.Reflection.MethodInfo method = cls.GetMethod("SendSms"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { phoneNumber, text }); } } }
public static void SendSms(string phoneNumber, string text) { foreach (var cls in AttachedModules.GetModules <IModuleSms>()) { MethodInfo method = cls.GetMethod("SendSms"); if (method != null) { var classInstance = (IModuleSms)Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { phoneNumber, text }); } } }
public static ModuleBox GetModules() { var modules = GetModulesFromRemoteServer() ?? new ModuleBox(); //if (modules.Message.IsNotEmpty()) //{ // return modules; //} var isExistsOnlineModules = modules.Items.Count > 0; foreach (var type in AttachedModules.GetModules(AttachedModules.EModuleType.All)) { var moduleInst = (IModule)Activator.CreateInstance(type, null); Module curModule; if (isExistsOnlineModules && (curModule = modules.Items.FirstOrDefault(item => item.StringId.ToLower() == moduleInst.ModuleStringId.ToLower())) != null) { curModule.IsInstall = moduleInst.CheckAlive() && ModulesRepository.IsInstallModule(moduleInst.ModuleStringId); curModule.IsLocalVersion = true; } else { modules.Items.Add(new Module { Name = moduleInst.ModuleName, StringId = moduleInst.ModuleStringId, Version = Resources.Resource.ModulesService_ModuleInDebug, IsInstall = moduleInst.CheckAlive() && ModulesRepository.IsInstallModule(moduleInst.ModuleStringId), Price = 0, IsLocalVersion = true }); } } var existModules = ModulesRepository.GetModulesFromDb(); foreach (var module in modules.Items) { Module currentModule; if (existModules.Count > 0 && (currentModule = existModules.FirstOrDefault(item => item.StringId == module.StringId)) != null) { module.CurrentVersion = currentModule.Version; } } return(modules); }
public static string RenderIntoOrderConfirmationFinalStep(IOrder order) { var builder = new StringBuilder(); foreach (var cls in AttachedModules.GetModules <IOrderRenderIntoHtml>()) { MethodInfo methodOneParam = cls.GetMethod("DoRenderIntoFinalStep", new[] { typeof(IOrder) }, new[] { new ParameterModifier(1) }); if (methodOneParam != null) { var classInstance = (IOrderRenderIntoHtml)Activator.CreateInstance(cls, null); builder.Append(methodOneParam.Invoke(classInstance, new object[] { order })); } } return(builder.ToString()); }
public static string RenderBeforeBodyEnd() { var builder = new StringBuilder(); foreach (var cls in AttachedModules.GetModules <IRenderIntoHtml>()) { MethodInfo method = cls.GetMethod("DoRenderBeforeBodyEnd"); if (method != null) { var classInstance = (IRenderIntoHtml)Activator.CreateInstance(cls, null); builder.Append(method.Invoke(classInstance, null)); } } return(builder.ToString()); }
public static void RenderDetailsModulesToBottom() { foreach (var cls in AttachedModules.GetModules <IModuleDetails>()) { MethodInfo method = cls.GetMethod("RenderToBottom"); if (method != null) { var classInstance = (IModuleDetails)Activator.CreateInstance(cls, null); if (ModulesRepository.IsActiveModule(classInstance.ModuleStringId)) { method.Invoke(classInstance, null); } } } }
public static void OrderDeleted(int orderId) { foreach (var cls in AttachedModules.GetModules <IOrderChanged>()) { MethodInfo method = cls.GetMethod("DoOrderDeleted"); if (method != null) { var classInstance = (IOrderChanged)Activator.CreateInstance(cls, null); if (ModulesRepository.IsActiveModule(classInstance.ModuleStringId)) { method.Invoke(classInstance, new object[] { orderId }); } } } }
public static string RenderDetailsModulesToRightColumn() { var result = string.Empty; foreach (var cls in AttachedModules.GetModules <IModuleDetails>()) { MethodInfo method = cls.GetMethod("RenderToRightColumn"); if (method != null) { var classInstance = (IModuleDetails)Activator.CreateInstance(cls, null); result += method.Invoke(classInstance, null); } } return(result); }
public static string RenderDetailsModulesToRightColumn() { var result = string.Empty; foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.DetailsModule)) { System.Reflection.MethodInfo method = cls.GetMethod("RenderToRightColumn"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); result += method.Invoke(classInstance, null); } } return(result); }
public static string RenderBeforeBodyEnd() { var builder = new StringBuilder(); foreach (var cls in AttachedModules.GetModules(AttachedModules.EModuleType.RenderIntoHtml)) { System.Reflection.MethodInfo method = cls.GetMethod("DoRenderBeforeBodyEnd"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); builder.Append(method.Invoke(classInstance, null)); } } return(builder.ToString()); }
public static string RenderAfterBodyStart() { var builder = new StringBuilder(); foreach (var cls in AttachedModules.GetModules <IRenderIntoHtml>()) { MethodInfo method = cls.GetMethod("DoRenderAfterBodyStart"); if (method != null) { var classInstance = (IRenderIntoHtml)Activator.CreateInstance(cls, null); if (classInstance.CheckAlive() && ModulesRepository.IsActiveModule(classInstance.ModuleStringId)) { builder.Append(method.Invoke(classInstance, null)); } } } return(builder.ToString()); }
/// <summary> /// /// </summary> /// <param name="moduleStringId"></param> /// <param name="active"></param> public static void SetActiveModule(string moduleStringId, bool active) { SQLDataAccess.ExecuteNonQuery( "Update [dbo].[Modules] SET [Active] = @Active WHERE [ModuleStringID] = @ModuleStringID", CommandType.Text, new SqlParameter("@ModuleStringID", moduleStringId), new SqlParameter("@Active", active)); AttachedModules.LoadModules(); var module = AttachedModules.GetModules().FirstOrDefault(x => x.Name.ToLower() == moduleStringId.ToLower()); if (module != null && typeof(IModuleChangeActive).IsAssignableFrom(module)) { var instance = (IModuleChangeActive)Activator.CreateInstance(module, null); instance.ModuleChangeActive(active); } }
public static string GetModuleStringIdByUrlPath(string urlPath) { if (urlPath.IsNullOrEmpty()) { return(string.Empty); } var moduleInst = AttachedModules.GetModules <IClientPageModule>().FirstOrDefault( item => ((IClientPageModule)Activator.CreateInstance(item, null)).UrlPath.ToLower() == SQLDataHelper.GetString(urlPath).ToLower()); if (moduleInst != null) { var module = ((IModule)Activator.CreateInstance(moduleInst, null)); return(module.ModuleStringId); } return(string.Empty); }
public static void OrderUpdated(int orderId) { IOrder order = null; var modules = AttachedModules.GetModules(AttachedModules.EModuleType.OrderChanged); if (modules.Count > 0) { order = OrderService.GetOrder(orderId); } foreach (var cls in modules) { System.Reflection.MethodInfo method = cls.GetMethod("DoOrderUpdated"); if (method != null) { object classInstance = Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { order }); } } }
public static void OrderAdded(int orderId) { IOrder order = null; var modules = AttachedModules.GetModules <IOrderChanged>(); if (modules.Count > 0) { order = OrderService.GetOrder(orderId); } foreach (var cls in modules) { MethodInfo method = cls.GetMethod("DoOrderAdded"); if (method != null) { var classInstance = (IOrderChanged)Activator.CreateInstance(cls, null); method.Invoke(classInstance, new object[] { order }); } } }
public static string GetModuleStringIdByUrlPath(string urlPath) { if (urlPath.IsNullOrEmpty()) { return(string.Empty); } var moduleInst = AttachedModules.GetModules(AttachedModules.EModuleType.ClientPage).FirstOrDefault( item => ((IClientPageModule)Activator.CreateInstance(item, null)).UrlPath.ToLower() == Convert.ToString(urlPath).ToLower()); if (moduleInst != null) { var module = ((IModule)Activator.CreateInstance(moduleInst, null)); if (module.CheckAlive()) { return(module.ModuleStringId); } } return(string.Empty); }
/// <summary> /// /// </summary> /// <param name="moduleStringId"></param> /// <returns></returns> public static bool UninstallModule(string moduleStringId) { var moduleInst = AttachedModules.GetModules().FirstOrDefault( item => ((IModule)Activator.CreateInstance(item, null)).ModuleStringId.ToLower() == SQLDataHelper.GetString(moduleStringId).ToLower()); if (moduleInst != null) { var module = ((IModule)Activator.CreateInstance(moduleInst, null)); if (module.UninstallModule()) { ModulesRepository.UninstallModuleFromDb(module.ModuleStringId); } else { return(false); } } FileHelpers.DeleteDirectory(HttpContext.Current.Server.MapPath("~/App_Code/Advantshop/Modules/" + moduleStringId)); FileHelpers.DeleteDirectory(HttpContext.Current.Server.MapPath("~/Modules/" + moduleStringId)); return(true); }