public async Task <IActionResult> Create(int id)
        {
            var mail = _mailService.GetById(id);
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            var model = new MailReplyModel
            {
                MailContent = mail.Content,
                MailTitle   = mail.Title,
                MailId      = mail.Id,

                AuthorId       = user.Id,
                AuthorName     = User.Identity.Name,
                AuthorImageUrl = user.ProfileImageUrl,
                AuthorRating   = user.Rating,
                IsAuthorAdmin  = User.IsInRole("Admin"),

                PlatformId       = mail.Platform.Id,
                PlatformName     = mail.Platform.Title,
                PlatformImageUrl = mail.Platform.ImageUrl,

                DateOfCreation = DateTime.Now
            };

            return(View(model));
        }
        private MailReply BuildReply(MailReplyModel model, ApplicationUser user)
        {
            var mail = _mailService.GetById(model.MailId);

            return(new MailReply
            {
                Mail = mail,
                Content = model.ReplyContent,
                DateOfCreation = DateTime.Now,
                User = user
            });
        }
        public async Task <IActionResult> AddReply(MailReplyModel model)
        {
            var userId = _userManager.GetUserId(User);
            var user   = await _userManager.FindByIdAsync(userId);

            var reply = BuildReply(model, user);

            await _mailService.AddReply(reply);

            await _userService.UpdateUserRating(userId, typeof(MailReply));

            return(RedirectToAction("Index", "Mail", new { id = model.MailId }));
        }