Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }