コード例 #1
0
        protected virtual bool GrupKontrolEt(EklentiTanımlayıcı eklentiTanımlayıcı, string grup)
        {
            if (eklentiTanımlayıcı == null)
            {
                throw new ArgumentNullException("eklentiTanımlayıcı");
            }

            if (String.IsNullOrEmpty(grup))
            {
                return(true);
            }

            return(grup.Equals(eklentiTanımlayıcı.Grup, StringComparison.InvariantCultureIgnoreCase));
        }
コード例 #2
0
        public static void EklentiAçıklamaDosyasınıKaydet(EklentiTanımlayıcı eklenti)
        {
            if (eklenti == null)
            {
                throw new ArgumentException("eklenti");
            }

            if (eklenti.OrijinalAssemblyDosyası == null)
            {
                throw new Exception(string.Format("{0} eklentisi için orijinal assebmly dosyası yüklenemedi.", eklenti.SistemAdı));
            }
            var dosyaYolu = Path.Combine(eklenti.OrijinalAssemblyDosyası.Directory.FullName, "Açıklama.txt");

            if (!File.Exists(dosyaYolu))
            {
                throw new Exception(string.Format("{0} eklentisi için açıklama dosyası bulunamadı. {1}", eklenti.SistemAdı, dosyaYolu));
            }

            var keyValues = new List <KeyValuePair <string, string> >();

            keyValues.Add(new KeyValuePair <string, string>("Grup", eklenti.Grup));
            keyValues.Add(new KeyValuePair <string, string>("KısaAd", eklenti.KısaAd));
            keyValues.Add(new KeyValuePair <string, string>("SistemAdı", eklenti.SistemAdı));
            keyValues.Add(new KeyValuePair <string, string>("Sürüm", eklenti.Sürüm));
            keyValues.Add(new KeyValuePair <string, string>("DesteklenenSürümler", string.Join(",", eklenti.DesteklenenSürümler)));
            keyValues.Add(new KeyValuePair <string, string>("Yazar", eklenti.Yazar));
            keyValues.Add(new KeyValuePair <string, string>("GörüntülemeSırası", eklenti.GörüntülemeSırası.ToString()));
            keyValues.Add(new KeyValuePair <string, string>("EklentiDosyaAdı", eklenti.EklentiDosyaAdı));
            keyValues.Add(new KeyValuePair <string, string>("Açıklama", eklenti.Açıklama));

            if (eklenti.KısıtlıMüsteriRolleriListesi.Any())
            {
                keyValues.Add(new KeyValuePair <string, string>("KısıtlıMüsteriRolleriListesi", string.Join(",", eklenti.KısıtlıMüsteriRolleriListesi)));
            }

            var sb = new StringBuilder();

            for (int i = 0; i < keyValues.Count; i++)
            {
                var key   = keyValues[i].Key;
                var value = keyValues[i].Value;
                sb.AppendFormat("{0}: {1}", key, value);
                if (i != keyValues.Count - 1)
                {
                    sb.Append(Environment.NewLine);
                }
            }
            File.WriteAllText(dosyaYolu, sb.ToString());
        }
コード例 #3
0
        public virtual bool KullanıcıİçinYetkili(EklentiTanımlayıcı eklentiTanımlayıcı, Kullanıcı kullanıcı)
        {
            if (eklentiTanımlayıcı == null)
            {
                throw new ArgumentNullException("eklentiTanımlayıcı");
            }

            if (kullanıcı == null || !eklentiTanımlayıcı.KısıtlıMüsteriRolleriListesi.Any())
            {
                return(true);
            }

            var kullanıcıRolIdleri = kullanıcı.KullanıcıRolleri.Where(role => role.Aktif).Select(role => role.Id);

            return(eklentiTanımlayıcı.KısıtlıMüsteriRolleriListesi.Intersect(kullanıcıRolIdleri).Any());
        }
コード例 #4
0
        public static bool EklentiSil(EklentiTanımlayıcı pluginDescriptor)
        {
            if (pluginDescriptor == null)
            {
                return(false);
            }

            if (pluginDescriptor.Kuruldu)
            {
                return(false);
            }

            if (pluginDescriptor.OrijinalAssemblyDosyası.Directory.Exists)
            {
                GenelYardımcı.KlasörSil(pluginDescriptor.OrijinalAssemblyDosyası.DirectoryName);
            }

            return(true);
        }
コード例 #5
0
        public virtual bool SiteyiOnayla(EklentiTanımlayıcı eklentiTanımlayıcı, int siteId)
        {
            if (eklentiTanımlayıcı == null)
            {
                throw new ArgumentNullException("eklentiTanımlayıcı");
            }

            //doğrulama gerekmiyor
            if (siteId == 0)
            {
                return(true);
            }
            if (!eklentiTanımlayıcı.KısıtlıSiteler.Any())
            {
                return(true);
            }

            return(eklentiTanımlayıcı.KısıtlıSiteler.Contains(siteId));
        }
コード例 #6
0
        protected virtual bool YüklemeModunuKontrolEt(EklentiTanımlayıcı eklentiTanımlayıcı, EklentiModuYükle yüklemeModu)
        {
            if (eklentiTanımlayıcı == null)
            {
                throw new ArgumentNullException("eklentiTanımlayıcı");
            }

            switch (yüklemeModu)
            {
            case EklentiModuYükle.Tümü:
                //filtresiz
                return(true);

            case EklentiModuYükle.Kurulanlar:
                return(eklentiTanımlayıcı.Kuruldu);

            case EklentiModuYükle.Kurulmayanlar:
                return(!eklentiTanımlayıcı.Kuruldu);

            default:
                throw new Exception("Desteklenmeyen yükleme modu");
            }
        }
コード例 #7
0
        public static void EklentiTanımlayıcıKaydet(EklentiTanımlayıcı pluginDescriptor)
        {
            if (pluginDescriptor == null)
            {
                throw new ArgumentException(nameof(pluginDescriptor));
            }

            if (pluginDescriptor.OrijinalAssemblyDosyası == null)
            {
                throw new Exception($"Cannot load original assembly path for {pluginDescriptor.SistemAdı} plugin.");
            }

            var filePath = Path.Combine(pluginDescriptor.OrijinalAssemblyDosyası.Directory.FullName, PluginDescriptionFileName);

            if (!File.Exists(filePath))
            {
                throw new Exception($"Description file for {pluginDescriptor.SistemAdı} plugin does not exist. {filePath}");
            }

            //save the file
            var text = JsonConvert.SerializeObject(pluginDescriptor, Formatting.Indented);

            File.WriteAllText(filePath, text);
        }
コード例 #8
0
        public static EklentiTanımlayıcı EklentiAçıklamaDosyasıAyrıştırıcı(string dosyaYolu)
        {
            var tanımlayıcı = new EklentiTanımlayıcı();
            var text        = File.ReadAllText(dosyaYolu);

            if (String.IsNullOrEmpty(text))
            {
                return(tanımlayıcı);
            }

            var ayarlar = new List <string>();

            using (var reader = new StringReader(text))
            {
                string str;
                while ((str = reader.ReadLine()) != null)
                {
                    if (String.IsNullOrWhiteSpace(str))
                    {
                        continue;
                    }
                    ayarlar.Add(str.Trim());
                }
            }

            foreach (var ayar in ayarlar)
            {
                var ayırıcı = ayar.IndexOf(':');
                if (ayırıcı == -1)
                {
                    continue;
                }
                string key   = ayar.Substring(0, ayırıcı).Trim();
                string value = ayar.Substring(ayırıcı + 1).Trim();

                switch (key)
                {
                case "Grup":
                    tanımlayıcı.Grup = value;
                    break;

                case "KısaAd":
                    tanımlayıcı.KısaAd = value;
                    break;

                case "SistemAdı":
                    tanımlayıcı.SistemAdı = value;
                    break;

                case "Sürüm":
                    tanımlayıcı.Sürüm = value;
                    break;

                case "DesteklenenSürümler":
                {
                    tanımlayıcı.DesteklenenSürümler = value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                                                      .Select(x => x.Trim())
                                                      .ToList();
                }
                break;

                case "Yazar":
                    tanımlayıcı.Yazar = value;
                    break;

                case "GörüntülemeSırası":
                {
                    int görüntülemeSırası;
                    int.TryParse(value, out görüntülemeSırası);
                    tanımlayıcı.GörüntülemeSırası = görüntülemeSırası;
                }
                break;

                case "EklentiDosyaAdı":
                    tanımlayıcı.EklentiDosyaAdı = value;
                    break;

                case "KısıtlıMüsteriRolleriListesi":
                {
                    foreach (var id in value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()))
                    {
                        int roleId;
                        if (int.TryParse(id, out roleId))
                        {
                            tanımlayıcı.KısıtlıMüsteriRolleriListesi.Add(roleId);
                        }
                    }
                }
                break;

                case "Açıklama":
                    tanımlayıcı.Açıklama = value;
                    break;

                default:
                    break;
                }
            }

            if (!tanımlayıcı.DesteklenenSürümler.Any())
            {
                tanımlayıcı.DesteklenenSürümler.Add("2.00");
            }

            return(tanımlayıcı);
        }