Example #1
0
        public ActionResult DeleteMessageTemplate(long id)
        {
            var gVal = new GenericValidator();

            try
            {
                if (id < 1)
                {
                    gVal.Code  = -1;
                    gVal.Error = "Invalid selection";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }
                var delStatus = new MessageTemplateServices().DeleteMessageTemplate(id);
                if (delStatus < 1)
                {
                    gVal.Code  = -1;
                    gVal.Error = "Message Template could not be deleted. Please try again later.";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                gVal.Code  = 5;
                gVal.Error = "Message Template Information was successfully deleted";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
        }
Example #2
0
        public ActionResult AddMessageTemplate(MessageTemplateObject messageTemplate)
        {
            var gVal = new GenericValidator();

            try
            {
                var validationResult = ValidateMessageTemplate(messageTemplate);

                if (validationResult.Code == 1)
                {
                    return(Json(validationResult, JsonRequestBehavior.AllowGet));
                }

                var appStatus = new MessageTemplateServices().AddMessageTemplate(messageTemplate);
                if (appStatus < 1)
                {
                    validationResult.Code  = -1;
                    validationResult.Error = appStatus == -2 ? "Message Template processing failed. Please try again." : "Message Template Information already exists";
                    return(Json(validationResult, JsonRequestBehavior.AllowGet));
                }

                gVal.Code  = appStatus;
                gVal.Error = "Message Template was successfully added.";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                gVal.Error = "Message Template processing failed. Please try again later";
                gVal.Code  = -1;
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
        }
Example #3
0
        public ActionResult EditMessageTemplate(MessageTemplateObject messageTemplate)
        {
            var gVal = new GenericValidator();

            try
            {
                var stat = ValidateMessageTemplate(messageTemplate);

                if (stat.Code < 1)
                {
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                if (Session["_messageTemplate"] == null)
                {
                    gVal.Code  = -1;
                    gVal.Error = "Session has timed out.";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                var oldmessageTemplate = Session["_messageTemplate"] as MessageTemplateObject;

                if (oldmessageTemplate == null)
                {
                    gVal.Code  = -1;
                    gVal.Error = "Session has timed out.";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                oldmessageTemplate.Subject        = messageTemplate.Subject;
                oldmessageTemplate.EventTypeId    = messageTemplate.EventTypeId;
                oldmessageTemplate.MessageContent = messageTemplate.MessageContent;
                oldmessageTemplate.Footer         = messageTemplate.Footer;
                var docStatus = new MessageTemplateServices().UpdateMessageTemplate(oldmessageTemplate);
                if (docStatus < 1)
                {
                    gVal.Code  = -1;
                    gVal.Error = docStatus == -3 ? "Message Template already exists." : "Message Template information could not be updated. Please try again later";
                    return(Json(gVal, JsonRequestBehavior.AllowGet));
                }

                gVal.Code  = oldmessageTemplate.Id;
                gVal.Error = "Message Template information was successfully updated";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                gVal.Code  = -1;
                gVal.Error = "Message Template information could not be updated. Please try again later";
                return(Json(gVal, JsonRequestBehavior.AllowGet));
            }
        }
Example #4
0
        public ActionResult GetMessageTemplateObjects(JQueryDataTableParamModel param)
        {
            try
            {
                IEnumerable <MessageTemplateObject> filteredParentMenuObjects;
                var countG = 0;

                var pagedParentMenuObjects = GetMessageTemplates(param.iDisplayLength, param.iDisplayStart, out countG);

                if (!string.IsNullOrEmpty(param.sSearch))
                {
                    filteredParentMenuObjects = new MessageTemplateServices().Search(param.sSearch);
                }
                else
                {
                    filteredParentMenuObjects = pagedParentMenuObjects;
                }

                if (!filteredParentMenuObjects.Any())
                {
                    return(Json(new List <MessageTemplateObject>(), JsonRequestBehavior.AllowGet));
                }

                var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);
                Func <MessageTemplateObject, string> orderingFunction = (c => sortColumnIndex == 1 ? c.Subject : c.EventTypeName);

                var sortDirection = Request["sSortDir_0"]; // asc or desc
                filteredParentMenuObjects = sortDirection == "desc" ? filteredParentMenuObjects.OrderBy(orderingFunction) : filteredParentMenuObjects.OrderByDescending(orderingFunction);

                var displayedPersonnels = filteredParentMenuObjects;

                var result = from c in displayedPersonnels
                             select new[] { Convert.ToString(c.Id), c.Subject, c.EventTypeName };
                return(Json(new
                {
                    param.sEcho,
                    iTotalRecords = countG,
                    iTotalDisplayRecords = countG,
                    aaData = result
                },
                            JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                ErrorLogger.LoggError(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new List <MessageTemplateObject>(), JsonRequestBehavior.AllowGet));
            }
        }
Example #5
0
        public ActionResult GetMessageTemplate(long id)
        {
            try
            {
                var messageTemplate = new MessageTemplateServices().GetMessageTemplate(id);
                if (messageTemplate == null || messageTemplate.Id < 1)
                {
                    return(Json(new MessageTemplateObject(), JsonRequestBehavior.AllowGet));
                }

                Session["_messageTemplate"] = messageTemplate;

                return(Json(messageTemplate, JsonRequestBehavior.AllowGet));
            }
            catch (Exception)
            {
                return(Json(new MessageTemplateObject(), JsonRequestBehavior.AllowGet));
            }
        }
        private bool SendMail(UserViewModel model)
        {
            try
            {
                if (model == null || string.IsNullOrEmpty(model.SecurityStamp))
                {
                    return(false);
                }

                const int    type  = (int)MessageEventEnum.New_User;
                const string label = "Activate your Account!";

                var msgBody = "";
                var msg     = new MessageTemplateServices().GetMessageTempWithExpiry(type);
                if (msg.Id < 1)
                {
                    return(false);
                }

                var emMs = new MessageObject
                {
                    UserId            = model.Id,
                    MessageTemplateId = msg.Id,
                    Status            = (int)MessageStatus.Pending,
                    DateSent          = DateTime.Now,
                    MessageBody       = msg.MessageContent
                };

                var sta = new MessageServices().AddMessage(emMs);
                if (sta < 1)
                {
                    return(false);
                }

                if (Request.Url != null)
                {
                    msg.MessageContent = msg.MessageContent.Replace("\n", "<br/>");
                    msg.Subject        = msg.Subject.Replace("\n", "<br/>");
                    msgBody            = "DPR/DS/IEP/" + DateTime.Today.ToString("ddMMyyyy") + "/" + sta + "<br/><br/>";

                    if (msg.MessageContent.Contains("{hours}") && msg.MessageLifeSpan > 0)
                    {
                        msg.MessageContent = msg.MessageContent.Replace("{hours}", msg.MessageLifeSpan.ToString());
                    }

                    msg.Subject        = msg.Subject.Replace("{firstname lastname}", model.FirstName + " " + model.LastName);
                    msg.MessageContent = msg.MessageContent.Replace("{user}", model.LastName).Replace("{password}", model.Password);


                    msgBody += "<br/><br/>" + msg.MessageContent.Replace("{email verification link}", "<br/><a style=\"color:green; cursor:pointer\" title=\"Activate Account\" href=" + Url.Action("ConfirmEmail", "Account", new { email = model.Email, code = model.SecurityStamp, ixf = sta }, Request.Url.Scheme) + ">" + label + "</a>").Replace("\n", "<br/>");

                    msgBody += "<br/><br/>" + msg.Footer.Replace("\n", "<br/>");
                }

                if (Request.Url != null)
                {
                    #region Using SendGrid

                    var config   = WebConfigurationManager.OpenWebConfiguration(HttpContext.Request.ApplicationPath);
                    var settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

                    if (settings == null)
                    {
                        return(false);
                    }

                    var mail = new MailMessage(new MailAddress(settings.Smtp.From), new MailAddress(model.Email))
                    {
                        Subject    = msg.Subject,
                        Body       = msgBody,
                        IsBodyHtml = true
                    };

                    var smtp = new SmtpClient(settings.Smtp.Network.Host)
                    {
                        Credentials = new NetworkCredential(settings.Smtp.Network.UserName, settings.Smtp.Network.Password),
                        EnableSsl   = true,
                        Port        = settings.Smtp.Network.Port
                    };

                    smtp.Send(mail);

                    emMs.Id          = sta;
                    emMs.MessageBody = msgBody;
                    emMs.Status      = (int)MessageStatus.Sent;
                    var tts = new MessageServices().UpdateMessage(emMs);
                    if (tts < 1)
                    {
                        return(false);
                    }

                    return(true);

                    #endregion
                }

                return(false);
            }
            catch (Exception e)
            {
                ErrorLogger.LoggError(e.StackTrace, e.Source, e.Message);
                return(false);
            }
        }
Example #7
0
        private async Task <bool> SendMail(UserViewModel model)
        {
            try
            {
                if (model == null || string.IsNullOrEmpty(model.SecurityStamp))
                {
                    return(false);
                }

                var          type  = 0;
                const string label = "Activate your Account!";
                if (model.IsUser)
                {
                    type = (int)MessageEventEnum.New_User;
                }

                else
                {
                    type = (int)MessageEventEnum.New_Account;
                }

                if (type < 1)
                {
                    type = (int)MessageEventEnum.New_Account;
                }

                var msgBody = "";
                var msg     = new MessageTemplateServices().GetMessageTemplate(type);
                if (msg.Id < 1)
                {
                    return(false);
                }

                var emMs = new MessageObject
                {
                    UserId            = model.Id,
                    MessageTemplateId = msg.Id,
                    Status            = (int)MessageStatus.Pending,
                    DateSent          = DateTime.Now,
                    MessageBody       = msg.MessageContent
                };

                var sta = new MessageServices().AddMessage(emMs);
                if (sta < 1)
                {
                    return(false);
                }

                if (Request.Url != null)
                {
                    msg.MessageContent = msg.MessageContent.Replace("\n", "<br/>");
                    msg.Subject        = msg.Subject.Replace("\n", "<br/>");
                    msgBody           += msg.MessageContent.Replace("{email verification link}", "<a style=\"color:green; cursor:pointer\" title=\"Activate Account\" href=" + Url.Action("ConfirmEmail", "Account", new { email = model.Email, code = model.SecurityStamp, ixf = sta }, Request.Url.Scheme) + ">" + label + "</a>").Replace("\n", "<br/>");

                    msgBody += "<br/><br/>" + msg.Footer.Replace("\n", "<br/>");
                }

                if (Request.Url != null)
                {
                    var config   = WebConfigurationManager.OpenWebConfiguration(HttpContext.Request.ApplicationPath);
                    var settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

                    var apiKey  = ConfigurationManager.AppSettings["mandrillApiKey"];
                    var appName = ConfigurationManager.AppSettings["AplicationName"];

                    if (settings == null || string.IsNullOrEmpty(apiKey) || string.IsNullOrEmpty(appName))
                    {
                        return(false);
                    }

                    #region Using Mandrill
                    var api       = new MandrillApi(apiKey);
                    var receipint = new List <MandrillMailAddress> {
                        new MandrillMailAddress(model.Email)
                    };
                    var message = new MandrillMessage()
                    {
                        AutoHtml  = true,
                        To        = receipint,
                        FromEmail = settings.Smtp.From,
                        FromName  = appName,
                        Subject   = msg.Subject,
                        Html      = msgBody
                    };

                    var result = await api.Messages.SendAsync(message);

                    if (result[0].Status != MandrillSendMessageResponseStatus.Sent)
                    {
                        emMs.Status = (int)MessageStatus.Failed;
                    }
                    else
                    {
                        emMs.Status = (int)MessageStatus.Sent;
                    }
                    #endregion

                    emMs.Id          = sta;
                    emMs.MessageBody = msgBody;
                    var tts = new MessageServices().UpdateMessage(emMs);
                    if (tts < 1)
                    {
                        return(false);
                    }

                    return(true);
                }

                return(false);
            }
            catch (Exception e)
            {
                ErrorLogger.LogError(e.StackTrace, e.Source, e.Message);
                return(false);
            }
        }