public ActionResult CreateFeedBack(CreateFeedBackViewModel createModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(createModel));
            }

            string senderId     = User.Identity.GetUserId();
            var    createParams = new CreateFeedBackParams()
            {
                ReciverId     = createModel.ReciverId,
                SenderId      = senderId,
                JobId         = createModel.JobId,
                Text          = createModel.Text,
                QualityOfWork = (QualityOfWork)createModel.QualityOfWork
            };

            _feedBackService.CreateFeedBack(createParams);
            _notificationService.CreateNotification(senderId, createModel.ReciverId, "You write a review");
            _commitProvider.SaveChanges();

            _notificationService.RefreshNotifications(createModel.ReciverId);

            return(RedirectToAction("Jobs", "Job"));
        }
Beispiel #2
0
        public void CreateFeedBack(CreateFeedBackParams createParams)
        {
            var sender = _userManager.FindById(createParams.SenderId);

            if (sender == null)
            {
                throw new ObjectNotFoundException($"Sender with id={createParams.SenderId} not found");
            }

            var reciver = _userManager.FindById(createParams.ReciverId);

            if (reciver == null)
            {
                throw new ObjectNotFoundException($"Reciver with id={createParams.ReciverId} not found");
            }


            var job = _jobRepository.FindJobById(createParams.JobId);

            if (job == null)
            {
                throw new ObjectNotFoundException($"Job with id={createParams.JobId} not found");
            }


            var feedBack = new FeedBack()
            {
                Sender        = sender,
                Receiver      = reciver,
                Job           = job,
                Text          = createParams.Text,
                QualityOfWork = createParams.QualityOfWork,
                AddedDate     = DateTime.UtcNow
            };

            _feedBackRepository.Create(feedBack);
        }