public IActionResult SendContactEmailRequest([FromBody] ContactEmailRequestModel model)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     return(Ok());
 }
        public IActionResult Post([FromBody] ContactEmailRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Data is not in valid format"));
            }

            if (string.IsNullOrEmpty(model.SenderEmail))
            {
                model.SenderEmail = User.FindFirst(ClaimTypes.Email)?.Value;
                if (string.IsNullOrEmpty(model.SenderEmail))
                {
                    return(BadRequest("Unauthorized user access to api"));
                }
            }
            List <EmailAddress> usersEmails = null;

            if (model.EmailType == ContactEmailType.Help)
            {
                usersEmails = service.GetManagerUsersEmails().ToList();
            }
            else if (model.EmailType == ContactEmailType.Information)
            {
                if (model.ProjectId <= 0)
                {
                    return(BadRequest("Invalid project id provided"));
                }
                int projectId = (int)model.ProjectId;
                usersEmails = service.GetProjectUsersEmails(projectId).ToList();
            }

            string messageTail = "<p><b>Sender name: " + model.SenderName + "</b><br/><b>Sender email: " + model.SenderEmail + "</b></p>";

            model.Message = "<p>" + model.Message + "</p>" + messageTail;
            ActionResponse response = null;

            if (usersEmails.Count > 0)
            {
                EmailModel emailModel = new EmailModel()
                {
                    Title      = "",
                    Subject    = model.Subject,
                    Message    = model.Message,
                    EmailsList = usersEmails
                };
                response = emailService.SendContactEmail(emailModel, model.SenderName, model.SenderEmail, model.ProjectTitle, model.EmailType);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
            }
            return(Ok(true));
        }
Beispiel #3
0
        public IActionResult Approve(int id)
        {
            if (id <= 0)
            {
                ICommonMessageHelper messageHelper = new CommonMessageHelper();
                return(BadRequest(messageHelper.GetInvalidIdMessage()));
            }
            var response = contactService.Approve(id);

            if (!response.Success)
            {
                return(BadRequest(response.Message));
            }
            else if (response.Success)
            {
                ContactEmailRequestModel model       = JsonConvert.DeserializeObject <ContactEmailRequestModel>(response.Message);
                List <EmailAddress>      usersEmails = null;

                if (model.ProjectId <= 0)
                {
                    return(BadRequest("Invalid project id provided"));
                }
                int projectId = (int)model.ProjectId;
                usersEmails = contactService.GetProjectUsersEmails(projectId).ToList();
                EmailModel emailModel = new EmailModel()
                {
                    Subject    = model.Subject,
                    Message    = model.Message,
                    Title      = model.ProjectTitle,
                    EmailsList = usersEmails
                };
                response = emailService.SendContactEmail(emailModel, model.SenderName, model.SenderEmail, model.ProjectTitle, model.EmailType);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response = contactService.Delete(id);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response.ReturnedId = 1;
            }
            return(Ok(true));
        }
Beispiel #4
0
        public ActionResponse Approve(int id)
        {
            var            unitWork = new UnitOfWork(context);
            IMessageHelper mHelper;
            ActionResponse response = new ActionResponse();

            try
            {
                var contactMessage = unitWork.ContactMessagesRepository.GetWithInclude(m => m.Id == id, new string[] { "Project" }).FirstOrDefault();
                if (contactMessage == null)
                {
                    mHelper          = new MessageHelper();
                    response.Success = false;
                    response.Message = mHelper.GetNotFound("Contact message");
                    return(response);
                }

                ContactEmailRequestModel model = new ContactEmailRequestModel()
                {
                    SenderEmail  = contactMessage.SenderEmail,
                    SenderName   = contactMessage.SenderName,
                    Subject      = contactMessage.Subject,
                    Message      = contactMessage.Message,
                    ProjectId    = contactMessage.ProjectId,
                    ProjectTitle = contactMessage.Project.Title
                };
                response.Message = JsonConvert.SerializeObject(model);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                if (ex.InnerException != null)
                {
                    response.Message = ex.InnerException.Message;
                }
            }
            return(response);
        }
Beispiel #5
0
        public IActionResult Post([FromBody] ContactEmailRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (string.IsNullOrEmpty(model.SenderEmail))
            {
                model.SenderEmail = User.FindFirst(ClaimTypes.Email)?.Value;
                if (string.IsNullOrEmpty(model.SenderEmail))
                {
                    return(BadRequest("Unauthorized user access to api"));
                }
            }

            ActionResponse response        = new ActionResponse();
            var            contactToVerify = userService.CheckEmailAvailability(model.SenderEmail);

            if (!contactToVerify.Success)
            {
                List <EmailAddress> usersEmails = null;
                if (model.EmailType == ContactEmailType.Help)
                {
                    usersEmails = contactService.GetManagerUsersEmails().ToList();
                }
                else if (model.EmailType == ContactEmailType.Information)
                {
                    if (model.ProjectId <= 0)
                    {
                        return(BadRequest("Invalid project id provided"));
                    }
                    int projectId = (int)model.ProjectId;
                    usersEmails = contactService.GetProjectUsersEmails(projectId).ToList();
                }
                EmailModel emailModel = new EmailModel()
                {
                    Subject    = model.Subject,
                    Message    = model.Message,
                    Title      = model.ProjectTitle,
                    EmailsList = usersEmails
                };
                response = emailService.SendContactEmail(emailModel, model.SenderName, model.SenderEmail, model.ProjectTitle, model.EmailType);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response.ReturnedId = 1;
                response.Message    = "Message sent";
            }
            else
            {
                ContactMessageModel contactModel = new ContactMessageModel()
                {
                    SenderEmail = model.SenderEmail,
                    SenderName  = model.SenderName,
                    Subject     = model.Subject,
                    Message     = model.Message,
                    EmailType   = model.EmailType,
                    ProjectId   = (int)model.ProjectId
                };
                response = contactService.Add(contactModel);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response.ReturnedId = 2;
                response.Message    = "Message forwarded";
            }
            return(Ok(response));
        }