public IActionResult Edit(DynamicModuleViewModel <T> configuration) { var dynamicModuleModelRequest = m_dynamicModuleManager.GetById(configuration.Id); if (dynamicModuleModelRequest.HasError) { return(NotFound(configuration.Id)); } var dynamicModuleModel = dynamicModuleModelRequest.Result; var moduleInfo = m_dynamicModuleProvider.GetContextByNameOrGuid( dynamicModuleModel.Name, dynamicModuleModel.ModuleGuid ); if (moduleInfo == null) { return(NotFound(configuration.Id)); } var configurationDto = moduleInfo.ModuleConfiguration ?? moduleInfo.EmptyModuleConfiguration; configuration.CustomConfigurationViewModel.Name = configuration.Name; moduleInfo.ModuleConfigurationManager.HydrateModuleConfiguration( configurationDto, configuration.CustomConfigurationViewModel ); m_dynamicModuleManager.UpdateConfiguration( configuration.Id, configurationDto, moduleInfo.LibModuleInfo.Version ); var viewModelWithMainLogo = configuration.CustomConfigurationViewModel as IModuleMainLogoViewModel; if (viewModelWithMainLogo?.MainLogo != null) { if (ContentType.ImageContentTypes.Contains(viewModelWithMainLogo.MainLogo.ContentType)) { var dynamicModuleBlobRequest = m_dynamicModuleManager.GetDynamicModuleBlob( configuration.Id, DynamicModuleBlobEnum.MainLogo ); var mainLogoStream = viewModelWithMainLogo.MainLogo.OpenReadStream(); var mainLogoFileExtension = Path.GetExtension(viewModelWithMainLogo.MainLogo.FileName).Substring(1).ToLower(); var dynamicModuleBlob = dynamicModuleBlobRequest.Result; if (dynamicModuleBlobRequest.Succeeded && dynamicModuleBlob != null) { m_dynamicModuleManager.UpdateDynamicModuleBlob( dynamicModuleBlob.Id, mainLogoStream, mainLogoFileExtension ); } else { m_dynamicModuleManager.CreateDynamicModuleBlob( configuration.Id, DynamicModuleBlobEnum.MainLogo, mainLogoStream, mainLogoFileExtension ); } } } return(RedirectToAction("Edit", "DynamicModule", new { id = configuration.Id })); }