Пример #1
0
        void UpdateSettings(string id, NotificationTarget target, bool state)
        {
            var    settingsById = Settings.Program.UserNotifications.ById;
            string targetString = target.ToString();

            if (state)
            {
                if (!settingsById.TryGetValue(id, out var values))
                {
                    values           = new HashSet <string>();
                    settingsById[id] = values;
                }
                values.Add(targetString);
            }
            else
            {
                if (settingsById.TryGetValue(id, out var values))
                {
                    values.Remove(targetString);
                    if (values.Count == 0)
                    {
                        settingsById.Remove(id);
                    }
                }
            }
            // TODO: сделать сохранение настроек асинхронным
            // и писать не каждый раз, а время от времени
            Settings.Program.Save();
        }
Пример #2
0
        public async Task <string> GetContent(NotificationTarget target, string templatePath, dynamic model)
        {
            string templateTypePath = "Templates\\" + target.ToString();
            string basePath         = Path.Combine(AppDomain.CurrentDomain !.BaseDirectory !, templateTypePath);
            var    engine           = new RazorLightEngineBuilder()
                                      .UseFileSystemProject(basePath)
                                      .UseMemoryCachingProvider()
                                      .Build();

            return(await engine.CompileRenderAsync(templatePath, model));
        }