public ActionResult Index()
        {
            List <Content> faaliyetler;

            using (var db = new EF_CONTEXT())
            {
                var settingEnum = SettingsENUM.HOMEPAGE_SHOW_CONTENT_LIMITATION.ToString();
                var setting     = db.SiteSettings.FirstOrDefault(s => s.ENUM == settingEnum);
                if (setting == null)
                {
                    setting = new SiteSetting()
                    {
                        Value = 24.ToString()
                    };
                }

                var limitation = int.Parse(setting.Value);
                faaliyetler = db.Contents
                              .Where(e => !e.CID.EndsWith("e"))

                              .OrderByDescending(e => e.On)
                              .Take(limitation)
                              .ToList();
            }
            return(View(new IndexViewModel()
            {
                Events = faaliyetler
            }));
        }
Beispiel #2
0
        public ActionResult ListArticle(
            string author,
            string tags,
            bool listAll = false
            )
        {
            List <Content> result;
            string         filter     = null;
            var            authorFunc = funcByAuthor(author.BuildUpAuthorText(), out string authorFilter);
            var            tagsFunc   = funcByTags(tags, out string tagFilter);

            using (var db = new EF_CONTEXT())
            {
                var filtered = db.Contents.ToList().Where(content => authorFunc(content) && tagsFunc(content));
                if (!listAll)
                {
                    filtered = filtered.Where(content => !content.IsEditorial());
                }
                result = filtered.ToList();
            }
            if (!string.IsNullOrEmpty(authorFilter))
            {
                filter = authorFilter;
            }
            if (!string.IsNullOrEmpty(tagFilter))
            {
                tagFilter = tagFilter.Substring(0, tagFilter.Length - 1);
                filter    = string.IsNullOrEmpty(filter) ? tagFilter : filter + ";" + tagFilter;
            }
            return(View(new Tuple <string, IEnumerable <Content> >(filter, result)));
        }
        public ActionResult CreateUser(User usr)
        {
            using (var db = new EF_CONTEXT())
            {
                if (db.Users.Any(c => c.Username.ToLower() == usr.Username.ToLower()))
                {
                    TempData["Error"] = "Bu isimde [" + usr.Username + "] bir kullanıcı zaten var!";
                    return(RedirectToAction("Users", "Settings"));
                }
                if (User.IsInRole("USER") && usr.Role != "USER")
                {
                    usr.Role = "USER";
                }
                else if (User.IsInRole("ADMIN") && usr.Role == "SUPER")
                {
                    usr.Role = "ADMIN";
                }

                usr.Password = _Extentions.CreateMD5(usr.Password);
                db.Users.Add(usr);
                db.SaveChanges();
            }
            TempData["Message"] = "Kullanıcı [" + usr.Username + "] Başarı ile yaratıldı!";
            return(RedirectToAction("Users", "Settings"));
        }
        public ActionResult Users()
        {
            IEnumerable <User> users;

            using (var db = new EF_CONTEXT())
            {
                users = db.Users.ToList();
            }
            return(View(users));
        }
        public ActionResult Site()
        {
            IEnumerable <SiteSetting> settings = null;

            using (var db = new EF_CONTEXT())
            {
                settings = db.SiteSettings.ToList();
            }
            return(View(settings));
        }
Beispiel #6
0
        public string DeleteAll()
        {
            int deleted;

            using (var dbContext = new EF_CONTEXT())
            {
                dbContext.Contents.RemoveRange(dbContext.Contents);
                deleted = dbContext.SaveChanges();
            }
            return($"Done! Deleted {deleted} amount of content!");
        }
        private void BackupDBasCSV(ZipArchive zip)
        {
            using (var db = new EF_CONTEXT())
            {
                var yalanci = new YALANCI_CONTEXT(db, zip);

                yalanci.ZipEntryFor_dynamicHTMLPages();
                yalanci.ZipEntryFor_siteSettings();
                yalanci.ZipEntryFor_contents();
            }
        }
        public ActionResult ResetDatabase()
        {
            int total;

            using (var db = new EF_CONTEXT())
            {
                db.Contents.RemoveRange(db.Contents);
                total = db.SaveChanges();
            }
            TempData["Result"] = "Toplam " + total + " içerik veritabanından silindi";
            return(RedirectToAction("Database"));
        }
Beispiel #9
0
 public ActionResult Delete(string id)
 {
     using (var dbContext = new EF_CONTEXT())
     {
         if (_Extentions.IsIdSafe(id) && Directory.Exists(_Extentions.Locate(id)))
         {
             dbContext.Contents.Remove(dbContext.Contents.FirstOrDefault(f => f.CID == id));
             dbContext.SaveChanges();
             dbContext.Dispose();
             return(RedirectToAction("Index", "Home"));
         }
     }
     return(HttpNotFound());
 }
Beispiel #10
0
        private void Seed()
        {
            var context = new EF_CONTEXT();

            IList <User> defaultStandards = new List <User>();

            defaultStandards.Add(new User()
            {
                Username = "******", Password = "******", Fullname = "Ercan Bal", Role = "ADMIN", IsActive = true
            });
            defaultStandards.Add(new User()
            {
                Username = "******", Password = "******", Fullname = "Perihan Şahin Bal", Role = "ADMIN", IsActive = true
            });
            defaultStandards.Add(new User()
            {
                Username = "******", Password = "******", Fullname = "Admin", Role = "ADMIN", IsActive = true
            });
            defaultStandards.Add(new User()
            {
                Username = "******", Password = "******", Fullname = "Hasan Ünal", Role = "SUPER", IsActive = true
            });
            foreach (var item in defaultStandards)
            {
                if (context.Users.FirstOrDefault(c => c.Username == item.Username) == null)
                {
                    context.Users.Add(item);
                }
            }

            IList <SiteSetting> settings = new List <SiteSetting>();

            settings.Add(new SiteSetting {
                ENUM = SettingsENUM.HOMEPAGE_SHOW_CONTENT_LIMITATION.ToString(), DataTypeENUM = DataTypeENUM.INT.ToString(), Value = 25.ToString()
            });
            settings.Add(new SiteSetting {
                ENUM = SettingsENUM.IMAGE_COMPRESSION_QUALITY.ToString(), DataTypeENUM = DataTypeENUM.INT.ToString(), Value = 55.ToString()
            });
            settings.Add(new SiteSetting {
                ENUM = SettingsENUM.IMAGE_COMPRESSION_MAXSUMOFWIDTHANDHEIGHT.ToString(), DataTypeENUM = DataTypeENUM.INT.ToString(), Value = 3000.ToString()
            });
            foreach (var item in settings)
            {
                if (context.SiteSettings.FirstOrDefault(c => c.ENUM == item.ENUM) == null)
                {
                    context.SiteSettings.Add(item);
                }
            }
            context.SaveChanges();
        }
Beispiel #11
0
        /// <summary>
        /// Returns Username,Role,And MD5 Hashed Password, Null if no such username
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        User GetUser(string username)
        {
            User user;

            using (var db = new EF_CONTEXT())
            {
                user = db.Users.FirstOrDefault(f => f.Username == username);
            }
            if (user != null)
            {
                return(user);
            }
            return(null);
        }
Beispiel #12
0
        public ActionResult Create(ContentCreateModel model)
        {
            var img = model.ImageFile.FileName;

            using (var db = new EF_CONTEXT())
            {
                string outputqulity = db.GetSetting(SettingsENUM.IMAGE_COMPRESSION_QUALITY);
                string maxSummaryOfWidthAndHeight = db.GetSetting(SettingsENUM.IMAGE_COMPRESSION_MAXSUMOFWIDTHANDHEIGHT);
                if (outputqulity.Length > 0)
                {
                    OutputImageQualityPercentage = byte.Parse(outputqulity);
                }
                if (maxSummaryOfWidthAndHeight.Length > 0)
                {
                    MaxSummaryOfWidthAndHeight = int.Parse(maxSummaryOfWidthAndHeight);
                }
            }
            var path    = SaveFiles(model);
            var content = new Content()
            {
                CID       = model.CID,
                Author    = model.Author.BuildUpAuthorText(),
                Describer = _Extentions.RemoveUnwantedTags(model.HTMLBody, 150).Trim(),
                Header    = model.Header ?? "İçerik Başlığı",
                ImageFile = "header" + Path.GetExtension(model.ImageFile.FileName),
                On        = model.AddedOn,
                Path      = path,
                Tags      = model.Tags.CheckForTags(),
                HtmlFile  = "Index.html"//If you want to change Index.html rendering start changing this.
            };

            CreateMeta(path, content);
            try
            {
                using (var dbContext = new EF_CONTEXT())
                {
                    dbContext.Contents.Add(content);
                    dbContext.SaveChanges();
                }
                TempData["Message"] = "İçerik Yaratıldı!";
                TempData["Content"] = content;
            }
            catch (Exception e)
            {
                TempData["Message"] = "Hata Oluştu! Teknik Bilgi: " + e.Message;
                DeleteFiles(path);
            }
            return(RedirectToAction("Index", "Enter"));
        }
        private int RecoverFromBackup(string destination, bool wipeDBFirst)
        {
            int total = 0;

            using (var db = new EF_CONTEXT())
            {
                if (wipeDBFirst)
                {
                    db.Contents.RemoveRange(db.Contents);
                    total = db.SaveChanges();
                }

                //var normalDbDir = _Extentions.GetDatabaseDir()
                //                    .Replace(_Extentions.GetRootDirectory(), "");
                //var backedUpDatabaseDir = destination + "\\" + normalDbDir;
                var backedUpContext = new YALANCI_CONTEXT(destination);
                foreach (var item in backedUpContext.Contents())
                {
                    if (db.Contents.Any(c => c.CID == item.CID))
                    {
                        continue;
                    }
                    total++;
                    if (item.Path.Replace(_Extentions.GetRootDirectory(), "").Length >= item.Path.Length)
                    {
                        var articles = item.Path.Split(new string[] { "articles" }, StringSplitOptions.None);
                        var tailing  = articles[1];
                        item.Path = _Extentions.ArticleRootPath() + tailing;
                    }
                    db.Contents.Add(item);
                    var relative = item.GenerateRelativePathIndependently();
                    Directory.CreateDirectory(_Extentions.ArticleRootPath() + "\\" + relative);
                    var target = destination + "\\articles\\" + relative;
                    foreach (var filePath in Directory.GetFiles(target))
                    {
                        var fileName = System.IO.Path.GetFileName(filePath);
                        var destFile = _Extentions.ArticleRootPath() + "" + relative;
                        destFile = System.IO.Path.Combine(destFile, fileName);

                        System.IO.File.Copy(filePath, destFile, true);
                    }
                }

                db.SaveChanges();
            }
            System.IO.Directory.Delete(destination, true);
            return(total);
        }
        public ActionResult Change(string setting, string value)
        {
            SettingsENUM @enum;
            var          parsed = Enum.TryParse <SettingsENUM>(setting, out @enum);

            if (!parsed)
            {
                return(HttpNotFound());
            }

            using (var db = new EF_CONTEXT())
            {
                var ss = db.SiteSettings.FirstOrDefault(s => s.ENUM == setting);
                ss.Value = value;
                db.SaveChanges();
            }

            return(RedirectToAction("Site"));
        }
        public ActionResult ChangeUserPassword(int id, string changedPassword)
        {
            string username;

            using (var db = new EF_CONTEXT())
            {
                var user = db.Users.First(u => u.Id == id);
                if (user == null)
                {
                    TempData["Error"] = "Kullanıcı Bulunamadı!";
                    return(RedirectToAction("Users", "Settings"));
                }
                user.Password = _Extentions.CreateMD5(changedPassword);
                db.Users.Remove(user);
                db.Users.Add(user);
                db.SaveChanges();
                username = user.Username;
            }
            TempData["Message"] = "Kullanıcı [" + username + "] Parolası değiştirildi! ";
            return(RedirectToAction("Users", "Settings"));
        }
        public ActionResult ResetDatabaseAndDeleteFolders()
        {
            int total = 0;

            using (var db = new EF_CONTEXT())
            {
                db.Contents.RemoveRange(db.Contents);
                total = db.SaveChanges();
            }
            if (Directory.Exists(_Extentions.EditorialRootPath()))
            {
                Directory.Delete(_Extentions.EditorialRootPath(), true);
            }
            if (Directory.Exists(_Extentions.EventsRootPath()))
            {
                Directory.Delete(_Extentions.EventsRootPath(), true);
            }
            _Extentions.CreateRootPaths();

            TempData["Result"] = "Toplam " + total + " içerik ve dosyaları veritabanından silindi!";
            return(RedirectToAction("Database"));
        }
Beispiel #17
0
        public ActionResult ReadArticle(string id)
        {
            Content content;

            using (var dbContext = new EF_CONTEXT())
            {
                content = dbContext.Contents.FirstOrDefault(i => i.CID == id);

                if (!_Extentions.IsIdSafe(id)
                    ||
                    !Directory.Exists(_Extentions.Locate(id))
                    ||
                    content == null)
                {
                    return(HttpNotFound());
                }
            }//sanity check



            return(View(content));
        }
 public YALANCI_CONTEXT(EF_CONTEXT db, ZipArchive zip)
 {
     Db  = db;
     Zip = zip;
 }
        MemoryStream GenerateBackup(
            DateTime?until  = null,
            bool deleteFile = false
            )
        {
            if (until == null)
            {
                until = DateTime.Now;
            }


            var zipStream = new MemoryStream();

            using (ZipArchive zip = new ZipArchive(zipStream, ZipArchiveMode.Create, true))
            {
                BackupUntil(until, _Extentions.ArticleRootPath(), zip, deleteFile);

                BackupDBasCSV(zip);
                //var dbRoot = _Extentions.GetDatabaseDir();
                //var toBeReplaced = _Extentions.GetRootDirectory();
                //var dbEntry = zip.CreateEntry(dbRoot.Replace(toBeReplaced + "\\", ""));

                //using (var wr = new BinaryWriter(dbEntry.Open()))
                //{
                //    var bytes = System.IO.File.ReadAllBytes(_Extentions.GetDatabaseDir());
                //    wr.Write(bytes);
                //    wr.Flush();
                //    wr.Close();
                //}

                //if (includeStaticHTMLFiles)
                //{
                //    foreach (var item in Directory.EnumerateDirectories(_Extentions.PagesRootPath()))
                //    {
                //        var entry = zip.CreateEntry(item.Replace(toBeReplaced + "\\", ""));
                //        using (var wr = new BinaryWriter(entry.Open()))
                //        {
                //            var bytes = System.IO.File.ReadAllBytes(item);
                //            wr.Write(bytes);
                //            wr.Flush();
                //            wr.Close();
                //        }
                //    }
                //}

                if (deleteFile)
                {
                    Directory.Delete(_Extentions.EventsRootPath(), true);
                    Directory.Delete(_Extentions.EditorialRootPath(), true);
                    try
                    {
                        using (var db = new EF_CONTEXT())
                        {
                            db.Contents.RemoveRange(db.Contents);
                            db.SaveChanges();
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }

            return(zipStream);
        }