private void SendEmail(int IdeaId) { SubmitIdeaUtil submitIdeaUtil = new SubmitIdeaUtil(); List <IdeaEmailToDetails> emailTo = submitIdeaUtil.GetAllStakeholdersEmailAdd(IdeaId); RESTAPIIdeaBasicDetailsInterchange ideaDetails = new RESTAPIIdeaBasicDetailsInterchange(); ideaDetails = ideautils.GetIdeaBasicDetails(IdeaId); EmailUtil emailObj = new EmailUtil(); // If the highest status in Statuslog is 1 then the User from Idea Assignmemts should be Reviwer // If the highest status in Statuslog is 2 then the User from Idea Assignmemts should be Sponsor // If the highest status in Statuslog is 3 then no action is needed as of now foreach (var usr in emailTo) { if (usr.IdeaState == 1 || usr.IdeaState == 5) { // Send Email to Submitter EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaCreatedSubmitter.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } if (usr.IdeaState == 0) { EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaAssignedReviewer.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } } }
public RESTAPIIdeaBasicDetailsInterchange GetIdeaBasicDetails(IIdeaDatabaseDataContext dc, int IdeaId) { RESTAPIIdeaBasicDetailsInterchange ideaBasicDetailsInterchange = null; ideaBasicDetailsInterchange = (from idea in dc.Ideas where idea.IdeaId == IdeaId select new RESTAPIIdeaBasicDetailsInterchange() { IdeaId = idea.IdeaId, Title = idea.Title } ).FirstOrDefault(); return(ideaBasicDetailsInterchange); }
public RESTAPIIdeaBasicDetailsInterchange GetIdeaBasicDetails(int IdeaId) { ResponseBase response = null; List <string> res = new List <string>(); RESTAPIIdeaBasicDetailsInterchange ideaBasicDetailsInterchange = new RESTAPIIdeaBasicDetailsInterchange(); DatabaseWrapper.databaseOperation(response, (context, query) => { ideaBasicDetailsInterchange = query.GetIdeaBasicDetails(context, IdeaId); context.SubmitChanges(); } , readOnly: true ); return(ideaBasicDetailsInterchange); }
public RestAPIAddIdeaStateResponse UpdateIdeaStatus([FromUri] int IdeaID) { RestAPIAddIdeaStateResponse response = new RestAPIAddIdeaStateResponse(); submitIdeaUtil.InsertIdeaStatus(response, IdeaID, UserID); logUtil.InsertIdeaLog(response, IdeaID, LogMessages.UpdateIdeaStatus, (int)IdeaLogTypes.Info, Enum.GetName(typeof(IdeaMethodTypes), IdeaMethodTypes.UpdateIdeaStatus), EnumDescriptor.GetEnumDescription(IdeaMethodTypes.UpdateIdeaStatus), UserID); if (response.ErrorList.Count == 0) { ISubmitIdeaUtil ideautils = DependencyInjector.Get <ISubmitIdeaUtil, SubmitIdeaUtil>(); RESTAPIIdeaBasicDetailsInterchange ideaDetails = new RESTAPIIdeaBasicDetailsInterchange(); ideaDetails = ideautils.GetIdeaBasicDetails(IdeaID); List <IdeaEmailToDetails> emailTo = submitIdeaUtil.GetAllStakeholdersEmailAdd(IdeaID); EmailUtil emailObj = new EmailUtil(); // TODO: The below email logic is written here since there is no ISubmitIdeaUtil in InnovationPortalService, the database util is directly called, this needs to be changed in code refactoring. // Determine the current state of Idea: if the highest status is 2, it is currently reviewed if 3 it is sponsored if (emailTo[0].IdeaState == (int)IdeaStatusTypes.SponsorPending) { // This is an Idea Status update request for changing state from Submitted to Reviewed foreach (var usr in emailTo) { if (usr.IdeaState == (int)IdeaStatusTypes.ReviewPending) { // Send Email to Submitter EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaReviewedSubmitter.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } if (usr.IdeaState == (int)IdeaStatusTypes.SponsorPending) { // Send Email to Reviwer EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaReviewedReviewer.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } if (usr.IdeaState == (int)IdeaStatusTypes.Default) { //The user in Assignment table should be Sponsor EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaAssignedSponsor.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } } } else if (emailTo[0].IdeaState == (int)IdeaStatusTypes.Sponsored) { // This is an Idea Status update request for changing state from Reviewed to Sponsored foreach (var usr in emailTo) { if (usr.IdeaState == (int)IdeaStatusTypes.ReviewPending) { // Send Email to Submitter EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaSponsoredSubmitter.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } if (usr.IdeaState == (int)IdeaStatusTypes.SponsorPending) { // Send Email to Reviewer EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaSponsoredReviewer.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } if (usr.IdeaState == (int)IdeaStatusTypes.Sponsored) { // Send Email to Sponsor EmailTemplate emailTemp = emailObj.GetEmailTemplate(EmailTemplateType.IdeaSponsoredSponsor.ToString()); emailObj.SendEmail(usr.EmailAddress, emailTemp.Body, emailTemp.Subject); } //if (usr.IdeaState == 0) //{ // //This user should be a Sales Guy. No action needs to be taken currently. This case is kept for future requirement. //} } } } return(response); }