コード例 #1
0
        public static string GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum type, bool general)
        {
            var partnerLogoPath = GetPartnerStorageLogoPath(type, general);

            if (!String.IsNullOrEmpty(partnerLogoPath))
            {
                return(partnerLogoPath);
            }

            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small.png"));

            case WhiteLabelLogoTypeEnum.Dark:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark.png"));

            case WhiteLabelLogoTypeEnum.DocsEditor:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo.png"));

            case WhiteLabelLogoTypeEnum.Favicon:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon_general.ico") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon.ico"));
            }
            return("");
        }
コード例 #2
0
        private void SetExt(WhiteLabelLogoTypeEnum type, String fileExt)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                _logoLightSmallExt = fileExt;
                break;

            case WhiteLabelLogoTypeEnum.Dark:
                _logoDarkExt = fileExt;
                break;

            case WhiteLabelLogoTypeEnum.Favicon:
                _logoFaviconExt = fileExt;
                break;

            case WhiteLabelLogoTypeEnum.DocsEditor:
                _logoDocsEditorExt = fileExt;
                break;

            case WhiteLabelLogoTypeEnum.DocsEditorEmbed:
                _logoDocsEditorEmbedExt = fileExt;
                break;
            }
        }
コード例 #3
0
        public static string GetLogo(WhiteLabelLogoTypeEnum type, bool general = true, bool isDefIfNoWhiteLabel = false)
        {
            var imgUrl = "";

            if (TenantLogoManager.WhiteLabelEnabled)
            {
                var _tenantWhiteLabelSettings = SettingsManager.Instance.LoadSettings <TenantWhiteLabelSettings>(TenantProvider.CurrentTenantID);
                return(_tenantWhiteLabelSettings.GetAbsoluteLogoPath(type, general));
            }
            else
            {
                if (isDefIfNoWhiteLabel)
                {
                    imgUrl = TenantWhiteLabelSettings.GetAbsoluteDefaultLogoPath(type, general);
                }
                else
                {
                    if (type == WhiteLabelLogoTypeEnum.Dark)
                    {
                        /*** simple scheme ***/
                        var _tenantInfoSettings = SettingsManager.Instance.LoadSettings <TenantInfoSettings>(TenantProvider.CurrentTenantID);
                        imgUrl = _tenantInfoSettings.GetAbsoluteCompanyLogoPath();
                        /***/
                    }
                    else
                    {
                        imgUrl = TenantWhiteLabelSettings.GetAbsoluteDefaultLogoPath(type, general);
                    }
                }
            }

            return(imgUrl);
        }
コード例 #4
0
        private void SetIsDefault(WhiteLabelLogoTypeEnum type, bool value)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                _isDefaultLogoLightSmall = value;
                break;

            case WhiteLabelLogoTypeEnum.Dark:
                _isDefaultLogoDark = value;
                break;

            case WhiteLabelLogoTypeEnum.Favicon:
                _isDefaultLogoFavicon = value;
                break;

            case WhiteLabelLogoTypeEnum.DocsEditor:
                _isDefaultLogoDocsEditor = value;
                break;

            case WhiteLabelLogoTypeEnum.DocsEditorEmbed:
                _isDefaultLogoDocsEditorEmbed = value;
                break;
            }
        }
コード例 #5
0
        public string GetLogo(WhiteLabelLogoTypeEnum type, bool general = true, bool isDefIfNoWhiteLabel = false)
        {
            string imgUrl;

            if (TenantLogoManager.WhiteLabelEnabled)
            {
                var _tenantWhiteLabelSettings = SettingsManager.Load <TenantWhiteLabelSettings>();
                return(TenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, type, general));
            }
            else
            {
                if (isDefIfNoWhiteLabel)
                {
                    imgUrl = TenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(type, general);
                }
                else
                {
                    if (type == WhiteLabelLogoTypeEnum.Dark)
                    {
                        /*** simple scheme ***/
                        var _tenantInfoSettings = SettingsManager.Load <TenantInfoSettings>();
                        imgUrl = TenantInfoSettingsHelper.GetAbsoluteCompanyLogoPath(_tenantInfoSettings);
                        /***/
                    }
                    else
                    {
                        imgUrl = TenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(type, general);
                    }
                }
            }

            return(imgUrl);
        }
コード例 #6
0
        public static Size GetSize(WhiteLabelLogoTypeEnum type, bool general)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                return(new Size(
                           general ? TenantWhiteLabelSettings.logoLightSmallSize.Width / 2 : TenantWhiteLabelSettings.logoLightSmallSize.Width,
                           general ? TenantWhiteLabelSettings.logoLightSmallSize.Height / 2 : TenantWhiteLabelSettings.logoLightSmallSize.Height));

            case WhiteLabelLogoTypeEnum.Dark:
                return(new Size(
                           general ? TenantWhiteLabelSettings.logoDarkSize.Width / 2 : TenantWhiteLabelSettings.logoDarkSize.Width,
                           general ? TenantWhiteLabelSettings.logoDarkSize.Height / 2 : TenantWhiteLabelSettings.logoDarkSize.Height));

            case WhiteLabelLogoTypeEnum.Favicon:
                return(new Size(
                           general ? TenantWhiteLabelSettings.logoFaviconSize.Width / 2 : TenantWhiteLabelSettings.logoFaviconSize.Width,
                           general ? TenantWhiteLabelSettings.logoFaviconSize.Height / 2 : TenantWhiteLabelSettings.logoFaviconSize.Height));

            case WhiteLabelLogoTypeEnum.DocsEditor:
                return(new Size(
                           general ? TenantWhiteLabelSettings.logoDocsEditorSize.Width / 2 : TenantWhiteLabelSettings.logoDocsEditorSize.Width,
                           general ? TenantWhiteLabelSettings.logoDocsEditorSize.Height / 2 : TenantWhiteLabelSettings.logoDocsEditorSize.Height));
            }
            return(new Size(0, 0));
        }
コード例 #7
0
        public string GetAbsoluteLogoPath(WhiteLabelLogoTypeEnum type, bool general = true)
        {
            if (GetIsDefault(type))
            {
                return(GetAbsoluteDefaultLogoPath(type, general));
            }

            return(GetAbsoluteStorageLogoPath(type, general));
        }
コード例 #8
0
        /// <summary>
        /// Get logo stream or null in case of default whitelabel
        /// </summary>
        public Stream GetWhitelabelLogoData(WhiteLabelLogoTypeEnum type, bool general)
        {
            if (GetIsDefault(type))
            {
                return(GetPartnerStorageLogoData(type, general));
            }

            return(GetStorageLogoData(type, general));
        }
コード例 #9
0
        public static string BuildLogoFileName(WhiteLabelLogoTypeEnum type, String fileExt, bool general)
        {
            if (type == WhiteLabelLogoTypeEnum.Favicon)
            {
                fileExt = "ico";
            }

            return(String.Format("logo_{0}{2}.{1}", type.ToString().ToLowerInvariant(), fileExt, general ? "_general" : ""));
        }
コード例 #10
0
 internal bool GetIsDefault(WhiteLabelLogoTypeEnum type)
 {
     return(type switch
     {
         WhiteLabelLogoTypeEnum.LightSmall => _isDefaultLogoLightSmall,
         WhiteLabelLogoTypeEnum.Dark => _isDefaultLogoDark,
         WhiteLabelLogoTypeEnum.Favicon => _isDefaultLogoFavicon,
         WhiteLabelLogoTypeEnum.DocsEditor => _isDefaultLogoDocsEditor,
         _ => true,
     });
コード例 #11
0
        private void DeleteLogoFromStoreByGeneral(IDataStore store, WhiteLabelLogoTypeEnum type, bool general)
        {
            var fileExt = GetExt(type);
            var logo    = BuildLogoFileName(type, fileExt, general);

            if (store.IsFile(logo))
            {
                store.Delete(logo);
            }
        }
コード例 #12
0
        private string GetAbsoluteStorageLogoPath(WhiteLabelLogoTypeEnum type, bool general)
        {
            var store    = StorageFactory.GetStorage(TenantProvider.CurrentTenantID.ToString(), moduleName);
            var fileName = BuildLogoFileName(type, GetExt(type), general);

            if (store.IsFile(fileName))
            {
                return(store.GetUri(fileName).ToString());
            }
            return(GetAbsoluteDefaultLogoPath(type, general));
        }
コード例 #13
0
        private Stream GetStorageLogoData(WhiteLabelLogoTypeEnum type, bool general)
        {
            var storage = StorageFactory.GetStorage(TenantProvider.CurrentTenantID.ToString(CultureInfo.InvariantCulture), moduleName);

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

            var fileName = BuildLogoFileName(type, GetExt(type), general);

            return(storage.IsFile(fileName) ? storage.GetReadStream(fileName) : null);
        }
コード例 #14
0
        public void SetLogoFromStream(WhiteLabelLogoTypeEnum type, string fileExt, Stream fileStream)
        {
            byte[] data = null;
            using (var memoryStream = new MemoryStream())
            {
                fileStream.CopyTo(memoryStream);
                data = memoryStream.ToArray();
            }

            if (data != null)
            {
                SetLogo(type, fileExt, data);
            }
        }
コード例 #15
0
 public void RestoreDefault(WhiteLabelLogoTypeEnum type)
 {
     if (!GetIsDefault(type))
     {
         try
         {
             SetIsDefault(type, true);
             var store = StorageFactory.GetStorage(TenantProvider.CurrentTenantID.ToString(), moduleName);
             DeleteLogoFromStore(store, type);
         }
         catch (Exception e)
         {
             log4net.LogManager.GetLogger("ASC").Error(e);
         }
     }
 }
コード例 #16
0
        private static void ResizeLogo(WhiteLabelLogoTypeEnum type, String fileName, byte[] data, long maxFileSize, Size size, IDataStore store)
        {
            //Resize synchronously
            if (data == null || data.Length <= 0)
            {
                throw new UnknownImageFormatException();
            }
            if (maxFileSize != -1 && data.Length > maxFileSize)
            {
                throw new ImageWeightLimitException();
            }

            try
            {
                using (var stream = new MemoryStream(data))
                    using (var img = Image.FromStream(stream))
                    {
                        var imgFormat = img.RawFormat;
                        if (size != img.Size)
                        {
                            using (var img2 = CommonPhotoManager.DoThumbnail(img, size, false, true, false))
                            {
                                data = CommonPhotoManager.SaveToBytes(img2);
                            }
                        }
                        else
                        {
                            data = CommonPhotoManager.SaveToBytes(img);
                        }

                        //fileExt = CommonPhotoManager.GetImgFormatName(imgFormat);

                        using (var stream2 = new MemoryStream(data))
                        {
                            store.Save(fileName, stream2);
                            //NOTE: Update cache here
                            //var filePath = Path.GetFileName(photoUrl);

                            //AddToCache(item.UserId, item.Size, fileNPath, true);
                        }
                    }
            }
            catch (ArgumentException error)
            {
                throw new UnknownImageFormatException(error);
            }
        }
コード例 #17
0
        public string GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum type, bool general)
        {
            var partnerLogoPath = GetPartnerStorageLogoPath(type, general);

            if (!string.IsNullOrEmpty(partnerLogoPath))
            {
                return(partnerLogoPath);
            }

            return(type switch
            {
                WhiteLabelLogoTypeEnum.LightSmall => general?WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small_general.svg") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small.svg"),
                    WhiteLabelLogoTypeEnum.Dark => general?WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark.png"),
                        WhiteLabelLogoTypeEnum.DocsEditor => general?WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo.png"),
                            WhiteLabelLogoTypeEnum.Favicon => general?WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon_general.ico") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon.ico"),
                                _ => "",
            });
コード例 #18
0
        private string GetExt(WhiteLabelLogoTypeEnum type)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                return(_logoLightSmallExt);

            case WhiteLabelLogoTypeEnum.Dark:
                return(_logoDarkExt);

            case WhiteLabelLogoTypeEnum.Favicon:
                return(_logoFaviconExt);

            case WhiteLabelLogoTypeEnum.DocsEditor:
                return(_logoDocsEditorExt);
            }
            return("");
        }
コード例 #19
0
        private bool GetIsDefault(WhiteLabelLogoTypeEnum type)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.LightSmall:
                return(_isDefaultLogoLightSmall);

            case WhiteLabelLogoTypeEnum.Dark:
                return(_isDefaultLogoDark);

            case WhiteLabelLogoTypeEnum.Favicon:
                return(_isDefaultLogoFavicon);

            case WhiteLabelLogoTypeEnum.DocsEditor:
                return(_isDefaultLogoDocsEditor);
            }
            return(true);
        }
コード例 #20
0
        private Stream GetPartnerStorageLogoData(WhiteLabelLogoTypeEnum type, bool general)
        {
            var partnerSettings = SettingsManager.Instance.LoadSettings <TenantWhiteLabelSettings>(Tenant.DEFAULT_TENANT);

            if (partnerSettings.GetIsDefault(type))
            {
                return(null);
            }

            var partnerStorage = StorageFactory.GetStorage(Tenant.DEFAULT_TENANT.ToString(CultureInfo.InvariantCulture), "static_partnerdata");

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

            var fileName = BuildLogoFileName(type, partnerSettings.GetExt(type), general);

            return(partnerStorage.IsFile(fileName) ? partnerStorage.GetReadStream(fileName) : null);
        }
コード例 #21
0
        private static string GetPartnerStorageLogoPath(WhiteLabelLogoTypeEnum type, bool general)
        {
            var partnerSettings = LoadForDefaultTenant();

            if (partnerSettings.GetIsDefault(type))
            {
                return(null);
            }

            var partnerStorage = StorageFactory.GetStorage(string.Empty, "static_partnerdata");

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

            var logoPath = BuildLogoFileName(type, partnerSettings.GetExt(type), general);

            return(partnerStorage.IsFile(logoPath) ? partnerStorage.GetUri(logoPath).ToString() : null);
        }
コード例 #22
0
        private Stream GetPartnerStorageLogoData(WhiteLabelLogoTypeEnum type, bool general)
        {
            var partnerSettings = LoadForDefaultTenant();

            if (partnerSettings.GetIsDefault(type))
            {
                return(null);
            }

            var partnerStorage = StorageFactory.GetStorage(string.Empty, "static_partnerdata");

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

            var fileName = BuildLogoFileName(type, partnerSettings.GetExt(type), general);

            return(partnerStorage.IsFile(fileName) ? partnerStorage.GetReadStream(fileName) : null);
        }
コード例 #23
0
        public void SaveWhiteLabelSettingsFromFiles(IEnumerable <System.Web.HttpPostedFileBase> files)
        {
            if (files != null && files.Any())
            {
                var _tenantWhiteLabelSettings = SettingsManager.Instance.LoadSettings <TenantWhiteLabelSettings>(TenantProvider.CurrentTenantID);

                foreach (var f in files)
                {
                    var parts = f.FileName.Split('.');

                    WhiteLabelLogoTypeEnum logoType = (WhiteLabelLogoTypeEnum)(Convert.ToInt32(parts[0]));
                    string fileExt = parts[1];
                    _tenantWhiteLabelSettings.SetLogoFromStream(logoType, fileExt, f.InputStream);
                }
                _tenantWhiteLabelSettings.Save();
            }
            else
            {
                throw new InvalidOperationException("No input files");
            }
        }
コード例 #24
0
        public void SetLogo(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, string logoFileExt, byte[] data, IDataStore storage = null)
        {
            var store = storage ?? StorageFactory.GetStorage(TenantManager.GetCurrentTenant().TenantId.ToString(), moduleName);

            #region delete from storage if already exists

            var isAlreadyHaveBeenChanged = !tenantWhiteLabelSettings.GetIsDefault(type);

            if (isAlreadyHaveBeenChanged)
            {
                try
                {
                    DeleteLogoFromStore(tenantWhiteLabelSettings, store, type);
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            }
            #endregion

            using (var memory = new MemoryStream(data))
                using (var image = Image.FromStream(memory))
                {
                    var logoSize     = image.Size;
                    var logoFileName = BuildLogoFileName(type, logoFileExt, false);

                    memory.Seek(0, SeekOrigin.Begin);
                    store.Save(logoFileName, memory);
                }

            tenantWhiteLabelSettings.SetExt(type, logoFileExt);
            tenantWhiteLabelSettings.SetIsDefault(type, false);

            var generalSize     = GetSize(type, true);
            var generalFileName = BuildLogoFileName(type, logoFileExt, true);
            ResizeLogo(type, generalFileName, data, -1, generalSize, store);
        }
コード例 #25
0
        public void SetLogo(WhiteLabelLogoTypeEnum type, string logoFileExt, byte[] data)
        {
            var store = StorageFactory.GetStorage(TenantProvider.CurrentTenantID.ToString(), moduleName);

            #region delete from storage if already exists

            var isAlreadyHaveBeenChanged = !GetIsDefault(type);

            if (isAlreadyHaveBeenChanged)
            {
                try
                {
                    DeleteLogoFromStore(store, type);
                }
                catch (Exception e)
                {
                    log4net.LogManager.GetLogger("ASC").Error(e);
                }
            }
            #endregion

            using (var memory = new MemoryStream(data))
                using (var image = Image.FromStream(memory))
                {
                    var logoSize     = image.Size;
                    var logoFileName = BuildLogoFileName(type, logoFileExt, false);

                    memory.Seek(0, SeekOrigin.Begin);
                    store.Save(logoFileName, memory);
                }

            SetExt(type, logoFileExt);
            SetIsDefault(type, false);

            var generalSize     = GetSize(type, true);
            var generalFileName = BuildLogoFileName(type, logoFileExt, true);
            ResizeLogo(type, generalFileName, data, -1, generalSize, store);
        }
コード例 #26
0
        public static string GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum type, bool general)
        {
            switch (type)
            {
            case WhiteLabelLogoTypeEnum.Light:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light.png"));

            case WhiteLabelLogoTypeEnum.LightSmall:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/light_small.png"));

            case WhiteLabelLogoTypeEnum.Dark:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/dark.png"));

            case WhiteLabelLogoTypeEnum.DocsEditor:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_logo.png"));

            case WhiteLabelLogoTypeEnum.Favicon:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon_general.ico") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/favicon.ico"));

            case WhiteLabelLogoTypeEnum.DocsEditorEmbedded:
                return(general ? WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_embedded_logo_general.png") : WebImageSupplier.GetAbsoluteWebPath("onlyoffice_logo/editor_embedded_logo.png"));
            }
            return("");
        }
コード例 #27
0
 private void DeleteLogoFromStore(IDataStore store, WhiteLabelLogoTypeEnum type)
 {
     DeleteLogoFromStoreByGeneral(store, type, false);
     DeleteLogoFromStoreByGeneral(store, type, true);
 }
コード例 #28
0
 public void RestoreDefault(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type)
 {
     if (!tenantWhiteLabelSettings.GetIsDefault(type))
     {
         try
         {
             tenantWhiteLabelSettings.SetIsDefault(type, true);
             var store = StorageFactory.GetStorage(TenantManager.GetCurrentTenant().TenantId.ToString(), moduleName);
             DeleteLogoFromStore(tenantWhiteLabelSettings, store, type);
         }
         catch (Exception e)
         {
             Log.Error(e);
         }
     }
 }
コード例 #29
0
        public string GetAbsoluteLogoPath(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, bool general = true)
        {
            if (tenantWhiteLabelSettings.GetIsDefault(type))
            {
                return(GetAbsoluteDefaultLogoPath(type, general));
            }

            return(GetAbsoluteStorageLogoPath(tenantWhiteLabelSettings, type, general));
        }
コード例 #30
0
        private string GetAbsoluteStorageLogoPath(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, bool general)
        {
            var store    = StorageFactory.GetStorage(TenantManager.GetCurrentTenant().TenantId.ToString(), moduleName);
            var fileName = BuildLogoFileName(type, tenantWhiteLabelSettings.GetExt(type), general);

            if (store.IsFile(fileName))
            {
                return(store.GetUri(fileName).ToString());
            }
            return(GetAbsoluteDefaultLogoPath(type, general));
        }