Пример #1
0
 public ActionResult DelWall(int wallId)
 {
     UsersContext db = new UsersContext();
     Wall firstOrder = db.Walls
 .Where(o => o.Id == wallId)
 .FirstOrDefault();
     if (firstOrder != null)
         db.Walls.Remove(firstOrder);
     db.SaveChanges();
     return RedirectToAction("Index", "Home");
 }
Пример #2
0
 public ActionResult PostMessage(Message model, int UserGetId, string returnUrl)
 {
     UsersContext db = new UsersContext();           
     model.UserGet = db.UserProfiles.Find(UserGetId);
     model.UserPost = db.UserProfiles.Find(WebSecurity.CurrentUserId);
     model.Time = DateTime.Now;
     model.IsRead = false;
     // Обнуляем ID юзера, т.к. чудесным образом вместо модели получателя
     // в контроллер приходит ID получателя, причем он записывается в поле ID модели
     // чудеса да и только
     model.Id = 0;
     int CurrentUserPageId = model.UserGet.UserId;
     db.Messages.Add(model);
     db.SaveChanges();
     return Redirect(returnUrl);
     //Uri MyUrl = Request.UrlReferrer;
     //if (MyUrl.LocalPath == "/Message/Dialog")
     //    return RedirectToAction("Dialog", "Message", new { UserId = UserGetId });
     //else
     //    return RedirectToAction("Index", "Users", new { id = CurrentUserPageId });
     
 }
Пример #3
0
        public ActionResult Dialog (int UserId)
        {
            
            UsersContext db = new UsersContext();
            List<UserData> TempUserList = new List<UserData>();
            TempUserList = db.UsersData.ToList();
            for (int i = 0; i < TempUserList.Count; i++)
            {
                if (TempUserList[i].UserProfile.UserId == WebSecurity.CurrentUserId)
                {
                    ViewBag.currentUser = TempUserList[i];
                    break;
                }
            }

            List<Message> TempList = new List<Message>();
            TempList = db.Messages.ToList();
            List<Message> DialogList = new List<Message>();
            for (int i = TempList.Count -1 ; i >= 0; i--)
            {
                if ((TempList[i].UserGet.UserId == WebSecurity.CurrentUserId && TempList[i].UserPost.UserId == UserId) ||
                    (TempList[i].UserPost.UserId == WebSecurity.CurrentUserId && TempList[i].UserGet.UserId == UserId))
                    DialogList.Add(TempList[i]);
            }
      
            List<MessageModel> NewDialogList = new List<MessageModel>();
            for (int i = 0; i < DialogList.Count; i++)
            {
                UserData UserInfo = new UserData();
                MessageModel tempMessageModel = new MessageModel();
                tempMessageModel.Message = DialogList[i];
                if (DialogList[i].UserGet.UserId == WebSecurity.CurrentUserId)
                {
                    int FindUserId = (int)DialogList[i].UserPost.UserId;
                    UserInfo = db.UsersData
                        .Where(c => c.UserProfile.UserId == FindUserId)
                        .FirstOrDefault();
                    tempMessageModel.UserData = UserInfo;
                }
                if (DialogList[i].UserPost.UserId == WebSecurity.CurrentUserId)
                {
                    int FindUserId = (int)DialogList[i].UserGet.UserId;
                    UserInfo = db.UsersData
                        .Where(c => c.UserProfile.UserId == FindUserId)
                        .FirstOrDefault();
                    tempMessageModel.UserData = UserInfo;
                }
                ViewBag.UserGet = UserId;
                NewDialogList.Add(tempMessageModel);
            }
            // Если были нерпочитанные сообщения в диалоге, т опри открытии диалога меняем их статус
            for (int i = 0; i < NewDialogList.Count; i++)
            {
                if(NewDialogList[i].Message.IsRead == false && NewDialogList[i].Message.UserGet.UserId == WebSecurity.CurrentUserId)
                {
                    // создаем переменну _tempIndex и передаем ей id сообщения
                    // после чего используем ее в LINQ запросе
                    // Все это необходимо т.к. EntityFramework не поддерживает индексаторы
                    int _tempIndex = NewDialogList[i].Message.Id;
                    var EditStatus = db.Messages
                        .Where(w => w.Id == _tempIndex)
                        .FirstOrDefault();
                    EditStatus.IsRead = true;
                    NewDialogList[i].Message.IsRead = true;
                    db.SaveChanges();
                }

            }
            for (int i = 0; i < DialogList.Count; i++)
            {
                if (DialogList[i].IsRead == false && DialogList[i].UserGet.UserId == WebSecurity.CurrentUserId)
                {
                    int _tempIndex = DialogList[i].Id;
                    var EditStatus = db.Messages
                        .Where(w => w.Id == _tempIndex)
                        .FirstOrDefault();
                    EditStatus.IsRead = true;
                    db.SaveChanges();
                }
            }
            ViewBag.NotRead = HomeController.GetNotReadMessagesCount();
            return View(NewDialogList);
        }
Пример #4
0
        public ActionResult AddWall( Wall model,  HttpPostedFileBase upload)
        {
            UsersContext db = new UsersContext();
            if (upload != null)
            {
                // получаем имя файла
                string fileName = System.IO.Path.GetFileName(upload.FileName);
                // сохраняем файл в папку Files в проекте
                string Extention = System.IO.Path.GetExtension(upload.FileName);
                string NewFileName = Crypto.HashPassword(fileName);
                NewFileName = NewFileName.Remove(0, 20);
                NewFileName += Extention;
                NewFileName = NewFileName.Replace('/', 'w');
                NewFileName = NewFileName.Replace('\\', 'a');
                NewFileName = NewFileName.Replace('+', 'q');
                upload.SaveAs(Server.MapPath("~/WallsContent/" + NewFileName));
                model.ContentUrl = "/WallsContent/" + NewFileName;
            }
            model.ThisUser = db.UserProfiles.Find(WebSecurity.CurrentUserId);
            model.CreationDate = DateTime.Now;
            model.PostUser = db.UserProfiles.Find(WebSecurity.CurrentUserId);

            db.Walls.Add(model);
            
            db.SaveChanges();
            return RedirectToAction("Index", "Home");
        }
Пример #5
0
        public ActionResult AddFrends(int id)
        {
            UsersContext db = new UsersContext();
            List<UserData> TempList = new List<UserData>();
            TempList = db.UsersData.ToList();
            FrendsModel frend = new FrendsModel();
            frend.IsConfirm = false;
            frend.Time = DateTime.Now;

            for (int i = 0; i < TempList.Count; i++)
            {
                if (TempList[i].UserProfile.UserId == WebSecurity.CurrentUserId)
                {
                    frend.UserA = TempList[i];
                    
                }
                if (TempList[i].UserProfile.UserId == id)
                {
                    frend.UserB = TempList[i];
                }
            }
    
            
            db.Frends.Add(frend);
            db.SaveChanges();
            int CurrentId = id;
            
           // Url.Action
            return RedirectToAction("Index", "Users", new { id = CurrentId });
            //return View();
        }
Пример #6
0
 public ActionResult ConfirmRequest(int id)
 {
     UsersContext db = new UsersContext();
     var EditUser = db.Frends
     .Where(c => c.Id == id)
     .FirstOrDefault();
     EditUser.IsConfirm = true;
     db.SaveChanges();
     return RedirectToAction("RequestFrends");
 }
Пример #7
0
 public ActionResult Renouncement (int id)
 {
     UsersContext db = new UsersContext();
     //IQueryable<FrendsModel> ods = from o in db.Frends
     //                               where o.Id == id
     //                               select o;
     //db.DeleteObject(ods.First());
     FrendsModel RemoveFrendModel = db.Frends.Find(id);
     db.Frends.Remove(RemoveFrendModel);
     db.SaveChanges();
     return RedirectToAction("RequestFrends");
 }
Пример #8
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (UsersContext db = new UsersContext())
                {
                    UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
Пример #9
0
	// АКТИВАЦИЯ АККАУНТА ЕСЛИ ПОЛЬЗОВАТЕЛЬ ПЕРЕШЕЛ ПО ССЫЛКЕ
        public ActionResult ActivationAccount(string ActivatonCode)
        {
            UsersContext db = new UsersContext();
            EmailModel userEmail = new EmailModel();
            List<EmailModel> TempList = new List<EmailModel>();
            TempList = db.EmailModels.ToList();
            for (int i = 0; i < TempList.Count; i++)
            {
                if (ActivatonCode == TempList[i].Key && WebSecurity.CurrentUserId == TempList[i].UserProfile.UserId)
                {
                    userEmail = TempList[i];
                    var EditUser = db.EmailModels
                    .Where(c => c.Id == userEmail.Id)
                    .FirstOrDefault();
                    EditUser.IsConfirm = true;
                    db.SaveChanges();
                    break;
                }
            }
            ViewBag.EmailError = null;
            return RedirectToAction("Index", "Home");
        }
Пример #10
0
        public ActionResult Register(RegisterModel model)  // регистрация
        {
	// Всякие проверки
            if (model.ConfirmPassword == null || model.EmailAdres == null || model.Password == null || model.UserName == null)
            {
                ModelState.AddModelError("MyError", "Ошибка! Заполните все поля!");
                return View(model);
            }
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    if (model.EmailAdres.IndexOf('@') < 1)
                    {
                        ModelState.AddModelError("EmailAdres", "E-mail адрес введен не корректно");
                        return View(model);
                    }
                    List<int> qwe = new List<int>();
                    for (int i = 0; i < model.UserName.Length; i++)
                    {
                        qwe.Add((char)model.UserName[i]);
                    }
                    bool LoginValid = false;
                    for (int i = 0; i < model.UserName.Length; i++)
                    {
                        if (((int)model.UserName[i] > 47 && (int)model.UserName[i] < 58) ||
                            ((int)model.UserName[i] > 64 && (int)model.UserName[i] < 91) ||
                            ((int)model.UserName[i] > 96 && (int)model.UserName[i] < 123))
                            LoginValid = true;
                        else
                        {
                            ModelState.AddModelError("UserName", "Имя пользователя должно состоять из следущих символо: A-Z и 0-9");
                            return View(model);
                        }
                    }
                    if (LoginValid) 
                    {
                        model.UserName.ToLower();
                        model.EmailAdres.ToLower();
                        if (WebSecurity.UserExists(model.UserName))
                        {
                            ModelState.AddModelError("UserName", "Логин занят");
                            return View(model);
                        }
                        UsersContext db = new UsersContext();
                        List<EmailModel> emailCheck = new List<EmailModel>();
                        emailCheck = db.EmailModels.ToList();
                        for (int i = 0; i < emailCheck.Count; i++)
                        {
                            if (emailCheck[i].Email == model.EmailAdres)
                            {
                                ModelState.AddModelError("UserName", "Пользователь с таким e-mail уже существует");
                                return View(model);
                            }
                        }
			// ТУТ СОЗДАЕМ НОВОГО ПОЛЬЗОВАТЕЛЯ
                        WebSecurity.CreateUserAndAccount(model.UserName, model.Password);

			// сРАЗУЖЕ ЛОГИНИМСЯ

                        bool logged = WebSecurity.Login(model.UserName, model.Password);

                        if (logged)
                        {
                            //set auth cookie
                            FormsAuthentication.SetAuthCookie(model.UserName, false);
                        }
                        
                        UserProfile TempProfile = db.UserProfiles.Find(WebSecurity.GetUserId(model.UserName));
                        UserData CurrentUserDataModel = new UserData(TempProfile);
                        db.UsersData.Add(CurrentUserDataModel);
                        db.SaveChanges();

			// ГЕНЕРИРУЕМ КОТД ПОДТВЕРЖДЕНИЯ
                        EmailModel e = new EmailModel();
                        e.Email = model.EmailAdres;
                        e.IsConfirm = false;
                        e.Key = Crypto.SHA256(model.EmailAdres);
                        e.PasswordRecoverKey = Crypto.SHA256(model.EmailAdres + model.Password + model.UserName);
                        e.UserProfile = TempProfile;
                        db.EmailModels.Add(e);
                        db.SaveChanges();

                        SendMail("smtp.mail.ru", "ЯЩИК С КОТОРОГО ОТПРАВЛЯЕТЯ ПИСЬМО", "ПАРОЛЬ ОТ ЯЩИКА", e.Email , "public", "Welcom to public " +
                            "Пожалуйста, активируйте Ваш аккаунт, перейдя по этой ссылке http://public.somee.com/Account/ActivationAccount/" + e.Key, null);
                        ViewBag.currentUser = CurrentUserDataModel;
                        return View("AddData", CurrentUserDataModel);
                    }
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }
            else
            {
                for (int i = 0; i < model.UserName.Length; i++)
                {
                    if ((int)model.UserName[i] < 48 || (int)model.UserName[i] > 57 || (int)model.UserName[i] < 65 || (int)model.UserName[i] > 90 || (int)model.UserName[i] < 97 || (int)model.UserName[i] > 122 )
                        ModelState.AddModelError("UserName", "Имя пользователя должно состоять из следущих символо: A-Z и 0-9");
                }
                if (model.UserName.Length < 4)
                    ModelState.AddModelError("UserName", "Имя пользователя должно быть не менее трех символов");
                if (model.Password != model.ConfirmPassword)
                    ModelState.AddModelError("ConfirmPassword", "Оба пароля должны быть идентичны");
                if (model.EmailAdres.IndexOf('@') < 1)
                    ModelState.AddModelError("EmailAdres", "E-mail адрес введен не корректно");
                
            }
            // If we got this far, something failed, redisplay form
            return View(model);
        }
Пример #11
0
 public ActionResult Upload(HttpPostedFileBase upload)
 {
     UsersContext db = new UsersContext();
     if (upload != null)
     {
         // получаем имя файла
         string fileName = System.IO.Path.GetFileName(upload.FileName);
         // сохраняем файл в папку Files в проекте
         string Extention = System.IO.Path.GetExtension(upload.FileName);
         string NewFileName = Crypto.Hash(fileName);
         NewFileName = NewFileName.Remove(0,20);
         NewFileName = NewFileName.ToLower();
         NewFileName +=Extention;
         upload.SaveAs(Server.MapPath("~/Avatars/" + NewFileName));
         
         var EditUser = db.UsersData
         .Where(c => c.UserProfile.UserId == WebSecurity.CurrentUserId)
         .FirstOrDefault();
         //System.IO.File.Delete(Server.MapPath(EditUser.AvatarUrl));
         EditUser.AvatarUrl = "/Avatars/" + NewFileName;
         db.SaveChanges();
         upload.SaveAs(Server.MapPath("~/Avatars/" + NewFileName));
     }
     return RedirectToAction("Index", "Home");
     
 }
Пример #12
0
        public ActionResult AddData(UserData model, HttpPostedFileBase upload)
        {
            
            UsersContext db = new UsersContext();
            List<UserData> TempList = new List<UserData>();
            TempList = db.UsersData.ToList();
            for (int i = 0; i < TempList.Count; i++)
            {
                if (TempList[i].UserProfile.UserId == WebSecurity.CurrentUserId)
                {

                    ViewBag.currentUser = TempList[i];
                    break;
                }
            }
            var EditUser = db.UsersData
               .Where(c => c.UserProfile.UserId == WebSecurity.CurrentUserId)
               .FirstOrDefault();
            if (upload != null)
            {
                // получаем имя файла
                string fileName = System.IO.Path.GetFileName(upload.FileName);
                // сохраняем файл в папку Files в проекте
                string Extention = System.IO.Path.GetExtension(upload.FileName);
                string NewFileName = Crypto.Hash(fileName);
                NewFileName = NewFileName.Remove(0, 20);
                NewFileName = NewFileName.ToLower();
                NewFileName += Extention;
                upload.SaveAs(Server.MapPath("~/Avatars/" + NewFileName));

               
                //System.IO.File.Delete(Server.MapPath(EditUser.AvatarUrl));
                EditUser.AvatarUrl = "/Avatars/" + NewFileName;
                db.SaveChanges();
                upload.SaveAs(Server.MapPath("~/Avatars/" + NewFileName));
            }

            if (model.Name == null)
            {
                ModelState.AddModelError("Name", "Поле Имя обязательно к заполнению");
        
               
                return View("AddData", model);
            }
            if (model.LastName == null)
            {
                ModelState.AddModelError("LastName", "Поле Фамилия обязательно к заполнению");
                        
                return View("AddData", model);
            }
            EditUser.BrithDay = model.BrithDay;
            EditUser.About = model.About;
            EditUser.City = model.City;
            EditUser.College = model.College;
            EditUser.Entertainment = model.Entertainment;
            EditUser.FavoriteBook = model.FavoriteBook;
            EditUser.FavoriteGames = model.FavoriteGames;
            EditUser.FavoriteKino = model.FavoriteKino;
            EditUser.FavoriteMusik = model.FavoriteMusik;
            EditUser.HPhone = model.HPhone;
            EditUser.Instagram = model.Instagram;
            EditUser.Institute = model.Institute;
            EditUser.Interesses = model.Interesses;
            EditUser.Job = model.Job;
            EditUser.LastName = model.LastName;
            EditUser.Name = model.Name;
            EditUser.Phone = model.Phone;
            EditUser.School = model.School;
            EditUser.Sex = model.Sex;
            EditUser.Skype = model.Skype;
            EditUser.Twitter = model.Twitter;
            EditUser.WebSite = model.WebSite;
            ViewBag.currentUser = EditUser;
            if (ModelState.IsValid)
                db.SaveChanges();
            else
            {
                ModelState.AddModelError("BrithDay", "Введите дату корректно");
                return View(model);
            }
            ViewBag.NotRead = HomeController.GetNotReadMessagesCount();
            return RedirectToAction("Index", "Home");
        }