Exemple #1
0
        public async Task <string> deleteUser(string name)
        {
            User obj = (User)await VirtualBD.GetFromVirtualDBAsync(name);

            if (obj != null)
            {
                await Task.Run(() =>
                {
                    if (User.IsInRole(Role.Admin) || User.Identity.Name == obj.Name)
                    {
                        try
                        {
                            if (System.IO.File.Exists(_appEnvironment.WebRootPath + obj.Image))
                            {
                                System.IO.File.Delete(_appEnvironment.WebRootPath + obj.Image);
                            }
                            VirtualBD.Users.Remove(obj);
                            db.Users.Remove(obj);
                            db.SaveChangesAsync();
                        }
                        catch (Exception e)
                        {
                            _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message);
                        }
                    }
                });
            }
            return($"{obj.Email} успешно удален!");
        }
Exemple #2
0
        public async Task <string> Register(AuthorizationModel model)
        {
            User user = (User)await VirtualBD.GetFromVirtualDBAsync(model.Email);

            if (user == null)
            {
                user = new User {
                    Email = model?.Email ?? "Error", Password = model?.Password ?? "Error"
                };

                if (model.Email == null || model.Password == null)
                {
                    _logger.LogError("LogWarning {0}", DateTime.Now.ToString() + "==> Column Email or Password is empty!");
                }

                user.Role         = Role.User;
                user.RegisterData = DateTime.Now.ToString();
                user.Sex          = 0;
                user.BD           = "Неуказан";

                user.Name = model?.Name;

                if (model.uploadedFile != null)
                {
                    string patch = "/UserIcon/" + model.uploadedFile.FileName;
                    templateMetod.UploadFileAsync(patch, model.uploadedFile, _appEnvironment);
                    user.Image = patch;
                }
                else
                {
                    user.Image = "/UserDefIcon.jpg";
                }
                try
                {
                    db.Users.Add(user);
                    await db.SaveChangesAsync();

                    VirtualBD.Users.Add(user);

                    await Authenticate(user);
                }
                catch (Exception e)
                {
                    _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message);
                }
                templateMetod.newEvent(db, $"Зареестрирован пользователь:{model.Email}", model.Email, $"{model.Name}", "");

                return("OK");
            }
            else
            {
                return("Пользователь существует");
            }
        }
Exemple #3
0
        public async Task <string> AddArticle(AddArticleModel model)
        {
            var user = (User)await VirtualBD.GetFromVirtualDBAsync(User.Identity.Name);

            try
            {
                ArticleModel article = new ArticleModel();
                article.Header  = model.header;
                article.Name    = user.Name;
                article.Creator = user.Email;
                article.Viev    = 0;
                article.Type    = model.Type;
                article.Time    = DateTime.Now.ToString();
                article.Text   += $"<div class=\"row\"> <div class=\"col\">{templateMetod.Translete(model.Type)}</div> </div>";
                article.Text   += $"<div class=\"row\"> <div class=\"col\">{model.Adress} </div> </div>";
                article.Text   += model.text;

                if (model.uploadedFile != null)
                {
                    if (await templateMetod.UploadFileAsync("/Img/ArticlesImg/" + model.uploadedFile.FileName, model.uploadedFile, _appEnvironment))
                    {
                        article.Image = "/Img/ArticlesImg/" + model.uploadedFile.FileName;
                        templateMetod.CreateMinVersion(article.Image, "/Img/ArticleMinImg/" + model.uploadedFile.FileName, _appEnvironment);
                        article.ImageMin = "/Img/ArticleMinImg/" + model.uploadedFile.FileName;
                    }
                }


                db.Articles.Add(article);
                await db.SaveChangesAsync();

                VirtualBD.Articles.Add(article);
            }
            catch (Exception e)
            {
                _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message);
            }

            templateMetod.newEvent(db, "Добавленна статья", user.Email, user.Name, $"добавил статью:{model.header}");

            return("/Home/Index");
        }
Exemple #4
0
        public async Task <string> Login(AuthorizationModel model)
        {
            User user = (User)await VirtualBD.GetFromVirtualDBAsync(model.Email);

            if (user != null)
            {
                if (user.Password == model.Password)
                {
                    await Authenticate(user);

                    return("OK");
                }
                for (int i = 0; i < BlackList.list.Count; i++)
                {
                    if (BlackList.list[i].User == model.Email)
                    {
                        if (BlackList.list[i].Try < 5)
                        {
                            BlackList.list[i].Try++;
                        }
                        else
                        {
                            BlackList.list[i].IP   = HttpContext.Connection.RemoteIpAddress.ToString();
                            BlackList.list[i].Time = DateTime.Now;
                        }
                    }
                }
                if (!BlackList.list.Exists(x => x.User == model.Email))
                {
                    BlackList.list.Add(new BlackListModel {
                        Try = 1, User = model.Email
                    });
                }

                return("Не верный логин или пароль!");
            }
            else
            {
                return("Пользователь не найден!");
            }
        }
Exemple #5
0
        //UserProfil
        public async Task <IActionResult> UserProfil(string name)
        {
            if (name != null)
            {
                User user = (User)await VirtualBD.GetFromVirtualDBAsync(name);

                if (user != null)
                {
                    if (name != User.Identity.Name)
                    {
                        user.Role = Role.Guest;
                    }
                    return(View(user));
                }
                else
                {
                    return(RedirectToAction("Error", "Home"));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
Exemple #6
0
        public async Task <IActionResult> Article(int id)
        {
            ArticleModel model = (ArticleModel)await VirtualBD.GetFromVirtualDBAsync(id, "Article");

            if (model == null)
            {
                return(RedirectToAction("Error", "Home"));
            }

            model.Viev++;
            try
            {
                db.Articles.Update(model);
                await db.SaveChangesAsync();

                VirtualBD.UpdateInVirtualDBAsync(model);
            }

            catch (Exception e)
            {
                _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message);
            }
            return(View(model));
        }
Exemple #7
0
        public async Task <IActionResult> UserProfil(UserProfilUpdate model)
        {
            if (User.Identity.IsAuthenticated)
            {
                User user = (User)await VirtualBD.GetFromVirtualDBAsync(User.Identity.Name);

                user.Name = model?.Name;

                if (model.Login != null)
                {
                    var obj = VirtualBD.Articles.FindAll(x => x.Creator == user.Email);
                    for (int i = 0; i < obj.Count; i++)
                    {
                        obj[i].Creator = model.Login; VirtualBD.UpdateInVirtualDBAsync(obj[i]); db.Articles.Update(obj[i]);
                    }


                    var obj2 = VirtualBD.Comments.FindAll(x => x.Creator == user.Email);
                    for (int i = 0; i < obj2.Count; i++)
                    {
                        obj2[i].Creator = model.Login; VirtualBD.UpdateInVirtualDBAsync(obj2[i]); db.Comments.Update(obj2[i]);
                    }

                    user.Email = model.Login;
                }

                user.Sex = model.Sex;

                user.BD = model?.BD;

                user.Password = user?.Password;

                if (model.uploadedFile != null)
                {
                    string patch = "/UserIcon/" + model.uploadedFile.FileName;
                    await templateMetod.UploadFileAsync(patch, model.uploadedFile, _appEnvironment);

                    user.Image = patch;
                }
                try
                {
                    db.Users.Update(user);
                    await db.SaveChangesAsync();

                    VirtualBD.UpdateInVirtualDBAsync(user);
                }
                catch (Exception e)
                {
                    _logger.LogError("LogError {0}", DateTime.Now.ToString() + "==>" + e.Message);
                }
                if (model.Login != null)
                {
                    return(RedirectToAction("Logout", "Account"));
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }