public async Task <IActionResult> Index()
        {
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            List <MessageViewModel> messageList = await GetAllMessagesTo(currentUser.Id);

            List <Distribuerade_System_Labb_2User> users = new List <Distribuerade_System_Labb_2User>();
            int SumDeleted = await messageLogic.HowManyMessageDeleted(currentUser.Id);

            int SumRead = await messageLogic.HowManyMessagesRead(currentUser.Id);

            int SumUnRead = await messageLogic.HowManyMessagesUnRead(currentUser.Id);

            int TotMessages = await messageLogic.HowManyMessages(currentUser.Id);

            foreach (var m in messageList)
            {
                var user = GetUserById(m.SenderId);
                if (!users.Contains(user))
                {
                    users.Add(user);
                }
            }
            ViewBag.NoOfDeletedMessages = SumDeleted;
            ViewBag.NoOfMessages        = TotMessages;
            ViewBag.NoOfReadMessages    = SumRead;
            ViewBag.NoOfUnReadMessages  = SumUnRead;
            return(View(users));
        }
Esempio n. 2
0
        /// <summary>
        /// GET List of joined groups
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> JoinedGroup()
        {
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            List <GroupViewModel> groups = await GetAllJoinedGroup(currentUser.Id);

            return(View(groups));
        }
        /// <summary>
        /// Gets messages for one resiver from one only on sender.
        /// </summary>
        /// <param name="id"></param>
        /// <returns>List of messages</returns>
        public async Task <IActionResult> MessageOfUser(string id)
        {
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            if (id.Equals(null) || id.Equals(""))
            {
                return(NotFound());
            }

            List <MessageViewModel> messages = await GetAllMessagesFrom(id, currentUser.Id);

            return(View(messages));
        }
Esempio n. 4
0
        public async Task <ActionResult> CreateGroup([Bind("GroupTitle")] GroupViewModel group)
        {
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                int result = await groupLogic.CreateNewGroup(group.GroupTitle, currentUser.Id);

                TempData["ConfirmationMessage"] = "Group: " + group.GroupTitle + " was created!";
                return(RedirectToAction("CreateGroup"));
            }
            return(RedirectToAction("CreateGroup"));
        }
Esempio n. 5
0
        /// <summary>
        /// GET Join group page
        /// </summary>
        /// <param name="id">Id of group</param>
        /// <returns></returns>
        public async Task <IActionResult> JoinGroup(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            int groupId = id ?? default(int);
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            bool result = await groupLogic.RegisterToGroup(groupId, currentUser.Id);

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Create([Bind("TitleMessage,Body,SelectedValues")] SendMessageViewModel sendMessageViewModel)
        {
            Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                List <string> usersSentTo = new List <string>();
                int           result      = 0;
                foreach (var u in sendMessageViewModel.SelectedValues)
                {
                    sendMessageViewModel.ReceiverId = u;
                    usersSentTo.Add(GetUserById(sendMessageViewModel.ReceiverId).UserName);
                    result = await messageLogic.CreateNewMessage(sendMessageViewModel.TitleMessage, sendMessageViewModel.Body, sendMessageViewModel.ReceiverId, currentUser.Id);
                }
                TempData["ConfirmationMessage"] = "Meddelande nummer " + result + " avsänt till "
                                                  + String.Join(", ", usersSentTo.ToArray()) + ", " + DateTime.Now.ToString("HH:mm yyyy-MM-dd");
                return(RedirectToAction("Create"));
            }
            return(RedirectToAction("Create"));
        }
        public async Task <IActionResult> Index()
        {
            if (User.Identity.IsAuthenticated)
            {
                Distribuerade_System_Labb_2User currentUser = await _userManager.GetUserAsync(User);

                int SumDeleted = await messageLogic.HowManyMessageDeleted(currentUser.Id);

                int SumRead = await messageLogic.HowManyMessagesRead(currentUser.Id);

                int SumUnRead = await messageLogic.HowManyMessagesUnRead(currentUser.Id);

                int TotMessages = await messageLogic.HowManyMessages(currentUser.Id);

                ViewBag.NoOfDeletedMessages = SumDeleted;
                ViewBag.NoOfMessages        = TotMessages;
                ViewBag.NoOfReadMessages    = SumRead;
                ViewBag.NoOfUnReadMessages  = SumUnRead;
            }
            return(View());
        }
Esempio n. 8
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var user = new Distribuerade_System_Labb_2User {
                    UserName = Input.Email, Email = Input.Email
                };

                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { 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>.");

                    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());
        }