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); } } } } }
public static ProfileViewModel GetUserProfileByUsername(string username, int languageId) { using (var db = new CrmSystemEntities()) { try { var userProfile = db.UserProfileTranslations.Where(r => r.UserProfile.Username == username && r.UserProfile.Status != (int)GeneralEnums.StatusEnum.Deleted && r.LanguageId == languageId) .ToList().Select(x => new ProfileViewModel() { Id = x.UserProfileId, LanguageId = x.LanguageId, IdNumber = x.UserProfile.IdNumber, PhoneNumber = x.UserProfile.PhoneNumber, GenderLookupId = x.UserProfile.GenderLookupId, MartialStatusLookupId = x.UserProfile.MartialStatusLookupId, FullName = x.FullName, Address = x.Address, Mobile = x.UserProfile.Mobile, Email = x.UserProfile.Username, Fax = x.UserProfile.Fax, BirthDay = x.UserProfile.Birthday, Status = x.UserProfile.Status, CityId = x.UserProfile.CityId, ProfilePath = x.UserProfile.ProfilePhoto, ProvinceId = x.UserProfile.ProvinceId, RegionId = x.UserProfile.RegionId, LastLogin = x.UserProfile.LastLogin, ManagerId = x.UserProfile.ManagerId, Username = x.UserProfile.Username, Department = x.UserProfile.DepartmentId, DepartmentName = x.UserProfile?.DepartmentId != null ? LanguageFallbackHelper.GetDepartment((int)x.UserProfile.DepartmentId, languageId)?.Name : string.Empty, PrefferdLanguage = x.UserProfile.PreferedLanguageId }).FirstOrDefault(); if (userProfile == null) { userProfile = db.UserProfiles.Where(r => r.UserProfileTranslations.Any(x => x.IsDefault) && r.Username == username && r.Status == (int)GeneralEnums.StatusEnum.Active).ToList() .SelectMany(r => r.UserProfileTranslations).Select(x => new ProfileViewModel() { Id = x.UserProfileId, LanguageId = x.LanguageId, IdNumber = x.UserProfile.IdNumber, PhoneNumber = x.UserProfile.PhoneNumber, GenderLookupId = x.UserProfile.GenderLookupId, MartialStatusLookupId = x.UserProfile.MartialStatusLookupId, FullName = x.FullName, ProfilePath = x.UserProfile.ProfilePhoto, Address = x.Address, Mobile = x.UserProfile.Mobile, Email = x.UserProfile.Username, Fax = x.UserProfile.Fax, BirthDay = x.UserProfile.Birthday, Status = x.UserProfile.Status, CityId = x.UserProfile.CityId, ProvinceId = x.UserProfile.ProvinceId, RegionId = x.UserProfile.RegionId, LastLogin = x.UserProfile.LastLogin, ManagerId = x.UserProfile.ManagerId, Department = x.UserProfile.DepartmentId, DepartmentName = x.UserProfile?.DepartmentId != null ? LanguageFallbackHelper.GetDepartment((int)x.UserProfile.DepartmentId, languageId)?.Name : string.Empty, PrefferdLanguage = x.UserProfile.PreferedLanguageId }).FirstOrDefault(); } return(userProfile); } catch (Exception ex) { //LogHelper.LogException("", ex, "Error While Getting UserProfile by username"); return(new ProfileViewModel()); } } }