Ejemplo n.º 1
0
        public ComplaintClientViewModel ToComplaintClientViewModel(ClientComplaint clientComplaint)
        {
            var complaint = new ComplaintClientViewModel
            {
                Id         = clientComplaint.Id,
                Complaint  = clientComplaint.Complaint,
                Email      = clientComplaint.Email,
                Date       = clientComplaint.Date,
                Body       = clientComplaint.Body,
                Reply      = clientComplaint.Reply,
                Status     = clientComplaint.Status,
                ClientName = clientComplaint.CreatedBy.Name
            };

            return(complaint);
        }
Ejemplo n.º 2
0
        public ClientComplaint ToClientComplaint(ComplaintClientViewModel model, bool isNew)
        {
            var complaint = new ClientComplaint
            {
                Id         = isNew ? 0 : model.Id,
                UpdateDate = DateTime.Now,
                Status     = 1,
                Complaint  = model.Complaint,
                Email      = model.Email,
                Date       = model.Date,
                Body       = model.Body,
                Reply      = model.Reply
            };

            return(complaint);
        }
        public async Task <IActionResult> ComplaintReply(ComplaintClientViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var complaint = await _clientComplaintRepository.GetClientByIdAsync(model.Id);

                    if (complaint == null)
                    {
                        return(new NotFoundViewResult("_Error404"));
                    }

                    var user = await _userHelper.GetUserByIdAsync(complaint.CreatedBy.Id);

                    if (user == null)
                    {
                        return(new NotFoundViewResult("_Error404"));
                    }

                    complaint.ModifiedBy = user;
                    complaint.UpdateDate = DateTime.Now;
                    complaint.Status     = 0;
                    complaint.Reply      = model.Reply;

                    await _clientComplaintRepository.UpdateAsync(complaint);

                    _mailHelper.SendMail(user.Email, $"Your complaint has been processed.",
                                         $"<h1>You are very important to us.\nThank you very much.</h1>");

                    //todo:  ViewBag.Message = "An error ocurred. Try again please.";

                    return(RedirectToAction(nameof(Complaints)));
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError(string.Empty, exception.Message);
                }
            }
            return(View(model));
        }