Exemplo 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);
                    }
                }
            }
        }
Exemplo 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);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        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());
                }
            }
        }