PageRenderTime 51ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/FACT.Web/Business/ControllerFunctions.cs

https://bitbucket.org/gsilves/fact
C# | 357 lines | 345 code | 11 blank | 1 comment | 74 complexity | b5ebc65d5150cba349ae218f0e7117f7 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
  1. using AuthorizeNet.Api.Contracts.V1;
  2. using FACT.Domain.Models;
  3. using FACT.Domain.Models.Controllers;
  4. using FACT.Domain.Models.EntityModels;
  5. using FACT.Domain.Models.MiscModels;
  6. using FACT.Service;
  7. using FACT.Web.Models;
  8. using FACT.Web.Services;
  9. using Newtonsoft.Json;
  10. using Newtonsoft.Json.Linq;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Configuration;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Web;
  17. using System.Web.Mvc;
  18. using System.Web.UI.WebControls;
  19. using System.Xml;
  20. using System.Xml.Linq;
  21. namespace FACT.Web.Business
  22. {
  23. public static class ControllerFunctions
  24. {
  25. private static AuthorizeNetService aNetApi = new AuthorizeNetService();
  26. private static int intCSVLimit = 500;
  27. private static int intContactLimit = 500;
  28. public static List<MyCampaignsModel> GetMyCampaigns(Profiles advisor, IFactMainService _factMainService)
  29. {
  30. List<MyCampaignsModel> listOfMyCampaignModels = new List<MyCampaignsModel>();
  31. AmazonS3Service awsService = new AmazonS3Service();
  32. MamlFunctions mamlController = new MamlFunctions();
  33. List<Campaigns> savedCampaigns = _factMainService.FindAllCampaigns().Where(p => p.UserId == advisor.UserId && p.Status == "Saved").ToList();
  34. foreach (var s in savedCampaigns)
  35. {
  36. AmazonResponse ar = awsService.DownloadMaml(s.CampaignFileURL);
  37. if (ar.Successful)
  38. {
  39. string mamlXML = ar.Message;
  40. MyCampaignsModel myCampaignsModel = new MyCampaignsModel();
  41. myCampaignsModel.Status = "";
  42. myCampaignsModel.DbStatus = s.Status;
  43. myCampaignsModel.CampaignName = s.CampaignName;
  44. myCampaignsModel.DateSubmitted = s.DateSubmitted;
  45. myCampaignsModel.Maml = mamlXML;
  46. myCampaignsModel.Program = mamlController.FromMAMLString(mamlXML);
  47. myCampaignsModel.CreatorName = advisor.FirstName + " " + advisor.LastName;
  48. myCampaignsModel.Url = s.CampaignFileURL;
  49. listOfMyCampaignModels.Add(myCampaignsModel);
  50. }
  51. }
  52. byte[] progCallData =
  53. Encoding.UTF8.GetBytes(@"{""Credentials"":{""IsEncrypted"":false,""PartnerPassword"":"""",""PartnerTicket"":""" + advisor.MFMasterPartnerTicket + @""",""Ticket"":""" +
  54. advisor.MFTicket + @""",""UserPassword"":""" + advisor.GetMFPassword(Convert.ToBoolean(ConfigurationManager.AppSettings["MFPasswordMODAct"])) +
  55. @"""},""SearchString"":"""",""MaxRows"":500,""SortExpression"":"""",""StartRowIndex"":0,""State"":255}");
  56. JObject progResultPost = JObject.FromObject(GlobalFunctions.ProcessJSONHTTPRequest("https://studio.mdl.io/REST/programservice/GetProgramList", progCallData,
  57. "application/json", "POST", "", ""));
  58. if (progResultPost["Result"]["ErrorMessage"].ToString() != "")
  59. {
  60. }
  61. else
  62. {
  63. for (int i = 0; i <= progResultPost["ProgramList"].Count() - 1; i++)
  64. {
  65. string creatorId = progResultPost["ProgramList"][i]["CreatorID"].ToString();
  66. if (creatorId == advisor.MFUserID)
  67. {
  68. string pName = progResultPost["ProgramList"][i]["ProgramName"].ToString();
  69. try
  70. {
  71. Campaigns dbCampaign = _factMainService.FindAllCampaigns().Where(x => x.CampaignName == pName && x.UserId == advisor.UserId).First();
  72. if (dbCampaign != null)
  73. {
  74. if (dbCampaign.Status == "Saved")
  75. {
  76. foreach (MyCampaignsModel savedCampaign in listOfMyCampaignModels)
  77. {
  78. if (savedCampaign.CampaignName == pName)
  79. {
  80. savedCampaign.CreatorName = progResultPost["ProgramList"][i]["CreatorName"].ToString();
  81. savedCampaign.Id = Convert.ToInt32(progResultPost["ProgramList"][i]["ProgramID"].ToString());
  82. savedCampaign.CampaignName = progResultPost["ProgramList"][i]["ProgramName"].ToString();
  83. savedCampaign.Status = progResultPost["ProgramList"][i]["StateName"].ToString();
  84. savedCampaign.State = Convert.ToInt32(progResultPost["ProgramList"][i]["State"]);
  85. savedCampaign.DateSubmitted = Convert.ToDateTime(progResultPost["ProgramList"][i]["PublishDate"].ToString());
  86. break;
  87. }
  88. }
  89. }
  90. else
  91. {
  92. MyCampaignsModel myCampaignsModel = new MyCampaignsModel();
  93. myCampaignsModel.CreatorName = progResultPost["ProgramList"][i]["CreatorName"].ToString();
  94. myCampaignsModel.Id = Convert.ToInt32(progResultPost["ProgramList"][i]["ProgramID"].ToString());
  95. myCampaignsModel.CampaignName = progResultPost["ProgramList"][i]["ProgramName"].ToString();
  96. myCampaignsModel.Status = progResultPost["ProgramList"][i]["StateName"].ToString();
  97. myCampaignsModel.State = Convert.ToInt32(progResultPost["ProgramList"][i]["State"].ToString());
  98. myCampaignsModel.DateSubmitted = Convert.ToDateTime(progResultPost["ProgramList"][i]["PublishDate"].ToString());
  99. myCampaignsModel.Maml = dbCampaign.CampaignFileURL;
  100. myCampaignsModel.Token = dbCampaign.ApprovalToken;
  101. myCampaignsModel.DbStatus = dbCampaign.Status;
  102. listOfMyCampaignModels.Add(myCampaignsModel);
  103. }
  104. }
  105. }
  106. catch (Exception)
  107. {
  108. }
  109. }
  110. }
  111. }
  112. return listOfMyCampaignModels.OrderByDescending(x => x.DateSubmitted).ToList();
  113. }
  114. public static string generateDisclosure(Profiles profile, IFactMainService _factMainService)
  115. {
  116. string res = "";
  117. Disclosures objDisclosure = _factMainService.FindAllDisclosures().SingleOrDefault(p => p.UserType == profile.UserType && p.IAType == profile.IAType);
  118. if (objDisclosure != null)
  119. {
  120. if (objDisclosure.isVariable)
  121. {
  122. objDisclosure.DisclosureText = objDisclosure.DisclosureText.Replace("[INSERT RIA NAME HERE]", profile.ApprovedRIAName).Replace("[FSC/RAA/SPF/WFS]", profile.BDID);
  123. }
  124. res = objDisclosure.DisclosureText;
  125. }
  126. else
  127. {
  128. res = "No disclosure text!";
  129. }
  130. return res;
  131. }
  132. public static void StopAllCampaigns(long userId, IFactMainService _factMainService)
  133. {
  134. Profiles Profile = _factMainService.FindProfileById(userId);
  135. MindfireFunctions objMF = new MindfireFunctions();
  136. objMF.AuthenticateAccount(Profile.Email, Profile.GetMFPassword(Convert.ToBoolean(ConfigurationManager.AppSettings["MFPasswordMODAct"])), ref Profile);
  137. byte[] progCallData = Encoding.UTF8.GetBytes(@"{""Credentials"":{""IsEncrypted"":false,""PartnerPassword"":"""",""PartnerTicket"":""" + Profile.MFMasterPartnerTicket +
  138. @""",""Ticket"":""" + Profile.MFTicket + @""",""UserPassword"":""" + Profile.GetMFPassword(Convert.ToBoolean(ConfigurationManager.AppSettings["MFPasswordMODAct"])) +
  139. @"""},""SearchString"":"""",""MaxRows"":500,""SortExpression"":"""",""StartRowIndex"":0,""State"":255}");
  140. JObject progResultPost = JObject.FromObject(GlobalFunctions.ProcessJSONHTTPRequest("https://studio.mdl.io/REST/programservice/GetProgramList", progCallData,
  141. "application/json", "POST", "", ""));
  142. if (progResultPost["Result"]["ErrorMessage"].ToString() != "")
  143. {
  144. }
  145. else
  146. {
  147. for (int i = 0; i <= progResultPost["ProgramList"].Count() - 1; i++)
  148. {
  149. string creatorId = progResultPost["ProgramList"][i]["CreatorID"].ToString();
  150. if (creatorId == Profile.MFUserID)
  151. {
  152. string pName = progResultPost["ProgramList"][i]["ProgramName"].ToString();
  153. string programID = progResultPost["ProgramList"][i]["ProgramID"].ToString();
  154. byte[] campaignCallData = Encoding.UTF8.GetBytes(@"{""Credentials"":{""IsEncrypted"":false,""PartnerPassword"":"""",""PartnerTicket"":"""",""Ticket"":""" +
  155. Profile.MFTicket + @""",""UserPassword"":""" + Profile.GetMFPassword(Convert.ToBoolean(ConfigurationManager.AppSettings["MFPasswordMODAct"])) +
  156. @"""},""MamlFormat"":0,""ProgramID"":" + programID + "}");
  157. JObject campaignResultPost = JObject.FromObject(GlobalFunctions.ProcessJSONHTTPRequest("https://studio.mdl.io/REST/programservice/CheckoutProgram", campaignCallData,
  158. "application/json", "POST", "", ""));
  159. if (campaignResultPost["Result"]["ErrorMessage"].ToString() != "")
  160. {
  161. }
  162. else
  163. {
  164. string mamlXML = string.Empty;
  165. string byteString = string.Empty;
  166. for (int x = 0; x <= campaignResultPost["Maml"].Count() - 1; x++)
  167. {
  168. mamlXML = mamlXML + (char)(Convert.ToInt32(campaignResultPost["Maml"][x].ToString()));
  169. }
  170. XmlDocument campXML = new XmlDocument();
  171. campXML.LoadXml(mamlXML);
  172. XmlElement rootLoad = campXML.DocumentElement;
  173. Campaigns campaignChangedStatus = _factMainService.FindAllCampaigns().Where(c => c.CampaignName == pName).SingleOrDefault();
  174. if (campaignChangedStatus != null)
  175. {
  176. if (rootLoad.Attributes["State"].Value == "Start")
  177. {
  178. rootLoad.Attributes["State"].Value = "Stop";
  179. //*** rootLoad.Item["Campaign"].Attributes["State"].Value = "Stop";
  180. }
  181. var encodedData = GlobalFunctions.Convert64(campXML.InnerXml);
  182. for (int x = 0; x <= encodedData.Length - 1; x++)
  183. {
  184. byteString = byteString + encodedData[x] + ",";
  185. byteString = byteString + Environment.NewLine;
  186. }
  187. byteString = byteString.Remove(byteString.LastIndexOf(","));
  188. byte[] progCallData2 =
  189. Encoding.UTF8.GetBytes(@"{""Maml"":[" + byteString +
  190. @"],""MamlFormat"":0,""CheckoutAfterCheckin"":false,""Comments"":""Edited Campaign"",""Credentials"":{""IsEncrypted"":false,""PartnerPassword"":"""",""PartnerTicket"":"""",""Ticket"":""" +
  191. Profile.MFTicket + @""",""UserPassword"":""" + Profile.GetMFPassword(Convert.ToBoolean(ConfigurationManager.AppSettings["MFPasswordMODAct"])) + @"""}}");
  192. JObject campaignStopPost = JObject.FromObject(GlobalFunctions.ProcessJSONHTTPRequest("https://studio.mdl.io/REST/programservice/CheckinProgram",
  193. progCallData2, "application/json", "POST", "", ""));
  194. if (campaignStopPost["Result"]["ErrorMessage"].ToString() != "")
  195. {
  196. }
  197. else
  198. {
  199. if (campaignChangedStatus != null)
  200. {
  201. campaignChangedStatus.Status = "Stop";
  202. campaignChangedStatus.LaunchDate = DateTime.Now;
  203. _factMainService.UpdateCampaigns(campaignChangedStatus);
  204. }
  205. }
  206. }
  207. }
  208. }
  209. }
  210. }
  211. }
  212. public static bool HasSubscriptions(string authorizeNetId)
  213. {
  214. if (authorizeNetId == null)
  215. {
  216. authorizeNetId = "";
  217. }
  218. getCustomerProfileResponse tmp = aNetApi.GetCustomerProfile(authorizeNetId);
  219. List<ARBGetSubscriptionResponse> subscriptions = new List<ARBGetSubscriptionResponse>();
  220. if (tmp != null && !(tmp.subscriptionIds == null) && !(tmp.subscriptionIds.Count() == 0))
  221. {
  222. foreach (var subId in tmp.subscriptionIds)
  223. {
  224. subscriptions.Add(aNetApi.GetSubscriptionDetails(subId));
  225. }
  226. }
  227. else
  228. {
  229. return false;
  230. }
  231. int countOfActiveSubs = subscriptions.Where(x => x.subscription.status == 0).ToList().Count;
  232. return (countOfActiveSubs > 0);
  233. }
  234. public static string decodeBDID(string BDID)
  235. {
  236. if (BDID.ToUpper().Contains("SAGEPOINT"))
  237. {
  238. return "SPF";
  239. }
  240. else if (BDID.ToUpper().Contains("ROYAL"))
  241. {
  242. return "RAA";
  243. }
  244. else if (BDID.ToUpper().Contains("FSC SECURITIES"))
  245. {
  246. return "FSC";
  247. }
  248. else if (BDID.ToUpper().Contains("WOODBURY"))
  249. {
  250. return "WFS";
  251. }
  252. else if (BDID.ToUpper().Contains("ADVISOR GROUP"))
  253. {
  254. return "AG";
  255. }
  256. else
  257. {
  258. return "0";
  259. }
  260. }
  261. public static string generatePersonaDisclosure(Personas _persona, Profiles _profile, IFactMainService _factMainService)
  262. {
  263. string res = "";
  264. Disclosures objDisclosure = _factMainService.FindAllDisclosures().SingleOrDefault(p => p.UserType == _profile.UserType && p.IAType == _persona.IAType);
  265. if (objDisclosure != null)
  266. {
  267. if (objDisclosure.isVariable)
  268. {
  269. objDisclosure.DisclosureText = objDisclosure.DisclosureText.Replace("[INSERT RIA NAME HERE]", _persona.ApprovedRIAName).Replace("[FSC/RAA/SPF/WFS]", _persona.BDID);
  270. }
  271. res = objDisclosure.DisclosureText;
  272. }
  273. else
  274. {
  275. res = "No disclosure text!";
  276. }
  277. return res;
  278. }
  279. public static bool IsImage(HttpPostedFileBase file)
  280. {
  281. return file.ContentType == "image/gif" || file.ContentType == "image/jpeg" || file.ContentType == "image/png";
  282. }
  283. private static SalesForceImportViewModel FillCustomFields(SalesForceImportViewModel sfImports)
  284. {
  285. sfImports.intCSVLimit = intCSVLimit.ToString();
  286. sfImports.intContactLimit = intContactLimit.ToString();
  287. var customFields = Enumerable.Empty<CustomFieldAdmin>();
  288. try
  289. {
  290. customFields = ProcessSalesForceServiceRequestAdmin(service =>
  291. service.GetCustomFieldsAdmin(SessionManager.SalesForce.Authentication, SoqlDataTable.Contact, SoqlDataTable.Lead));
  292. }
  293. catch (Exception exception)
  294. {
  295. Tuple<String, Object[]> extraMessageFormat = MessageHelper.GetCurrentRequestInformationMessageFormat();
  296. this.EventLogger.LogError(exception, extraMessageFormat.Item1, extraMessageFormat.Item2);
  297. }
  298. IEnumerable<ListItem> contactCustomFields = customFields.Where(cf => cf.Table == SoqlDataTable.Contact).Select(cf => new ListItem(cf.Label, cf.Id)).ToArray();
  299. IEnumerable<ListItem> leadCustomFields = customFields.Where(cf => cf.Table == SoqlDataTable.Lead).Select(cf => new ListItem(cf.Label, cf.Id).ToArray();
  300. var contactOptions = contactCustomFields.Select(purpose => new SelectListItem()
  301. {
  302. Text = purpose.Text,
  303. Value = purpose.Value
  304. }).ToList();
  305. var leadOptions = leadCustomFields.Select(purpose => new SelectListItem()
  306. {
  307. Text = purpose.Text,
  308. Value = purpose.Value
  309. }).ToList();
  310. SelectListItem firstCustom = new SelectListItem();
  311. firstCustom.Value = "0";
  312. firstCustom.Text = "Select Custom Contact";
  313. contactOptions.Add(firstCustom);
  314. sfImports.CustomFieldsContact = contactOptions;
  315. SelectListItem firstLead = new SelectListItem();
  316. firstLead.Value = "0";
  317. firstLead.Text = "Select Custom Lead";
  318. leadOptions.Add(firstLead);
  319. sfImports.CustomFieldsLead = leadOptions;
  320. sfImports.SelectedContact = "0";
  321. sfImports.SelectedLead = "0";
  322. return sfImports;
  323. }
  324. private static void ProcessSalesForceServiceRequestAdmin<TResult>(Func<SFServiceAdmin, TResult> request)
  325. {
  326. SFServiceAdmin _sfServiceAdmin = new SFServiceAdmin();
  327. if (SessionManagerAdmin.SalesForceAdmin.AccessTokenAvailableAdmin)
  328. {
  329. try
  330. {
  331. return request[_sfServiceAdmin];
  332. }
  333. catch (SalesForceSessionExceptionAdmin exception)
  334. {
  335. SessionManagerAdmin.SalesForceAdmin.AuthenticationAdmin = _sfServiceAdmin.GetAuthenticationInformationAdmin(SessionManagerAdmin.SalesForceAdmin.AuthenticationAdmin.RefreshToken);
  336. return request(_sfServiceAdmin);
  337. }
  338. }
  339. else
  340. {
  341. SessionManagerAdmin.SalesForceAdmin.AuthenticationAdmin = _sfServiceAdmin.GetAuthenticationInformationAdmin(SessionManagerAdmin.SalesForceAdmin.AuthenticationAdmin.RefreshToken);
  342. return request(_sfServiceAdmin);
  343. }
  344. }
  345. }
  346. }