April 11, 2012

Worflow - New Request Mail

Step 1:File ->New -> Project ->Sharepoint 2010 ->Sequential Workflow

































Step 2:Add references to Workflow project Ex Microsof.Office.Server

Step 3: Drag and Drop the Logtohistory control in workflow.cs


















Step 4: Copy paste the below methods in Sendmail _Invoked Function

private void Sendmail_Invoked(object sender, ExternalDataEventArgs e)

{
          string user = workflowProperties.OriginatorUser.LoginName;

string domain = Convert.ToString(user.Split('\\').GetValue(0));

if (domain.Contains("|"))

{

domain =   Convert.ToString(domain.Split('|').GetValue(1));
}         
string loginname = "";           
SPServiceContext context = SPServiceContext.GetContext(workflowProperties.Site);
          UserProfileManager upm = new UserProfileManager(context);

int ListItemID = System.Convert.ToInt32(workflowProperties.ItemId);

#region Approved mail       

//if managerstatus approved - send to mail Groupmanager

if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{UserProfile profile = upm.GetUserProfile(Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GroupManager"]));
               
String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();
SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GroupManager"]), "Approved");

}else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{                UserProfile profile = upm.GetUserProfile(Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEO"]));
               
String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEO"]), "Approved");
}
          
else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{             UserProfile profile = upm.GetUserProfile(Convert.ToString((workflowProperties.List.Items.GetItemById(ListItemID)["L_and_T"])));
        String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L_and_T"]), "Approved");}

else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Travel Destination"]) == "Inter-State")

{                UserProfile profile = upm.GetUserProfile(Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L_and_T"]));

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L_and_T"]), "Approved");
}
#endregion

#region Rejected mail
//if managerstatus reject - send to mail Accountname(who is request send to him)
          
else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Reject" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{

loginname = domain + "\\" + Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]);UserProfile profile = upm.GetUserProfile(loginname);
String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();
SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["ManagerName"]), "reject");}

//if managerstatus approved,GMStatus reject - send to mail Accountname(who is request send to him)

else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) == "Reject" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) != "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{

loginname = domain +"\\" + Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]);
UserProfile profile = upm.GetUserProfile(loginname);

String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GroupManager"]), "reject");}        
//if managerstatus-GMStatus=approved,CEOStatus-reject - send to mail Accountname(who is request send to him)

else if (Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Manager Status"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["GMStatus"]) == "Approved" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEOStatus"]) == "Reject" && Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["L And TStatus"]) != "Approved")

{

loginname = domain +
"\\" + Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]);

UserProfile profile = upm.GetUserProfile(loginname);

String WorkEmail = profile[PropertyConstants.WorkEmail].Value.ToString();

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["CEO"]), "reject");}

#endregion
else

{UserProfile profile = upm.GetUserProfile(Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["ManagerName"]));

SendMail(Convert.ToString(profile[PropertyConstants.WorkEmail].Value), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["Login Name"]), Convert.ToString(workflowProperties.List.Items.GetItemById(ListItemID)["ManagerName"]), "Approved");

}

}
       public bool SendMail(string ToEmail, string username, string managername, string status)
{    
return SPUtility.SendEmail(workflowProperties.Web,true, false, ToEmail, "External Course and Conference Request Form", MailContent(username, managername, status));

}public string MailContent(string username, string managername,string status)

{StringBuilder sBuilder = new StringBuilder();
          
if (status == "Approved")

{

sBuilder.Append("<table width='100%' border='0' cellspacing='0' cellpadding='0' style='border:3px solid #ebebeb; padding:5px; background-color:#fbfbfb;'>");
sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:18px; color:#036; padding:10px; border-bottom:1px dotted #ccc; font-weight:bold;'>New External Course and Conference Request Mail</td></tr>");

sBuilder.Append("<tr><td style='font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#990000; padding:10px; text-align:Left'>Hi,</td>");
sBuilder.Append("<tr><td style='font-family:Arial, Helvetica, sans-serif; font-weight=bold; font-size:13px; color:#990000; padding:10px; text-align:right'>" + DateTime.Now.ToShortDateString() + "</td></tr>");sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px; text-align:justify'> &nbsp;&nbsp;&nbsp;&nbsp; Your Request has been Approved by<b> " + managername + "</b> </td></tr>");
sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px;'>Thank You <br /><a href='" + workflowProperties.SiteUrl + "/New%20External%20Course%20and%20Conference%20Request%20Form/Forms/AllItems.aspx" + "'>Click here</a> for details </td></tr>");sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px;'><table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td style='padding:10px; background-color: #9CF; font-style:italic'>Note: This E-mail is for Notification Purpose only, <strong>DO NOT Reply to this email</strong></td></tr></table></td></tr>");s
Builder.Append("</table>");

}else

{

sBuilder.Append("<table width='100%' border='0' cellspacing='0' cellpadding='0' style='border:3px solid #ebebeb; padding:5px; background-color:#fbfbfb;'>");
sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:18px; color:#036; padding:10px; border-bottom:1px dotted #ccc; font-weight:bold;'>New External Course and Conference Request Mail</td></tr>");

sBuilder.Append("<tr><td style='font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#990000; padding:10px; text-align:Left'>Hi,</td>");sBuilder.Append("<td style='font-family:Arial, Helvetica, sans-serif; font-weight=bold; font-size:13px; color:#990000; padding:10px; text-align:right'>" + DateTime.Now.ToShortDateString() + "</td></tr>");

sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px; text-align:justify'> &nbsp;&nbsp;&nbsp;&nbsp;Your Request has been Rejected by<b>" + managername + "</b></td></tr>");sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px;'>Thank You <br /><a href='" + workflowProperties.SiteUrl + "/New%20External%20Course%20and%20Conference%20Request%20Form/Forms/AllItems.aspx" + "'>Click here</a> for details </td></tr>");

sBuilder.Append("<tr><td colspan='2' style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#333; padding:10px;'><table width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td style='padding:10px; background-color: #9CF; font-style:italic'>Note: This E-mail is for Notification Purpose only, <strong>DO NOT Reply to this email</strong></td></tr></table></td></tr>");
sBuilder.Append("</table>");}
          
return sBuilder.ToString();

}

No comments:

Post a Comment