Beispiel #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            publications publications = db.publications.Find(id);

            db.publications.Remove(publications);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #2
0
 public ActionResult Edit([Bind(Include = "id,name,text,rating,date,user,theme")] publications publications)
 {
     if (ModelState.IsValid)
     {
         db.Entry(publications).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.theme = new SelectList(db.themes, "id", "name", publications.theme);
     ViewBag.user  = new SelectList(db.users, "id", "name", publications.user);
     return(View(publications));
 }
Beispiel #3
0
        public ActionResult AddNew([Bind(Include = "id,name,text,rating,date,user,theme")] publications publications, int?id)
        {
            if (ModelState.IsValid)
            {
                db.publications.Add(publications);
                db.SaveChanges();
                return(RedirectToAction("Index", "themes"));
            }

            ViewBag.theme = id;
            ViewBag.user  = db.users.Where(u => u.name == HttpContext.User.Identity.Name).ToList()[0].id;
            return(View(publications));
        }
        // GET: Publications/Edit/5
        public ActionResult Edit(int?id)
        {
            string localMessage = "Произошла непредвиденная ошибка.";

            if (id != null)
            {
                publications targetPublication = db.publications.Find(id);
                if (targetPublication != null)
                {
                    return(RedirectToAction("/Index", new { i = 1, id = id, update = true }));
                }
            }
            return(RedirectToAction("/Index", new { i = 1, message = localMessage }));
        }
Beispiel #5
0
        // GET: publications/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            publications publications = db.publications.Find(id);

            if (publications == null)
            {
                return(HttpNotFound());
            }
            return(View(publications));
        }
Beispiel #6
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            publications publications = db.publications.Find(id);

            if (publications == null)
            {
                return(HttpNotFound());
            }
            ViewBag.theme = new SelectList(db.themes, "id", "name", publications.theme);
            ViewBag.user  = new SelectList(db.users, "id", "name", publications.user);
            return(View(publications));
        }
        public ActionResult CreatePS(string Sources, string Publications)
        {
            string localMessage = "Произошла ошибка или запись уже есть.";

            sources      a = db.sources.Where(x => x.item_title == Sources).FirstOrDefault();
            publications p = db.publications.Where(x => x.title == Publications).FirstOrDefault();

            if (a != null && p != null && !p.sources.Contains(a))
            {
                a.publications.Add(p);
                p.sources.Add(a);
                db.SaveChanges();
                localMessage = $"Связь между источником: {a.item_title} и публикацией: {p.title} успешно добавлена.";
            }
            return(RedirectToAction("/Index", new { message = localMessage }));
        }
        public ActionResult CreateAP(string Authors, string[] Publications)
        {
            string       localMessage  = "Произошла ошибка или запись уже есть.";
            string       Publications2 = Publications[0];
            authors      a             = db.authors.Where(x => x.initials == Authors).FirstOrDefault();
            publications p             = db.publications.Where(x => x.title == Publications2).FirstOrDefault();

            if (a != null && p != null && !p.authors.Contains(a))
            {
                a.publications.Add(p);
                p.authors.Add(a);
                db.SaveChanges();
                localMessage = $"Связь между автором: {a.initials} и публикацией: {p.title} успешно добавлена.";
            }
            return(RedirectToAction("/Index", new { message = localMessage }));
        }
        public ActionResult CreatePK(string Keywords, string Publications)
        {
            string localMessage = "Произошла ошибка или запись уже есть.";

            keywords     a = db.keywords.Where(x => x.keyword == Keywords).FirstOrDefault();
            publications p = db.publications.Where(x => x.title == Publications).FirstOrDefault();

            if (a != null && p != null && !p.keywords.Contains(a))
            {
                a.publications.Add(p);
                p.keywords.Add(a);
                db.SaveChanges();
                localMessage = $"Связь между словом: {a.keyword} и публикацией: {p.title} успешно добавлена.";
            }
            return(RedirectToAction("/Index", new { message = localMessage }));
        }
        // GET: Publications/Delete/5
        public ActionResult Delete(int?id)
        {
            string localMessage = null;

            if (id != null)
            {
                try
                {
                    publications targetPublication = db.publications.Find(id);
                    if (targetPublication != null)
                    {
                        db.publications.Remove(targetPublication);
                        db.SaveChanges();
                        localMessage = $"Запись {targetPublication.title} была успешно удалена.";
                        return(RedirectToAction("/Index", new { i = 1, message = localMessage }));
                    }
                }
                catch
                {
                }
            }
            localMessage = "Произошла непредвиденная ошибка.";
            return(RedirectToAction("/Index", new { i = 1, message = localMessage }));
        }
        public ActionResult Index(string searchText, string message, List <publications> list, int?i, bool update = false, int id = 0, int minYear = 1, int auNum = -1, string soString = "Empty", string typeString = "NoType", string word = "")
        {
            if (searchText != null)
            {
                searchText = searchText.ToLower();
            }
            ViewData["Titlesss"] = "";
            string messageType = null;

            if (update && db.publications.Count((a) => a.id == id) == 1)
            {
                publications targetPublication = db.publications.Find(id);
                if (targetPublication != null)
                {
                    ViewData["Titlesss"] = targetPublication.title;
                    ViewData["Year"]     = targetPublication.year;
                    ViewData["Update"]   = update;
                    ViewData["Id"]       = id;
                    var queryUnique = from pub in db.publications
                                      where pub.authors.Count != 0 && pub.sources.Count != 0 && pub.id == id
                                      orderby pub.title
                                      select new
                    {
                        Title   = pub.title,
                        Authors = from p in db.publications
                                  from author in p.authors
                                  where p.id == pub.id && p.authors.Count() != 0
                                  orderby author.initials
                                  select author.initials,
                        Sources = from p in db.publications
                                  from sourc in p.sources
                                  where p.id == pub.id && p.sources.Count() != 0
                                  orderby sourc.item_title
                                  select sourc.item_title,
                        Issue = from p in db.publications
                                from sourc in p.sources
                                where p.id == pub.id && p.sources.Count() != 0
                                orderby sourc.journal_issue
                                select sourc.journal_issue,
                        Volume = from p in db.publications
                                 from sourc in p.sources
                                 where p.id == pub.id && p.sources.Count() != 0
                                 orderby sourc.journal_volume
                                 select sourc.journal_volume,
                        Year  = pub.year,
                        Words = pub.keywords.Select(x => x.keyword)
                    };
                    DataTable result = LINQResultToDataTable(queryUnique);
                    ViewBag.QueryResult = result;
                }
            }
            if (message != null)
            {
                if (message == "Произошла ошибка или запись уже есть." || message == "Произошла непредвиденная ошибка." || message == "Произошла непредвиденная ошибка или такая публикация уже есть.")
                {
                    messageType = "danger";
                }
                else
                {
                    messageType = "success";
                }
                ViewData["messageType"] = messageType;
                ViewData["message"]     = message;
            }
            var authors = from au in db.authors
                          orderby au.initials
                          select au.initials;

            ViewBag.authors = authors;
            var source = from s in db.sources
                         orderby s.item_title
                         select s.item_title;

            ViewBag.source = source;
            var type = from t in db.types
                       orderby t.type_name
                       select t.type_name;

            ViewBag.type = type;

            return(View((db.publications.Where(publications => (publications.title.ToLower().Contains(searchText) || searchText == null) && (publications.year == minYear || minYear == 1) && (publications.authors.Count() == auNum || auNum == -1)).OrderBy(x => x.title).ToList().ToPagedList(i ?? 1, 10))));
        }
        public ActionResult Update(string titleInput, int idInput, int yearInput, string[] Authors, string Words, string Source, string Type, int issueInput = 0, int volumeInput = 0)
        {
            List <int> authorId = GetAuthors(Authors);

            string[] words        = GetKeywords(Words);
            string   localMessage = "Произошла непредвиденная ошибка или такая публикация уже есть.";

            try
            {
                if (ModelState.IsValid && db.publications.Count((a) => a.id == idInput) == 1 && db.publications.Count((a) => (a.title == titleInput) && (a.year == yearInput)) == 0)
                {
                    publications targetPublication = db.publications.Find(idInput);
                    localMessage            = $"Запись {targetPublication.title} успешно изменена на {titleInput}.";
                    targetPublication.title = titleInput;
                    targetPublication.year  = Convert.ToInt16(yearInput);

                    foreach (authors au in targetPublication.authors)
                    {
                        au.publications.Remove(targetPublication);
                    }
                    targetPublication.authors.Clear();
                    foreach (int authorid in authorId)
                    {
                        authors a = db.authors.Find(authorid);
                        if (a != null)
                        {
                            targetPublication.authors.Add(a);
                            a.publications.Add(targetPublication);
                        }
                    }
                    foreach (keywords kw in targetPublication.keywords)
                    {
                        kw.publications.Remove(targetPublication);
                    }
                    targetPublication.keywords.Clear();
                    foreach (string keyword in words)
                    {
                        keywords k = db.keywords.Where(x => x.keyword == keyword).FirstOrDefault();
                        if (k == null)
                        {
                            int k_id = db.keywords.Count();
                            while (db.keywords.Count((a) => a.id == k_id) == 1)
                            {
                                k_id++;
                            }
                            k         = new keywords();
                            k.id      = k_id;
                            k.keyword = keyword;
                            db.keywords.Add(k);
                            db.SaveChanges();
                        }
                        targetPublication.keywords.Add(k);
                        k.publications.Add(targetPublication);
                    }
                    foreach (sources so in targetPublication.sources)
                    {
                        so.publications.Remove(targetPublication);
                    }
                    targetPublication.sources.Clear();
                    sources s = db.sources.Where(x => x.item_title == Source).FirstOrDefault();
                    if (s != null)
                    {
                        targetPublication.sources.Add(s);
                        if (issueInput > 0 && volumeInput > 0)
                        {
                            s.journal_issue  = issueInput;
                            s.journal_volume = volumeInput;
                        }
                        else
                        {
                            s.journal_issue  = null;
                            s.journal_volume = null;
                        }
                        s.publications.Add(targetPublication);
                    }
                    foreach (types ty in targetPublication.types)
                    {
                        ty.publications.Remove(targetPublication);
                    }
                    targetPublication.types.Clear();
                    types t = db.types.Where(x => x.type_name == Type).FirstOrDefault();
                    if (t != null)
                    {
                        targetPublication.types.Add(t);
                        t.publications.Add(targetPublication);
                    }

                    db.Entry(targetPublication).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            catch
            {
            }
            return(RedirectToAction("/Index", new { i = 1, message = localMessage }));
        }
        public ActionResult Create(string titleInput, int yearInput, string[] Authors, string Words, string Source, string Type, int issueInput = 0, int volumeInput = 0)
        {
            string     localMessage = "Произошла ошибка или запись уже есть.";
            List <int> authorId     = GetAuthors(Authors);

            string[] words = GetKeywords(Words);

            try
            {
                if (ModelState.IsValid && db.publications.Count((a) => a.title == titleInput) == 0 && authorId.Count != 0)
                {
                    int current_id = db.publications.Count();
                    while (db.publications.Count((a) => a.id == current_id) == 1)
                    {
                        current_id++;
                    }
                    publications newPublication = new publications();

                    newPublication.id    = current_id;
                    newPublication.title = titleInput;
                    newPublication.year  = Convert.ToInt16(yearInput);
                    foreach (int authorid in authorId)
                    {
                        authors a = db.authors.Find(authorid);
                        if (a != null)
                        {
                            newPublication.authors.Add(a);
                            a.publications.Add(newPublication);
                        }
                    }
                    foreach (string keyword in words)
                    {
                        keywords k = db.keywords.Where(x => x.keyword == keyword).FirstOrDefault();
                        if (k == null)
                        {
                            int k_id = db.keywords.Count();
                            while (db.keywords.Count((a) => a.id == k_id) == 1)
                            {
                                k_id++;
                            }
                            k         = new keywords();
                            k.id      = k_id;
                            k.keyword = keyword;
                            db.keywords.Add(k);
                            db.SaveChanges();
                        }
                        newPublication.keywords.Add(k);
                        k.publications.Add(newPublication);
                    }
                    sources s = db.sources.Where(x => x.item_title == Source).FirstOrDefault();
                    if (s != null)
                    {
                        newPublication.sources.Add(s);
                        if (issueInput > 0 && volumeInput > 0)
                        {
                            s.journal_issue  = issueInput;
                            s.journal_volume = volumeInput;
                        }
                        else
                        {
                            s.journal_issue  = null;
                            s.journal_volume = null;
                        }
                        s.publications.Add(newPublication);
                    }
                    types t = db.types.Where(x => x.type_name == Type).FirstOrDefault();
                    if (t != null)
                    {
                        newPublication.types.Add(t);
                        t.publications.Add(newPublication);
                    }

                    db.publications.Add(newPublication);
                    db.SaveChanges();
                    localMessage = $"Запись {titleInput} успешно добавлена.";
                }
            }
            catch
            {
            }
            return(RedirectToAction("/Index", new { i = 1, message = localMessage }));
        }