// // GET: /Admin/SystemConfig/ public ActionResult Index() { var model = new SystemConfigurationViewModel() { ConfigurationObject = _systemConfigurationService.GetSystemConfigurations() }; return(View(model)); }
private async Task <RepositoryResponse <bool> > ActivedThemeAsync(MixCmsContext _context = null, IDbContextTransaction _transaction = null) { var result = new RepositoryResponse <bool>() { IsSucceed = true }; SystemConfigurationViewModel config = (await SystemConfigurationViewModel.Repository.GetSingleModelAsync( c => c.Keyword == MixConstants.ConfigurationKeyword.ThemeName && c.Specificulture == Specificulture , _context, _transaction)).Data; if (config == null) { config = new SystemConfigurationViewModel() { Keyword = MixConstants.ConfigurationKeyword.ThemeName, Specificulture = Specificulture, Category = "Site", DataType = MixDataType.Text, Description = "Cms Theme", Value = Name }; } else { config.Value = Name; } var saveConfigResult = await config.SaveModelAsync(false, _context, _transaction); if (saveConfigResult.IsSucceed) { SystemConfigurationViewModel configFolder = (await SystemConfigurationViewModel.Repository.GetSingleModelAsync( c => c.Keyword == MixConstants.ConfigurationKeyword.ThemeFolder && c.Specificulture == Specificulture , _context, _transaction)).Data; configFolder.Value = Name; saveConfigResult = await configFolder.SaveModelAsync(false, _context, _transaction); } ViewModelHelper.HandleResult(saveConfigResult, ref result); if (result.IsSucceed) { SystemConfigurationViewModel configId = (await SystemConfigurationViewModel.Repository.GetSingleModelAsync( c => c.Keyword == MixConstants.ConfigurationKeyword.ThemeId && c.Specificulture == Specificulture, _context, _transaction)).Data; if (configId == null) { configId = new SystemConfigurationViewModel() { Keyword = MixConstants.ConfigurationKeyword.ThemeId, Specificulture = Specificulture, Category = "Site", DataType = MixDataType.Text, Description = "Cms Theme Id", Value = Model.Id.ToString() }; } else { configId.Value = Model.Id.ToString(); } var saveResult = await configId.SaveModelAsync(false, _context, _transaction); ViewModelHelper.HandleResult(saveResult, ref result); } return(result); }
public ActionResult ManageSystemConfiguration(SystemConfigurationViewModel model, HttpPostedFileBase DefaultProfilePicturefile, HttpPostedFileBase DefaultNotePicturefile) { if (ModelState.IsValid) { string DefaultProfilePictureFileName; string DefaultNotePictureFileName; SystemConfiguration supportEmail = db.SystemConfigurations.Where(x => x.Keys.Equals("SupportEmail")).FirstOrDefault(); supportEmail.Value = model.SupportEmail; supportEmail.CreatedDate = DateTime.Now; supportEmail.CreatedBy = Convert.ToInt32(Session["ID"]); SystemConfiguration SupportPhoneNumber = db.SystemConfigurations.Where(x => x.Keys.Equals("SupportPhoneNumber")).FirstOrDefault(); SupportPhoneNumber.Value = model.SupportContactNumber; SupportPhoneNumber.CreatedDate = DateTime.Now; SupportPhoneNumber.CreatedBy = Convert.ToInt32(Session["ID"]); if (model.Facebook != null) { SystemConfiguration Facebook = db.SystemConfigurations.Where(x => x.Keys.Equals("Facebook")).FirstOrDefault(); Facebook.Value = model.Facebook; Facebook.CreatedDate = DateTime.Now; Facebook.CreatedBy = Convert.ToInt32(Session["ID"]); } if (model.Twitter != null) { SystemConfiguration Twitter = db.SystemConfigurations.Where(x => x.Keys.Equals("Twitter")).FirstOrDefault(); Twitter.Value = model.Twitter; Twitter.CreatedDate = DateTime.Now; Twitter.CreatedBy = Convert.ToInt32(Session["ID"]); } if (model.Linkdin != null) { SystemConfiguration Linkedin = db.SystemConfigurations.Where(x => x.Keys.Equals("Linkedin")).FirstOrDefault(); Linkedin.Value = model.Linkdin; Linkedin.CreatedDate = DateTime.Now; Linkedin.CreatedBy = Convert.ToInt32(Session["ID"]); } SystemConfiguration DefaultNotePicture = db.SystemConfigurations.Where(x => x.Keys.Equals("DefaultNotePicture")).FirstOrDefault(); if (DefaultNotePicturefile != null) { var fileExtension = Path.GetExtension(DefaultNotePicturefile.FileName); DefaultNotePictureFileName = "DefaultNotePicture" + fileExtension; var File = CheckifPathExistForCurrentUser() + DefaultNotePicture.Value; if (System.IO.File.Exists(File)) { System.IO.File.Delete(File); } DefaultNotePicture.Value = DefaultNotePictureFileName; DefaultNotePicture.CreatedDate = DateTime.Now; DefaultNotePicture.CreatedBy = Convert.ToInt32(Session["ID"]); DefaultNotePictureFileName = CheckifPathExistForCurrentUser() + DefaultNotePictureFileName; DefaultNotePicturefile.SaveAs(DefaultNotePictureFileName); db.SaveChanges(); } SystemConfiguration DefaultProfilePicture = db.SystemConfigurations.Where(x => x.Keys.Equals("DefaultProfilePicture")).FirstOrDefault(); if (DefaultProfilePicturefile != null) { var fileExtension = Path.GetExtension(DefaultProfilePicturefile.FileName); DefaultProfilePictureFileName = "DefaultProfilePicture" + fileExtension; var File = CheckifPathExistForCurrentUser() + DefaultProfilePicture.Value; if (System.IO.File.Exists(File)) { System.IO.File.Delete(File); } DefaultProfilePicture.Value = DefaultProfilePictureFileName; DefaultProfilePicture.CreatedDate = DateTime.Now; DefaultProfilePicture.CreatedBy = Convert.ToInt32(Session["ID"]); DefaultProfilePictureFileName = CheckifPathExistForCurrentUser() + DefaultProfilePictureFileName; DefaultProfilePicturefile.SaveAs(DefaultProfilePictureFileName); db.SaveChanges(); } return(RedirectToAction("ManageSystemConfiguration", "SystemConfiguration")); } else { return(View(model)); } }
public ActionResult Index(SystemConfigurationViewModel postedModel) { _systemConfigurationService.UpdateSystemConfigurations(postedModel.ConfigurationObject); return(RedirectToAction("Index", "SystemConfig")); }
public override RepositoryResponse <bool> SaveSubModels(MixTheme parent, MixCmsContext _context = null, IDbContextTransaction _transaction = null) { RepositoryResponse <bool> result = new RepositoryResponse <bool>() { IsSucceed = true }; // import templates + assets if (TemplateAsset.Content != null || TemplateAsset.FileStream != null) { result = ImportTheme(_context, _transaction); } // Create default template if create new without import template assets if (Id == 0 && (TemplateAsset.Content == null && TemplateAsset.FileStream == null)) { string defaultFolder = CommonHelper.GetFullPath(new string[] { MixConstants.Folder.TemplatesFolder, Name == "Default"? "Default": MixService.GetConfig <string>(MixConstants.ConfigurationKeyword.DefaultTemplateFolder) }); bool copyResult = FileRepository.Instance.CopyDirectory(defaultFolder, TemplateFolder); var files = FileRepository.Instance.GetFilesWithContent(TemplateFolder); //TODO: Create default asset foreach (var file in files) { MixTemplates.InitViewModel template = new MixTemplates.InitViewModel( new MixTemplate() { FileFolder = file.FileFolder, FileName = file.Filename, Content = file.Content, Extension = file.Extension, CreatedDateTime = DateTime.UtcNow, LastModified = DateTime.UtcNow, ThemeId = Model.Id, ThemeName = Model.Name, FolderType = file.FolderName, ModifiedBy = CreatedBy }, _context, _transaction); var saveResult = template.SaveModel(true, _context, _transaction); result.IsSucceed = result.IsSucceed && saveResult.IsSucceed; if (!saveResult.IsSucceed) { result.Exception = saveResult.Exception; result.Errors.AddRange(saveResult.Errors); break; } } } // Actived Theme if (result.IsSucceed && IsActived) { SystemConfigurationViewModel config = (SystemConfigurationViewModel.Repository.GetSingleModel( c => c.Keyword == MixConstants.ConfigurationKeyword.ThemeName && c.Specificulture == Specificulture , _context, _transaction)).Data; if (config == null) { config = new SystemConfigurationViewModel(new MixConfiguration() { Keyword = MixConstants.ConfigurationKeyword.ThemeName, Specificulture = Specificulture, Category = "Site", DataType = (int)DataType.Text, Description = "Cms Theme", Value = Name }, _context, _transaction) ; } else { config.Value = Name; } var saveConfigResult = config.SaveModel(false, _context, _transaction); if (!saveConfigResult.IsSucceed) { Errors.AddRange(saveConfigResult.Errors); } else { //MixCmsService.Instance.RefreshConfigurations(_context, _transaction); } result.IsSucceed = result.IsSucceed && saveConfigResult.IsSucceed; SystemConfigurationViewModel configId = (SystemConfigurationViewModel.Repository.GetSingleModel( c => c.Keyword == MixConstants.ConfigurationKeyword.ThemeId && c.Specificulture == Specificulture, _context, _transaction)).Data; if (configId == null) { configId = new SystemConfigurationViewModel(new MixConfiguration() { Keyword = MixConstants.ConfigurationKeyword.ThemeId, Specificulture = Specificulture, Category = "Site", DataType = (int)DataType.Text, Description = "Cms Theme Id", Value = Model.Id.ToString() }, _context, _transaction) ; } else { configId.Value = Model.Id.ToString(); } var saveResult = configId.SaveModel(false, _context, _transaction); if (!saveResult.IsSucceed) { Errors.AddRange(saveResult.Errors); } else { //MixCmsService.Instance.RefreshConfigurations(_context, _transaction); } result.IsSucceed = result.IsSucceed && saveResult.IsSucceed; } if (result.IsSucceed && TemplateAsset.Content != null || TemplateAsset.FileStream != null) { var files = FileRepository.Instance.GetWebFiles(AssetFolder); StringBuilder strStyles = new StringBuilder(); foreach (var css in files.Where(f => f.Extension == ".css")) { strStyles.Append($" <link href='{css.FileFolder}/{css.Filename}{css.Extension}' rel='stylesheet'/>"); } StringBuilder strScripts = new StringBuilder(); foreach (var js in files.Where(f => f.Extension == ".js")) { strScripts.Append($" <script src='{js.FileFolder}/{js.Filename}{js.Extension}'></script>"); } var layout = MixTemplates.InitViewModel.Repository.GetSingleModel( t => t.FileName == "_Layout" && t.ThemeId == Model.Id , _context, _transaction); layout.Data.Content = layout.Data.Content.Replace("<!--[STYLES]-->" , string.Format(@"{0}" , strStyles)); layout.Data.Content = layout.Data.Content.Replace("<!--[SCRIPTS]-->" , string.Format(@"{0}" , strScripts)); layout.Data.SaveModel(true, _context, _transaction); } return(result); }
public SystemConfigSaveCommand(SystemConfigurationViewModel sysConfigVmModel) { this.SystemConfigurationViewModel = sysConfigVmModel; }
public override async Task <RepositoryResponse <bool> > SaveSubModelsAsync(SioTheme parent, SioCmsContext _context = null, IDbContextTransaction _transaction = null) { RepositoryResponse <bool> result = new RepositoryResponse <bool>() { IsSucceed = true }; if (TemplateAsset.Content != null || TemplateAsset.FileStream != null) { ImportTheme(_context, _transaction); } if (Asset.Content != null || Asset.FileStream != null) { Asset.FileFolder = AssetFolder; Asset.Filename = "assets"; string fullPath = CommonHelper.GetFullPath(new string[] { SioConstants.Folder.WebRootPath, Asset.FileFolder }); FileRepository.Instance.EmptyFolder(fullPath); var isSaved = FileRepository.Instance.SaveWebFile(Asset); result.IsSucceed = isSaved; if (isSaved) { result.IsSucceed = FileRepository.Instance.UnZipFile(Asset); if (!result.IsSucceed) { result.Errors.Add("Cannot unzip file"); } } else { result.Errors.Add("Cannot saved asset file"); } } if (Id == 0) { string defaultFolder = CommonHelper.GetFullPath(new string[] { SioConstants.Folder.TemplatesFolder, Name == "Default" ? "Default" : SioService.GetConfig <string>(SioConstants.ConfigurationKeyword.DefaultTemplateFolder) }); bool copyResult = FileRepository.Instance.CopyDirectory(defaultFolder, TemplateFolder); var files = copyResult ? FileRepository.Instance.GetFilesWithContent(TemplateFolder) : new List <FileViewModel>(); //TODO: Create default asset foreach (var file in files) { SioTemplates.InitViewModel template = new SioTemplates.InitViewModel( new SioTemplate() { FileFolder = file.FileFolder, FileName = file.Filename, Content = file.Content, Extension = file.Extension, CreatedDateTime = DateTime.UtcNow, LastModified = DateTime.UtcNow, ThemeId = Model.Id, ThemeName = Model.Name, FolderType = file.FolderName, ModifiedBy = CreatedBy }); var saveResult = await template.SaveModelAsync(true, _context, _transaction); result.IsSucceed = result.IsSucceed && saveResult.IsSucceed; if (!saveResult.IsSucceed) { result.Exception = saveResult.Exception; result.Errors.AddRange(saveResult.Errors); break; } } } // Actived Theme if (IsActived) { SystemConfigurationViewModel config = (await SystemConfigurationViewModel.Repository.GetSingleModelAsync( c => c.Keyword == SioConstants.ConfigurationKeyword.ThemeName && c.Specificulture == Specificulture , _context, _transaction)).Data; if (config == null) { config = new SystemConfigurationViewModel() { Keyword = SioConstants.ConfigurationKeyword.ThemeName, Specificulture = Specificulture, Category = "Site", DataType = SioDataType.Text, Description = "Cms Theme", Value = Name }; } else { config.Value = Name; } var saveConfigResult = await config.SaveModelAsync(false, _context, _transaction); if (!saveConfigResult.IsSucceed) { Errors.AddRange(saveConfigResult.Errors); } else { //SioCmsService.Instance.RefreshConfigurations(_context, _transaction); } result.IsSucceed = result.IsSucceed && saveConfigResult.IsSucceed; SystemConfigurationViewModel configId = (await SystemConfigurationViewModel.Repository.GetSingleModelAsync( c => c.Keyword == SioConstants.ConfigurationKeyword.ThemeId && c.Specificulture == Specificulture, _context, _transaction)).Data; if (configId == null) { configId = new SystemConfigurationViewModel() { Keyword = SioConstants.ConfigurationKeyword.ThemeId, Specificulture = Specificulture, Category = "Site", DataType = SioDataType.Text, Description = "Cms Theme Id", Value = Model.Id.ToString() }; } else { configId.Value = Model.Id.ToString(); } var saveResult = await configId.SaveModelAsync(false, _context, _transaction); if (!saveResult.IsSucceed) { Errors.AddRange(saveResult.Errors); } result.IsSucceed = result.IsSucceed && saveResult.IsSucceed; } if (Asset.Content != null || Asset.FileStream != null) { var files = FileRepository.Instance.GetWebFiles(AssetFolder); StringBuilder strStyles = new StringBuilder(); foreach (var css in files.Where(f => f.Extension == ".css")) { strStyles.Append($" <link href='{css.FileFolder}/{css.Filename}{css.Extension}' rel='stylesheet'/>"); } StringBuilder strScripts = new StringBuilder(); foreach (var js in files.Where(f => f.Extension == ".js")) { strScripts.Append($" <script src='{js.FileFolder}/{js.Filename}{js.Extension}'></script>"); } var layout = SioTemplates.InitViewModel.Repository.GetSingleModel( t => t.FileName == "_Layout" && t.ThemeId == Model.Id , _context, _transaction); layout.Data.Content = layout.Data.Content.Replace("<!--[STYLES]-->" , string.Format(@"{0}" , strStyles)); layout.Data.Content = layout.Data.Content.Replace("<!--[SCRIPTS]-->" , string.Format(@"{0}" , strScripts)); await layout.Data.SaveModelAsync(true, _context, _transaction); } return(result); }
public SystemConfigClearCommand(SystemConfigurationViewModel sysConfigViewModel) { this.SystmConfigVm = sysConfigViewModel; }