Ejemplo n.º 1
0
        public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await UserManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                // Не показывать, что пользователь не существует
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }
            var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);

            if (result.Succeeded)
            {
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }
            AddErrors(result);
            return(View());
        }
Ejemplo n.º 2
0
        //
        // GET: /Search/

        public ActionResult Index()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            string title = Request.QueryString["title"];

            ViewBag.Title = title;

            int Page = 0;

            Int32.TryParse(Request.QueryString["page"], out Page);

            string author = Request.QueryString["author"];

            ViewBag.Author = author;

            string description = Request.QueryString["description"];

            ViewBag.Description = description;

            int GenreID = 0;

            Int32.TryParse(Request.QueryString["genreId"], out GenreID);
            ViewBag.GenreID = GenreID;

            ViewBag.CurPage = Page;
            ViewBag.MaxPage = MirKnigEntities.GetFindMaxPage(Page, title, author, description, GenreID).First().Value;

            var model = MirKnigEntities.FindBook(Page, title, author, description, GenreID).ToList();

            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult ForgotPassword()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return(View());
        }
Ejemplo n.º 4
0
        public ActionResult ResetPassword(string code)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return(code == null?View("Error") : View());
        }
Ejemplo n.º 5
0
        public ActionResult ResetPasswordConfirmation()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return(View());
        }
Ejemplo n.º 6
0
        public ActionResult Register()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return(View());
        }
Ejemplo n.º 7
0
        public ActionResult Login(string returnUrl)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            ViewBag.ReturnUrl = returnUrl;
            return View();
        }
Ejemplo n.º 8
0
        public ActionResult Login(string returnUrl)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            ViewBag.ReturnUrl = returnUrl;
            return(View());
        }
Ejemplo n.º 9
0
        public async Task <ActionResult> VerifyCode(string provider, string returnUrl, bool rememberMe)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            // Требовать предварительный вход пользователя с помощью имени пользователя и пароля или внешнего имени входа
            if (!await SignInManager.HasBeenVerifiedAsync())
            {
                return(View("Error"));
            }
            return(View(new VerifyCodeViewModel {
                Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe
            }));
        }
Ejemplo n.º 10
0
        public ActionResult Index()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            int id;

            if (!int.TryParse(Request.Params["BookId"], out id))
            {
                return(RedirectToAction("Index", "Genre"));
            }

            @User.Identity.GetUserId();

            MirKnigEntities.AddComment(id, @User.Identity.GetUserId(), Request.Params["comment"]);
            MirKnigEntities.SaveChanges();
            return(RedirectToAction("Index", "Book", new { bookid = id }));
        }
Ejemplo n.º 11
0
        //
        // GET: /Genre/

        public ActionResult Index(int?genreid, int?page)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            int Page    = (page == null) ? 0 : page.Value;
            int GenreId = (genreid == null) ? 0 : genreid.Value;

            var model = MirKnigEntities.GetBookPage(Page, GenreId);

            ViewBag.CurPage = Page;
            ViewBag.MaxPage = MirKnigEntities.GetMaxPage(GenreId).First().Value;

            ViewBag.GenreId = GenreId;
            ViewBag.Title   = "Mirknig 150 000 книг в бесплатном онлайн чтении.";

            return(View(model));
        }
Ejemplo n.º 12
0
        public async Task <ActionResult> ExternalLoginCallback(string returnUrl)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("Login"));
            }

            // Выполнение входа пользователя посредством данного внешнего поставщика входа, если у пользователя уже есть имя входа
            var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent : false);

            switch (result)
            {
            case SignInStatus.Success:
                return(RedirectToLocal(returnUrl));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }));

            case SignInStatus.Failure:
            default:
                // Если у пользователя нет учетной записи, то ему предлагается создать ее
                ViewBag.ReturnUrl     = returnUrl;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                return(View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel {
                    Email = loginInfo.Email
                }));
            }
        }
Ejemplo n.º 13
0
        public ActionResult Index(int bookid)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            var data = MirKnigEntities.GetBookById(bookid);

            if (data.Count() == 0)
            {
                return(RedirectToAction("Index", "Genre"));
            }


            var model = MirKnigEntities.GetBookById(bookid).First();

            ViewBag.GenreId = model.GenreID;
            ViewBag.Title   = model.Title;

            ViewBag.Comments = MirKnigEntities.GetComment(bookid);


            return(View(model));
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            HtmlWeb webGet = new HtmlWeb()
            {
                AutoDetectEncoding = false,
                OverrideEncoding = Encoding.GetEncoding(1251)
            };

            //HtmlDocument document = webGet.Load("http://mirknig.com/page/1000/");

            //название книги
            HtmlNode Header;
            string title;

            //Жанр книги
            HtmlNodeCollection Genge;
            int genreID;

            //картинка
            HtmlNode ImgNode;
            string ImgSrc;

            //Аттрибуты книги
            HtmlNodeCollection BookAttrs;
            string bookattr;
            string bookattrval;

            HtmlNode DescNode;

            string author = "";
            string publisher = "";
            string year = "";
            int? pages = null;
            int languageId = 1;
            string description = "";

            //if (File.Exists("imgsrc.txt")) File.Delete("imgsrc.txt");
            StreamWriter Stream = File.AppendText("imgsrc.txt");

            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            for (int i = 200; i < 300; i++)
            {

                HtmlDocument document = webGet.Load("http://mirknig.com/page/" + i.ToString());

                //выбираем блоки с книгами
                HtmlNodeCollection NodeCollection = document.DocumentNode.SelectNodes("//div[@class='infoboxStory']");

                foreach (HtmlNode Node in NodeCollection)
                {

                    author = "";
                    publisher = "";
                    year = "";
                    pages = null;
                    languageId = 1;
                    description = "";

                    //Console.WriteLine(Node.InnerText);
                    Console.WriteLine("--------------------------"+i+"---------------------------------");

                    //получаем название книги
                    Header = Node.SelectSingleNode(".//div[@class='cellMiddleTitle']/a");
                    if (Header == null) continue;
                    title = Header.InnerText;

                    //получаем жанр
                    Genge = Node.SelectNodes(".//div[@class='cellRightTitle']/strong/a");
                    if (Genge[0].InnerText != "КНИГИ") continue;

                    genreID = GetGenreByName(Genge[1].InnerText);
                    //Console.WriteLine(genreID);

                    //адрес картинки
                    ImgNode = Node.SelectSingleNode(".//div[@class='newsbody']/a/img");
                    if (ImgNode == null) ImgNode = Node.SelectSingleNode(".//div[@class='newsbody']/img");
                    ImgSrc = ImgNode.Attributes.First(x => x.Name == "src").Value;
                    Stream.WriteLine(@"http://mirknig.com" + ImgSrc);
                    Stream.Flush();
                    ImgSrc = Path.GetFileName(ImgSrc);

                    Console.WriteLine(title);
                    Console.WriteLine(Genge[1].InnerText);
                    Console.WriteLine(ImgSrc);

                    //берем заголовки книги
                    BookAttrs = Node.SelectNodes(".//div[@class='newsbody']/b");
                    if (BookAttrs == null) continue;

                    foreach (HtmlNode Attr in BookAttrs)
                    {
                        bookattr = Attr.InnerText.Replace(':', ' ').Trim().ToLower();
                        bookattrval = Attr.NextSibling.InnerText.Trim();

                        if (bookattrval.Length > 0 && bookattrval[0] == ':') bookattrval = bookattrval.Substring(2);

                        if (bookattr == "автор") author = bookattrval;
                        if (bookattr == "издательство" || bookattr == "издатель") publisher = bookattrval;
                        if (bookattr == "год") year = bookattrval;
                        if (bookattr == "страниц")
                        {
                            int page;
                            if (int.TryParse(bookattrval, out page)) pages = page;
                        }
                        if (bookattr == "язык" && bookattrval == "English") languageId = 2;

                    }

                    //анатация
                    DescNode = Node.SelectSingleNode(".//div[@class='newsbody']");

                    for (int j = DescNode.ChildNodes.Count - 1; j >= 0; j--)
                    {
                        if (DescNode.ChildNodes[j].InnerText.Length > 20)
                        {
                            description = DescNode.ChildNodes[j].InnerText.Trim();
                            break;
                        }
                    }

                    MirKnigEntities.Book.Add(new Book()
                    {
                        Description = description,
                        Author = author,
                        Title = title,
                        Year = year,
                        Publisher = publisher,
                        GenreID = genreID,
                        LanguageID = languageId,
                        Pages = pages,
                        CoverFileName = ImgSrc
                    });
                    MirKnigEntities.SaveChanges();

                }

            }
            Stream.Close();
            Console.ReadLine();
        }
Ejemplo n.º 15
0
        public ActionResult ForgotPassword()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return View();
        }
Ejemplo n.º 16
0
        public ActionResult ResetPassword(string code)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return code == null ? View("Error") : View();
        }
Ejemplo n.º 17
0
        public ActionResult Register()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return View();
        }
Ejemplo n.º 18
0
        public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
            if (loginInfo == null)
            {
                return RedirectToAction("Login");
            }

            // Выполнение входа пользователя посредством данного внешнего поставщика входа, если у пользователя уже есть имя входа
            var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
                case SignInStatus.Failure:
                default:
                    // Если у пользователя нет учетной записи, то ему предлагается создать ее
                    ViewBag.ReturnUrl = returnUrl;
                    ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                    return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email });
            }
        }
Ejemplo n.º 19
0
        public ActionResult ResetPasswordConfirmation()
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            return View();
        }
Ejemplo n.º 20
0
        public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            if (!ModelState.IsValid)
            {
                return View(model);
            }
            var user = await UserManager.FindByNameAsync(model.Email);
            if (user == null)
            {
                // Не показывать, что пользователь не существует
                return RedirectToAction("ResetPasswordConfirmation", "Account");
            }
            var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
            if (result.Succeeded)
            {
                return RedirectToAction("ResetPasswordConfirmation", "Account");
            }
            AddErrors(result);
            return View();
        }
Ejemplo n.º 21
0
        static void Main(string[] args)
        {
            HtmlWeb webGet = new HtmlWeb()
            {
                AutoDetectEncoding = false,
                OverrideEncoding   = Encoding.GetEncoding(1251)
            };

            //HtmlDocument document = webGet.Load("http://mirknig.com/page/1000/");

            //название книги
            HtmlNode Header;
            string   title;

            //Жанр книги
            HtmlNodeCollection Genge;
            int genreID;

            //картинка
            HtmlNode ImgNode;
            string   ImgSrc;


            //Аттрибуты книги
            HtmlNodeCollection BookAttrs;
            string             bookattr;
            string             bookattrval;


            HtmlNode DescNode;

            string author      = "";
            string publisher   = "";
            string year        = "";
            int?   pages       = null;
            int    languageId  = 1;
            string description = "";

            //if (File.Exists("imgsrc.txt")) File.Delete("imgsrc.txt");
            StreamWriter Stream = File.AppendText("imgsrc.txt");

            MirKnigEntities MirKnigEntities = new MirKnigEntities();

            for (int i = 200; i < 300; i++)
            {
                HtmlDocument document = webGet.Load("http://mirknig.com/page/" + i.ToString());


                //выбираем блоки с книгами
                HtmlNodeCollection NodeCollection = document.DocumentNode.SelectNodes("//div[@class='infoboxStory']");

                foreach (HtmlNode Node in NodeCollection)
                {
                    author      = "";
                    publisher   = "";
                    year        = "";
                    pages       = null;
                    languageId  = 1;
                    description = "";

                    //Console.WriteLine(Node.InnerText);
                    Console.WriteLine("--------------------------" + i + "---------------------------------");



                    //получаем название книги
                    Header = Node.SelectSingleNode(".//div[@class='cellMiddleTitle']/a");
                    if (Header == null)
                    {
                        continue;
                    }
                    title = Header.InnerText;


                    //получаем жанр
                    Genge = Node.SelectNodes(".//div[@class='cellRightTitle']/strong/a");
                    if (Genge[0].InnerText != "КНИГИ")
                    {
                        continue;
                    }

                    genreID = GetGenreByName(Genge[1].InnerText);
                    //Console.WriteLine(genreID);



                    //адрес картинки
                    ImgNode = Node.SelectSingleNode(".//div[@class='newsbody']/a/img");
                    if (ImgNode == null)
                    {
                        ImgNode = Node.SelectSingleNode(".//div[@class='newsbody']/img");
                    }
                    ImgSrc = ImgNode.Attributes.First(x => x.Name == "src").Value;
                    Stream.WriteLine(@"http://mirknig.com" + ImgSrc);
                    Stream.Flush();
                    ImgSrc = Path.GetFileName(ImgSrc);

                    Console.WriteLine(title);
                    Console.WriteLine(Genge[1].InnerText);
                    Console.WriteLine(ImgSrc);


                    //берем заголовки книги
                    BookAttrs = Node.SelectNodes(".//div[@class='newsbody']/b");
                    if (BookAttrs == null)
                    {
                        continue;
                    }

                    foreach (HtmlNode Attr in BookAttrs)
                    {
                        bookattr    = Attr.InnerText.Replace(':', ' ').Trim().ToLower();
                        bookattrval = Attr.NextSibling.InnerText.Trim();

                        if (bookattrval.Length > 0 && bookattrval[0] == ':')
                        {
                            bookattrval = bookattrval.Substring(2);
                        }

                        if (bookattr == "автор")
                        {
                            author = bookattrval;
                        }
                        if (bookattr == "издательство" || bookattr == "издатель")
                        {
                            publisher = bookattrval;
                        }
                        if (bookattr == "год")
                        {
                            year = bookattrval;
                        }
                        if (bookattr == "страниц")
                        {
                            int page;
                            if (int.TryParse(bookattrval, out page))
                            {
                                pages = page;
                            }
                        }
                        if (bookattr == "язык" && bookattrval == "English")
                        {
                            languageId = 2;
                        }
                    }


                    //анатация
                    DescNode = Node.SelectSingleNode(".//div[@class='newsbody']");

                    for (int j = DescNode.ChildNodes.Count - 1; j >= 0; j--)
                    {
                        if (DescNode.ChildNodes[j].InnerText.Length > 20)
                        {
                            description = DescNode.ChildNodes[j].InnerText.Trim();
                            break;
                        }
                    }

                    MirKnigEntities.Book.Add(new Book()
                    {
                        Description   = description,
                        Author        = author,
                        Title         = title,
                        Year          = year,
                        Publisher     = publisher,
                        GenreID       = genreID,
                        LanguageID    = languageId,
                        Pages         = pages,
                        CoverFileName = ImgSrc
                    });
                    MirKnigEntities.SaveChanges();
                }
            }
            Stream.Close();
            Console.ReadLine();
        }
Ejemplo n.º 22
0
        public async Task<ActionResult> VerifyCode(string provider, string returnUrl, bool rememberMe)
        {
            MirKnigEntities MirKnigEntities = new MirKnigEntities();
            ViewBag.Genre = MirKnigEntities.Genre.ToList();

            // Требовать предварительный вход пользователя с помощью имени пользователя и пароля или внешнего имени входа
            if (!await SignInManager.HasBeenVerifiedAsync())
            {
                return View("Error");
            }
            return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe });
        }