コード例 #1
0
ファイル: EmailService.cs プロジェクト: sakataa/technicaltest
    /// <summary>
    /// Sends an email
    /// </summary>
    /// <param name="emailParam">emailParam</param>
    /// <returns></returns>
    public bool SendMail(EmailParam emailParam)
    {
        MailMessage mail = BuildMail(emailParam);

        if (!IsValidEmail(mail))
        {
            return(false);
        }

        SmtpClient smtp = new SmtpClient();

        mail.IsBodyHtml = emailParam.IsBodyHtml;
        try
        {
            if (mail.To.Any(to => !StringValidationUtil.IsValidEmailAddress(to.Address)))
            {
                return(false);
            }

            smtp.Send(mail);
            return(true);
        }
        catch (Exception ex)
        {
            return(false);
        }
    }
コード例 #2
0
        public async Task <object> AcceptConnection(EmailParam model)
        {
            _apiClient.BaseUrl = new Uri(_configuration["EmailServiceUrl"]);

            var apiRequest = new ApiRequest("", RequestMethod.POST)
            {
                RequestFormat = DataFormat.Json
            };

            apiRequest.AddBody(new EmailApiModel()
            {
                EmailType    = "EduHubConnection",
                SystemUserId = model.SystemUserId,
                Payload      = model.Payload,
                Recipient    = model.Recipient,
                TemplateName = "Mentifi_ConnectionActive"
            });
            var response = await _apiClient.ExecuteAsync <object>(apiRequest);

            if (response.IsSuccessful)
            {
                return(model);
            }
            _logger.LogError(response.ErrorException, response.ErrorMessage, null);
            throw new ApplicationException(response.ErrorMessage);
        }
コード例 #3
0
ファイル: EmailService.cs プロジェクト: sakataa/technicaltest
    /// <summary>
    /// Builds the MailMessage.
    /// TODO: Need to pass more params for building content
    /// </summary>
    /// <param name="emailParam">EmailParam object</param>
    /// <returns>MailMessage</returns>
    private MailMessage BuildMail(EmailParam emailParam)
    {
        var mailMessage = _emailBuilder.BuildFromAddress(emailParam.FromAdress)
                          .BuildSubject(emailParam.Subject)
                          .BuildReceiver(emailParam.ToAddresses)
                          .BuildBody()
                          .BuildBcc(emailParam.BccAddress)
                          .BuildAttachments(emailParam.AttachmentList)
                          .GetMailMessage();

        return(mailMessage);
    }
コード例 #4
0
        private EmailParam CreateEmailParam()
        {
            var emailParam = new EmailParam();

            emailParam.Subject        = PropertyService.GetStringProperty(CurrentPage, "EmailSubject");
            emailParam.content        = BuildEmailContent();
            emailParam.FromAdress     = Txt_Email.Text;
            emailParam.AttachmentList = RequestHelper.GetAttachments(RequestHelper, ApplicationPath);

            InitContactPersonList();
            var emailList = _contactPersonManager.GetEmailList(contactPersonList, Ddl_Municipality.SelectedValue);

            emailParam.ToAddresses = string.Join(";", emailList);

            return(emailParam);
        }
コード例 #5
0
 public IHttpActionResult ForgotPassword(EmailParam emailParam)
 {
     try
     {
         if (emailParam == null)
         {
             return(BadRequest());
         }
         _userService.ForgotPassword(emailParam.Email);
         return(Ok());
     }
     catch (ArgumentNullException)
     {
         return(BadRequest());
     }
 }
コード例 #6
0
        /// <summary>
        /// Send Email.
        /// </summary>
        /// <param name="subject">subject</param>
        /// <param name="body">body</param>
        /// <returns></returns>
        public static bool SendEmail(string subject, string body)
        {
            EmailParam param = new EmailParam();

            param.SMTPServer   = ConfigurationManager.AppSettings["SMTPServer"];
            param.Port         = Convert.ToInt32(ConfigurationManager.AppSettings["SMTPPort"]);
            param.fromEmail    = ConfigurationManager.AppSettings["FromEmail"];
            param.fromName     = ConfigurationManager.AppSettings["FromName"];
            param.fromPassword = ConfigurationManager.AppSettings["FromPassWord"];
            param.toEmail      = ConfigurationManager.AppSettings["ToEmail"];
            param.toName       = ConfigurationManager.AppSettings["ToName"];
            param.subject      = subject;
            param.body         = body;
            param.IsBodyHtml   = true;
            param.enableSsl    = true;
            return(SendMailViaParam(param));
        }
コード例 #7
0
        public ActionResult CommentReply(string commentreply, int ticketId)
        {
            if (Session["isLogin"] != null)
            {
                if (!string.IsNullOrEmpty(commentreply))
                {
                    TicketViewModel viewModel = new TicketViewModel();
                    viewModel.Comment = db.Comment.Where(o => o.TicketId == ticketId).ToList();
                    viewModel.ticket  = db.Ticket.Where(o => o.TicketId == ticketId).FirstOrDefault();

                    Comment commentModel = new Comment();
                    try
                    {
                        commentModel.CommenterName  = Session["name"].ToString();
                        commentModel.CommentMessage = commentreply;
                        commentModel.TicketId       = ticketId;
                        commentModel.Created_at     = DateTime.Now;
                        commentModel.CommentId      = RandomNumber();
                        string name         = Session["name"].ToString();
                        string adminssionNo = Session["AdmissionNo"].ToString();

                        var commentData = db.Comment.Add(commentModel);
                        db.SaveChanges();

                        if (commentData != null)
                        {
                            EmailParam param = new EmailParam();
                            param.Email       = "*****@*****.**";
                            param.SenderEmail = "*****@*****.**";
                            param.From        = "Open Ticket for IGR";
                            param.Message     = "Hi Admin,\n\nYou have a pending ticket with content below\n\nPlease login into support to respond ticket\n\n--------------\n\n"
                                                + commentModel.CommentMessage + "\n\n------------\n\nSender Name: " + name + "\nAmissionNo: " + adminssionNo;
                            EmailClass.sendEmail(EMAILAPI, param);
                        }
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Error = "Unable to add comment";
                    }
                    return(View("Ticket_Reply", viewModel));
                }
            }
            return(RedirectToAction("Index"));
        }
コード例 #8
0
        protected override void Execute(CodeActivityContext executionContext)
        {
            var context        = executionContext.GetExtension <IWorkflowContext>();
            var serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            var service        = serviceFactory.CreateOrganizationService(context.UserId);

            var textPar = TextParam.Get <string>(executionContext);
            var intPar  = IntParam.Get <int>(executionContext);
            var email   = EmailParam.Get <string>(executionContext);

            Entity updatedEntity = new Entity(context.PrimaryEntityName);

            updatedEntity.Id            = context.PrimaryEntityId;
            updatedEntity["new_textin"] = textPar;
            updatedEntity["new_number"] = intPar;
            {
                OutParam.Set(executionContext, email);
            }
            service.Update(updatedEntity);
        }
コード例 #9
0
        private static bool SendMailViaParam(EmailParam context)
        {
            EmailParam param = context as EmailParam;

            try
            {
                if (param.body != "")
                {
                    SmtpClient client = new SmtpClient(param.SMTPServer, param.Port);
                    client.EnableSsl = param.enableSsl;
                    //client.UseDefaultCredentials = false;
                    client.Credentials = new NetworkCredential(param.fromEmail, param.fromPassword);

                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    MailAddress fromAddress = new MailAddress(param.fromEmail, param.fromName);
                    MailAddress toAddress   = new MailAddress(param.toEmail, param.toName);
                    MailMessage message     = new MailMessage(fromAddress, toAddress);
                    message.Body         = param.body;
                    message.Subject      = param.subject;
                    message.IsBodyHtml   = param.IsBodyHtml;
                    message.BodyEncoding = Encoding.UTF8;

                    try
                    {
                        client.Send(message);
                        return(true);
                    }
                    catch
                    {
                        return(false);
                    }
                }
                return(false);
            }
            catch
            {
                return(false);
            }
        }
コード例 #10
0
ファイル: HomeController.cs プロジェクト: nnabueze/support
        public ActionResult CreateTicket(HttpPostedFileBase file, TicketPost requestPost)
        {
            if (!ModelState.IsValid)
            {
                var message = string.Join(" | ", ModelState.Values
                                          .SelectMany(v => v.Errors)
                                          .Select(e => e.ErrorMessage));
                Session["Error"] = message;
                return(RedirectToAction("Ticket"));
            }

            //save  ticket
            Ticket ticketParam = new Ticket();
            string name        = null;
            string email       = null;
            string phone       = null;

            ticketParam.Title         = requestPost.Title;
            ticketParam.Message       = requestPost.Message;
            ticketParam.TicketId      = RandomNumber() + RandomNumber();
            ticketParam.Id            = ticketParam.TicketId;
            ticketParam.SourceData    = requestPost.type;
            ticketParam.Ticket_Status = 1;
            ticketParam.IGR_Code      = Session["igr"].ToString();
            ticketParam.Created_at    = DateTime.Now;
            if (Session["temporary_tin"] == null)
            {
                ticketParam.TinId = Session["tinNo"].ToString();
                name  = Session["name"].ToString();
                email = Session["email"].ToString();
                phone = Session["phone"].ToString();
            }
            else
            {
                ticketParam.TinId = Session["temporary_tin"].ToString();
                name  = Session["name"].ToString();
                email = Session["email"].ToString();
                phone = Session["phone"].ToString();
            }



            try
            {
                var ticketPara = db.Ticket.Add(ticketParam);
                db.SaveChanges();

                if (ticketPara != null)
                {
                    EmailParam param = new EmailParam();
                    param.Email       = "*****@*****.**";
                    param.SenderEmail = "*****@*****.**";
                    param.From        = "Open Ticket for IGR";
                    param.Message     = "Hi Admin,\n\nYou have a pending ticket with content below\n\nPlease login into support to respond ticket\n\n--------------\n\n"
                                        + requestPost.Message + "\n\n------------\n\nSender Name: " + name + "\nTinNo: " + ticketParam.TinId +
                                        "\nPhone: " + phone + "\nEmaill: " + email;
                    EmailClass.sendEmail(EMAILAPI, param);
                }
            }
            catch (Exception ex)
            {
                Session["Error"] = ex.Message.ToString();
                return(RedirectToAction("Ticket"));
            }


            foreach (string upload in Request.Files)
            {
                if (Request.Files[upload].ContentLength > 0)
                {
                    var filename = ticketParam.TicketId + ".png";
                    var size     = Request.Files[upload].ContentLength;

                    if (size > 532000)
                    {
                        Session["Error"] = "File cannot be larger than 500KB";
                        return(RedirectToAction("Ticket"));
                    }
                    var FileExt = Request.Files[upload].ContentType;
                    if (FileExt == "image/png" || FileExt == "image/jpeg")
                    {
                        var    filePathOriginal  = Server.MapPath("/Content/img");
                        var    filePathThumbnail = Server.MapPath("/Content/img");
                        string savedFileName     = Path.Combine(filePathOriginal, filename);
                        Request.Files[upload].SaveAs(savedFileName);
                    }
                    else
                    {
                        Session["Error"] = "Please upload a .png or .jpeg format";
                        return(RedirectToAction("Ticket"));
                    }
                }
            }

            Session["Sucess"] = "Ticket successfully opened";
            return(RedirectToAction("Ticket"));
        }