Пример #1
0
        public async static Task <BlogEditModel> MapToBlogPageModel(int id)
        {
            var model = new BlogEditModel();

            using (var db = new jsnoverdotnetdbContext())
            {
                var DBBlogList = await db.Blog.ToArrayAsync();

                var tempBlog    = DBBlogList.SingleOrDefault(blog => blog.Id == id);
                var DBPhotoList = await db.Photos.ToArrayAsync();

                var DBTagList = await db.Tag.ToArrayAsync();

                model.Blog.Id         = id;
                model.Blog.SubmitDate = tempBlog.SubmitDate;
                model.Blog.Title      = tempBlog.Title;
                model.Blog.Topic      = tempBlog.Topic;
                model.Blog.Body       = tempBlog.Body;
                model.Tags            = DBTagList.Where(tag => tag.BlogId == id).ToList();
                model.Photos          = DBPhotoList.Where(photo => photo.BlogId == id).ToList();
                model.Blog.Likes      = tempBlog.Likes;
                model.Blog.Views      = tempBlog.Views;
                model.Blog.Published  = tempBlog.Published;
            }
            return(model);
        }
Пример #2
0
        internal static async Task <bool> UpdateBlog(Blog[] blogs)
        {
            try
            {
                using var db = new jsnoverdotnetdbContext();
                db.Blog.Update(blogs[BlogIndexes.Blog]);
                await db.SaveChangesAsync();

                db.Photos.UpdateRange(blogs[BlogIndexes.Photos].Photos);
                await db.SaveChangesAsync();

                await db.Photos.AddRangeAsync(blogs[BlogIndexes.NewPhotos].Photos);

                await db.SaveChangesAsync();

                db.Photos.RemoveRange(blogs[BlogIndexes.RemovePhotos].Photos);
                await db.SaveChangesAsync();

                db.Tag.UpdateRange(blogs[BlogIndexes.Tags].Tag);
                await db.SaveChangesAsync();

                await db.Tag.AddRangeAsync(blogs[BlogIndexes.NewTags].Tag);

                await db.SaveChangesAsync();

                db.Tag.RemoveRange(blogs[BlogIndexes.RemoveTags].Tag);
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #3
0
        public static async Task <bool> SubmitBlog(Blog[] blogs)
        {
            try
            {
                using var db = new jsnoverdotnetdbContext();
                db.Blog.Add(blogs[BlogIndexes.Blog]);
                await db.SaveChangesAsync();

                blogs[BlogIndexes.Photos].Photos.ToList().ForEach(photo => photo.BlogId = blogs[BlogIndexes.Blog].Id);
                await db.Photos.AddRangeAsync(blogs[BlogIndexes.Photos].Photos);

                await db.SaveChangesAsync();

                var blogTags = blogs[BlogIndexes.Tags].Tag.ToList();
                for (int i = 0; i < blogs[BlogIndexes.Tags].Tag.Count; i++)
                {
                    await db.Tag.AddAsync(new Tag
                    {
                        Id     = 0,
                        BlogId = blogs[BlogIndexes.Blog].Id,
                        Name   = blogTags[i].Name
                    });
                }
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #4
0
        public async Task CountVisitor()
        {
            try
            {
                db = new jsnoverdotnetdbContext();
                var tempList  = db.VisitorCounter.ToArray();
                var tempCount = tempList.FirstOrDefault();
                tempCount.VisitorCount = tempCount?.VisitorCount + 1;
                db.VisitorCounter.Update(tempCount);
                await db.SaveChangesAsync();

                if (tempCount.VisitorCount % 100 == 0)
                {
                    var hundoCount = tempList.LastOrDefault();
                    db.VisitorCounter.Add(new VisitorCounter
                    {
                        Id                   = 0,
                        VisitorCount         = tempCount.VisitorCount,
                        VisitorCountHundreds = hundoCount.VisitorCountHundreds + 1,
                        VisitorDate          = DateTime.Now
                    });
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception)
            {
            }
        }
Пример #5
0
        private static async Task <List <BlogDisplayModel> > GetDataFromAzureSql()
        {
            db = new jsnoverdotnetdbContext();
            var blogList   = new List <BlogDisplayModel>();
            var DBBlogList = await db.Blog.ToArrayAsync();

            var DBPhotoList = await db.Photos.ToArrayAsync();

            var DBTagList = await db.Tag.ToArrayAsync();

            var DBCommentorList = await db.Commentors.ToArrayAsync();

            for (int i = 0; i < DBBlogList.Length; i++)
            {
                blogList.Add(new BlogDisplayModel()
                {
                    BlogId     = DBBlogList[i].Id,
                    Body       = DBBlogList[i].Body,
                    Title      = DBBlogList[i].Title,
                    Topic      = DBBlogList[i].Topic,
                    SubmitDate = DBBlogList[i].SubmitDate.Date,
                    EditDate   = DBBlogList[i].EditDate,
                    Tags       = DBTagList.Where(tag => tag.BlogId == DBBlogList[i].Id).ToList(),
                    Photos     = DBPhotoList.Where(photo => photo.BlogId == DBBlogList[i].Id).ToList(),
                    Commentors = DBCommentorList.Where(commentor => commentor.BlogId == DBBlogList[i].Id).ToList(),
                    Likes      = DBBlogList[i].Likes,
                    Views      = DBBlogList[i].Views,
                    Published  = DBBlogList[i].Published
                });
            }
            return(blogList);
        }
Пример #6
0
        public static async Task <bool> SubmitContactRequest(ContactRequest contactRequest)
        {
            try
            {
                using var db = new jsnoverdotnetdbContext();
                db.ContactRequest.Add(contactRequest);
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #7
0
        internal async static Task <bool> SubmitComment(Commentors commentors)
        {
            try
            {
                using var db = new jsnoverdotnetdbContext();
                var blog = db.Blog.First(b => b.Id == commentors.BlogId);
                db.Commentors.Add(commentors);
                if (commentors.Liked)
                {
                    blog.Likes = blog.Likes is null ? 1 : (blog.Likes++);
                    db.Blog.Update(blog);
                }
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #8
0
        internal async static Task <bool> AddSubscriber(string email)
        {
            try
            {
                using var db = new jsnoverdotnetdbContext();

                if (db.Subscribers.Where(sub => sub.Email == email).Count() == 0)
                {
                    db.Subscribers.Add(new Subscribers()
                    {
                        Id            = 0,
                        Email         = email,
                        SubscribeDate = DateTime.Now
                    });
                    await db.SaveChangesAsync();
                }
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Пример #9
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation($"{Input.Email} has been registered.");
                    try
                    {
                        var db = new jsnoverdotnetdbContext();
                        db.Owners.Add(new Owners {
                            Alias = Input.UserName, Email = Input.Email
                        });
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex.Message);
                        throw;
                    }

                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { area = "Identity", userId = user.Id, code = code },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }