Exemple #1
0
        public async Task UpdateSettingsV2(SmsSettingsV2Dto input)
        {
            var gatewayType = !string.IsNullOrWhiteSpace(input.Gateway)
                ? _typeFinder.Find(t => typeof(ISmsGateway).IsAssignableFrom(t) && SmsUtils.GetGatewayAlias(t) == input.Gateway).FirstOrDefault()
                : null;

            var gatewayUid = gatewayType?.GetClassUid();

            await ChangeSettingAsync(SheshaSettingNames.Sms.SmsGateway, gatewayUid);
            await ChangeSettingAsync(SheshaSettingNames.Sms.RedirectAllMessagesTo, input.RedirectAllMessagesTo);

            var gateway = gatewayType != null
                ? IocManager.Resolve(gatewayType) as ISmsGateway
                : null;

            if (gateway.SettingsType != null)
            {
                var gatewayAlias        = SmsUtils.GetGatewayAlias(gateway.GetType());
                var gatewaySettingsJson = input.Gateways[gatewayAlias] as JObject;

                var gatewaySettings = gatewaySettingsJson.ToObject(gateway.SettingsType);

                await gateway.SetSettingsAsync(gatewaySettings);
            }
        }
Exemple #2
0
        public async Task <SmsSettingsV2Dto> GetSettingsV2()
        {
            var currentGatewayType = await GetCurrentGatewayType();

            var settings = new SmsSettingsV2Dto
            {
                Gateway = currentGatewayType != null?SmsUtils.GetGatewayAlias(currentGatewayType) : null,
                              RedirectAllMessagesTo = (await GetSettingValueAsync(SheshaSettingNames.Sms.RedirectAllMessagesTo)),
            };
            var gatewayTypes = _typeFinder.Find(t => !t.IsAbstract && typeof(ISmsGateway).IsAssignableFrom(t));

            foreach (var gatewayType in gatewayTypes)
            {
                var gateway = IocManager.Resolve(gatewayType) as ISmsGateway;
                if (gateway.SettingsType == null)
                {
                    continue;
                }

                var gatewaySettings = await gateway.GetSettingsAsync();

                var gatewayAlias = SmsUtils.GetGatewayAlias(gateway.GetType());
                settings.Gateways[gatewayAlias] = gatewaySettings;
            }

            return(settings);
        }