コード例 #1
0
        public ActionResult RemoveFriend(int friendToRemove)
        {
            int currentUser = personRepository.GetIdByUserIdentityEmail(User.Identity.Name);
            List <FriendRequest> friends = requestRepository.GetFriendsByPersonId(currentUser);

            foreach (FriendRequest f in friends)
            {
                /*Hämtar den FriendRequest där SenderID och ReceiverID stämmer, och tar bort den, kontroll görs åt båda hållen
                 * - användaren kan nämligen antingen vara den som skickat eller fått vänförfrågan. */
                if (f.ReceiverId.Equals(currentUser) && f.SenderId.Equals(friendToRemove) || f.ReceiverId.Equals(friendToRemove) && f.SenderId.Equals(currentUser))
                {
                    try
                    {
                        _context.Remove(f);
                        _context.SaveChanges();
                    }
                    catch (Exception)
                    {
                        TempData["ProcessMessage"] = "Could not remove friend, try again later";
                        return(PartialView("Exception"));
                    }
                }
            }
            return(RedirectToAction("Profile", "Person", new { id = friendToRemove }));
        }
コード例 #2
0
        public ActionResult AcceptRequest(int senderId)
        {
            int receiverId = personRepository.GetIdByUserIdentityEmail(User.Identity.Name);

            List <FriendRequest> requests = requestRepository.GetAllRequestsSentToUser(receiverId);

            foreach (FriendRequest fr in requests)                          //Loopar genom alla vänförfrågningar användaren har fått
            {
                if (fr.SenderId == senderId && fr.ReceiverId == receiverId) //Kontrollerar att sändare och mottagare stämmer
                {
                    fr.Accepted = true;
                    try
                    {
                        _context.Update(fr);
                        _context.SaveChanges();
                    }
                    catch (Exception)
                    {
                        TempData["ProcessMessage"] = "Could not update profile picture, please try again";
                        return(PartialView("Exception"));
                    }
                }
            }
            return(RedirectToAction("Profile", "Person", new { id = senderId }));
        }
コード例 #3
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = Input.Email, Email = Input.Email, EmailConfirmed = true
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                byte[]     imageData   = null;
                string     wwwrootPath = _hostEnvironment.WebRootPath;                     //Hämtar sökvägen till wwwroot
                string     path        = wwwrootPath + "/img/default_profile_picture.jpg"; //Hämtar sökväg för default-bilden som finns i /wwwroot/img
                FileStream file        = new FileStream(path, FileMode.Open);              //Skapar en FileStream av sökvägen för default-bilden
                using (var binary = new BinaryReader(file))
                {
                    imageData = binary.ReadBytes((int)file.Length); //Gör om FileStram till en BinaryReader
                }

                if (result.Succeeded)
                {
                    var person = new Person //Skapar ny person som läggs till i databasen DatingApp
                    {
                        Email         = Input.Email,
                        FirstName     = Input2.FirstName,
                        LastName      = Input2.LastName,
                        Description   = "",
                        Picture       = imageData,
                        AccountHidden = false
                    };
                    _context.Persons.Add(person);
                    _context.SaveChanges();

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("MyProfile", "Person"));
                }

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

            // If we got this far, something failed, redisplay form
            return(Page());
        }
コード例 #4
0
        public async Task <IActionResult> Index(MovieDetails movies, List <IFormFile> Image)
        {
            foreach (var item in Image)
            {
                if (item.Length > 0)
                {
                    using var stream = new MemoryStream();
                    await item.CopyToAsync(stream);

                    movies.Image = stream.ToArray();
                }
            }
            _context.MovieDetails.Add(movies);
            _context.SaveChanges();
            return(View());
        }
コード例 #5
0
        public bool registerUser(UserToRegister userToRegister)
        {
            var usrFromDb = _datingAppContext.Usuarios.FirstOrDefault(x => x.Username == userToRegister.Username);

            if (usrFromDb != null)
            {
                return(false);
            }
            byte[] passHash, passSalt;
            generateHashSalt(userToRegister.Password, out passHash, out passSalt);
            Usuario usertoCreate = new Usuario()
            {
                Cedula   = userToRegister.Cedula,
                Username = userToRegister.Username,
                PassHash = passHash,
                PassSalt = passSalt
            };

            _datingAppContext.Usuarios.Add(usertoCreate);
            _datingAppContext.SaveChanges();
            return(true);
        }
コード例 #6
0
        public void AddPost(Post post)
        {
            if (post.PersonId == 0)
            {
                NotFound();
            }

            Post newPost = new Post()
            {
                PostText  = post.PostText,
                PersonId  = post.PersonId,
                AuthorId  = personRepository.GetIdByUserIdentityEmail(User.Identity.Name),
                Timestamp = DateTime.Now
            };

            try
            {
                _context.Posts.Add(newPost);
                _context.SaveChanges();
            }
            catch (Exception)
            {
            }
        }
コード例 #7
0
 public void SaveChanges()
 {
     context.SaveChanges();
 }
コード例 #8
0
 public int Save()
 {
     return(_context.SaveChanges());
 }
コード例 #9
0
 public void SaveChanges() => _context.SaveChanges();