public async Task <DatabaseResponse> UpdateContentStatus(CommunityContentStatus contentUpdate) { try { SqlParameter[] parameters = { new SqlParameter("@UserId", SqlDbType.Int), new SqlParameter("@ContentId", SqlDbType.Int), new SqlParameter("@ContentType", SqlDbType.Int), new SqlParameter("@Status", SqlDbType.Bit), new SqlParameter("@Comments", SqlDbType.VarChar) }; parameters[0].Value = contentUpdate.UserId; parameters[1].Value = contentUpdate.ContentId; parameters[2].Value = contentUpdate.ContentType; parameters[3].Value = contentUpdate.Status; parameters[4].Value = contentUpdate.comments; _DataHelper = new DataAccessHelper("spi_CommunityApproveReject", parameters, _configuration); DataSet dt = new DataSet(); int result = await _DataHelper.RunAsync(dt); if (dt.Tables.Count > 0 && dt.Tables[0] != null && dt.Tables[0].Rows.Count > 0) { if (result == (int)DbReturnValue.Published) { if (contentUpdate.ContentType == 1) { ContentMediaController controller = new ContentMediaController(_configuration, _converter); await controller.GeneratePdf(contentUpdate.ContentId, 1); } else { ContentMediaController controller = new ContentMediaController(_configuration, _converter); await controller.GeneratePdf(contentUpdate.ContentId, 2); } UserEmail userEmail = new UserEmail(); userEmail.Email = Convert.ToString(dt.Tables[0].Rows[0]["Email"]); int portalLanguageId = Convert.ToInt32(dt.Tables[0].Rows[0]["PortalLanguageId"]); string text = string.Empty; string buttonText = string.Empty; if (portalLanguageId == 2) { text = "Your Content has been published during community check."; buttonText = "View Content"; userEmail.Subject = "Content has been published"; } else { text = "تم نشر المصدر المحتوى الخاص بك، يمكنك الضغط على الرابط أدناه للعرض"; buttonText = "عرض المحتوى"; userEmail.Subject = "تم نشر المحتوى"; } userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Tables[0].Rows[0]["UserName"]), contentUpdate.EmailUrl, text, buttonText, dt.Tables[0].Rows[0]["PortalLanguageId"] == null ? 0 : Convert.ToInt32(dt.Tables[0].Rows[0]["PortalLanguageId"]), _configuration); await Emailer.SendEmailAsync(userEmail, _configuration); } else if (result == (int)DbReturnValue.Rejected) { UserEmail userEmail = new UserEmail(); int portalLanguageId = Convert.ToInt32(dt.Tables[0].Rows[0]["PortalLanguageId"]); userEmail.Email = Convert.ToString(dt.Tables[0].Rows[0]["Email"]); string text = string.Empty; string buttonText = string.Empty; if (portalLanguageId == 2) { if (dt.Tables[1] != null && dt.Tables[1].Rows.Count > 0) { text = "Your Content has been rejected during Community Check. Click below button to view. Reason(s) : "; StringBuilder builder = new StringBuilder(); builder.Append("<br/>"); builder.Append("<ol>"); foreach (string reason in dt.Tables[1].Rows[0]["Comments"].ToString().Remove(dt.Tables[1].Rows[0]["Comments"].ToString().Length - 2).Split(";;")) { builder.Append("<li>" + reason + "</li>"); } builder.Append("</ol>"); text += builder.ToString(); } else { text = "Your Content has been rejected during community check. Click below button to view. Reason : " + contentUpdate.comments; } buttonText = "View Content"; userEmail.Subject = "Your course or resource has been rejected."; userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Tables[0].Rows[0]["UserName"]), contentUpdate.EmailUrl, text, buttonText, dt.Tables[0].Rows[0]["PortalLanguageId"] == null ? 0 : Convert.ToInt32(dt.Tables[0].Rows[0]["PortalLanguageId"]), _configuration); await Emailer.SendEmailAsync(userEmail, _configuration); } else { if (dt.Tables[1] != null && dt.Tables[1].Rows.Count > 0) { text = "بعد المراجعة، تم رفض المحتوى المقدم من قبلك يمكنك الضغط على الرابط أدناه لعرض المحتوى .<br><br>"; buttonText = "عرض المحتوى"; StringBuilder builder = new StringBuilder(); builder.Append("<br/>"); builder.Append("<ol>"); foreach (string reason in dt.Tables[1].Rows[0]["Comments"].ToString().Remove(dt.Tables[1].Rows[0]["Comments"].ToString().Length - 2).Split(";;")) { builder.Append("<li>" + reason + "</li>"); } builder.Append("</ol>"); text += builder.ToString(); } else { text = "بعد المراجعة، تم رفض المحتوى المقدم من قبلك يمكنك الضغط على الرابط أدناه لعرض المحتوى .<br><br>" + contentUpdate.comments + ":الأسباب"; buttonText = "عرض المحتوى"; } userEmail.Subject = "بعد المراجعة، تم رفض المحتوى المقدم من قبلك."; userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Tables[0].Rows[0]["UserName"]), contentUpdate.EmailUrl, text, buttonText, dt.Tables[0].Rows[0]["PortalLanguageId"] == null ? 0 : Convert.ToInt32(dt.Tables[0].Rows[0]["PortalLanguageId"]), _configuration); await Emailer.SendEmailAsync(userEmail, _configuration); } } } return(new DatabaseResponse { ResponseCode = result, Results = null }); } catch (Exception ex) { Log.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical)); throw; } finally { _DataHelper.Dispose(); } }
public async Task <DatabaseResponse> UpdateContentStatus(MoEContentStatus contentUpdate) { try { SqlParameter[] parameters = { new SqlParameter("@UserId", SqlDbType.Int), new SqlParameter("@ContentId", SqlDbType.Int), new SqlParameter("@ContentType", SqlDbType.Int), new SqlParameter("@Status", SqlDbType.Bit), new SqlParameter("@Comments", SqlDbType.NVarChar), new SqlParameter("@EmailUrl", SqlDbType.NVarChar) }; parameters[0].Value = contentUpdate.UserId; parameters[1].Value = contentUpdate.ContentId; parameters[2].Value = contentUpdate.ContentType; parameters[3].Value = contentUpdate.Status; parameters[4].Value = contentUpdate.comments; parameters[5].Value = contentUpdate.EmailUrl; _DataHelper = new DataAccessHelper("spi_MoEApproveReject", parameters, _configuration); DataTable dt = new DataTable(); int result = await _DataHelper.RunAsync(dt); if (dt.Rows.Count > 0) { int portalLanguageId = Convert.ToInt32(dt.Rows[0]["PortalLanguageId"]); string text = string.Empty; string buttonText = string.Empty; if (result == (int)DbReturnValue.Published) { if (contentUpdate.ContentType == 1) { ContentMediaController controller = new ContentMediaController(_configuration, _converter); await controller.GeneratePdf(contentUpdate.ContentId, 1); } else { ContentMediaController controller = new ContentMediaController(_configuration, _converter); await controller.GeneratePdf(contentUpdate.ContentId, 2); } UserEmail userEmail = new UserEmail(); userEmail.Email = Convert.ToString(dt.Rows[0]["Email"]); if (portalLanguageId == 2) { text = "Your Content has been published during expert check."; userEmail.Subject = "Content has been published"; buttonText = "View Content"; } else { text = "تم نشر المصدر المحتوى الخاص بك، يمكنك الضغط على الرابط أدناه للعرض."; userEmail.Subject = "تم نشر المحتوى ."; buttonText = "عرض المحتوى"; } userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Rows[0]["UserName"]), contentUpdate.EmailUrl, text, buttonText, dt.Rows[0]["PortalLanguageId"] == null ? 0 : Convert.ToInt32(dt.Rows[0]["PortalLanguageId"]), _configuration); await Emailer.SendEmailAsync(userEmail, _configuration); } else if (result == (int)DbReturnValue.Rejected) { UserEmail userEmail = new UserEmail(); userEmail.Email = Convert.ToString(dt.Rows[0]["Email"]); if (portalLanguageId == 2) { text = "Your Content has been rejected during expert check. Click below button to view. <br/> Reason : " + contentUpdate.comments; buttonText = "View Content"; userEmail.Subject = "Content has been rejected"; } else { text = "بعد المراجعة، تم رفض المحتوى المقدم من قبلك. يمكنك الضغط على الرابط أدناه لعرض المحتوى.<br><br>الأسباب:" + contentUpdate.comments + "<br/>"; buttonText = "عرض المحتوى"; userEmail.Subject = "بعد المراجعة، تم رفض المحتوى المقدم من قبلك."; } userEmail.Body = Emailer.CreateEmailBody(Convert.ToString(dt.Rows[0]["UserName"]), contentUpdate.EmailUrl, text, buttonText, dt.Rows[0]["PortalLanguageId"] == null ? 0 : Convert.ToInt32(dt.Rows[0]["PortalLanguageId"]), _configuration); await Emailer.SendEmailAsync(userEmail, _configuration); } } return(new DatabaseResponse { ResponseCode = result, Results = null }); } catch (Exception ex) { Log.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical)); throw; } finally { _DataHelper.Dispose(); } }