public void SendSMSTemplateAsEmail(Dictionary <string, int> smsTemplateEnumValues, SystemCas casData, IPrincipal loggedInUser = null) { InitMail(); string ownerDataUserName = casData.CreatedBy; int assignedToId = casData.AssigneeId.GetValueOrDefault(); int caseId = casData.Id; foreach (var data in smsTemplateEnumValues) { var allMsgTemplates = LanguageFallbackHelper.GetBothLanguageSMSTemplate(data.Value); var msgDefaultLanguage = allMsgTemplates.Select(t => t.DefaultTemplateLanguage).Distinct().FirstOrDefault(); var msgData = allMsgTemplates.Where(t => t.LanguageId == msgDefaultLanguage).FirstOrDefault(); if (msgData == null) { var defaultSystemLanguage = CultureHelper.GetDefaultLanguageId(); if (defaultSystemLanguage != msgDefaultLanguage) { msgData = allMsgTemplates.Where(t => t.LanguageId == defaultSystemLanguage).FirstOrDefault(); } } if (msgData != null && !(string.IsNullOrEmpty(msgData.Description) || string.IsNullOrWhiteSpace(msgData.Description))) { var destinationUserData = new ProfileViewModel(); if (data.Key == GeneralEnums.Send_SMS_To.Citizen.ToString()) { destinationUserData = LanguageFallbackHelper.GetUserProfileByUsername(ownerDataUserName, msgData.DefaultTemplateLanguage); } else if (data.Key == GeneralEnums.Send_SMS_To.Employee.ToString()) { destinationUserData = LanguageFallbackHelper.GetUserProfile(assignedToId, msgData.DefaultTemplateLanguage);; } else { destinationUserData = null; } if (destinationUserData != null && destinationUserData.Id > 0 && (destinationUserData.Email != null)) // TODO using IsNullOrWhiteSpace { msgData.Description = SMSHelper.GetMsgBodyWithParameters(destinationUserData, msgData.Description, caseId); string subject = $"{Constants.EmailTemplate.SubjectSystemCase} - {casData.Title}"; SendMail(FromAddress, new List <string>() { destinationUserData.Email }, subject, msgData.Description); AddEmailToCommunicationLog((int)GeneralEnums.CommunicationLogEnum.Email, msgData.Description, loggedInUser); } } } }
public static void SendSMSTemplate(Dictionary <string, int> smsTemplateEnumValues, IPrincipal loggedInUser = null, string ownerDataUserName = "", int assignedToId = 0, int caseId = 0) { foreach (var data in smsTemplateEnumValues) { var allMsgTemplates = LanguageFallbackHelper.GetBothLanguageSMSTemplate(data.Value); var msgDefaultLanguage = allMsgTemplates.Select(t => t.DefaultTemplateLanguage).Distinct().FirstOrDefault(); var msgData = allMsgTemplates.Where(t => t.LanguageId == msgDefaultLanguage).FirstOrDefault(); if (msgData == null) { var defaultSystemLanguage = CultureHelper.GetDefaultLanguageId(); if (defaultSystemLanguage != msgDefaultLanguage) { msgData = allMsgTemplates.Where(t => t.LanguageId == defaultSystemLanguage).FirstOrDefault(); } } if (msgData != null && !(string.IsNullOrEmpty(msgData.Description) || string.IsNullOrWhiteSpace(msgData.Description))) { var smsServiceRequest = new SendSmsRequest() { Url = SettingHelper.GetOrCreate(Constants.SystemSettings.SMSApiUrl, "https://019sms.co.il/api").Value, Username = SettingHelper.GetOrCreate(Constants.SystemSettings.SMSUsername, "sectorspr").Value, Password = SettingHelper.GetOrCreate(Constants.SystemSettings.SMSPassword, "faraj123").Value, Destinations = new List <string>(), Message = string.Empty, Source = SettingHelper.GetOrCreate(Constants.SystemSettings.SMSSource, "123").Value }; var smsService = new Crm.Sms.SmsService(); var destinationUserData = new ProfileViewModel(); if (data.Key == GeneralEnums.Send_SMS_To.Citizen.ToString()) { destinationUserData = LanguageFallbackHelper.GetUserProfileByUsername(ownerDataUserName, msgData.DefaultTemplateLanguage); } else if (data.Key == GeneralEnums.Send_SMS_To.Employee.ToString()) { destinationUserData = LanguageFallbackHelper.GetUserProfile(assignedToId, msgData.DefaultTemplateLanguage);; } else { destinationUserData = null; } if (destinationUserData != null && destinationUserData.Id > 0) { msgData.Description = GetMsgBodyWithParameters(destinationUserData, msgData.Description, caseId); smsServiceRequest.Destinations = new List <string> { destinationUserData.Mobile }; smsServiceRequest.Message = msgData.Description; var _result = smsService.Execute(smsServiceRequest); if (_result) { AddSMSToCommunicationLog((int)GeneralEnums.CommunicationLogEnum.Sms, smsServiceRequest.Message, loggedInUser); } } } } }