public SettingsFormViewModel(
        string fileName,
        Settings settings,
        IEnumerable <Kind> kinds,
        IEnumerable <Tag> tags,
        ISettingsService?settingsService          = null,
        ISettingsEntityService <Kind>?kindService = null,
        ISettingsEntityService <Tag>?tagService   = null,
        ResourceManager?resourceManager           = null,
        IScheduler?scheduler = null)
        : base(new SettingsModel(settings, kinds.ToList(), tags.ToList()), resourceManager, scheduler)
    {
        this.settingsService = settingsService ?? GetDefaultService <ISettingsService>(fileName);
        this.kindService     = kindService ?? GetDefaultService <ISettingsEntityService <Kind> >(fileName);
        this.tagService      = tagService ?? GetDefaultService <ISettingsEntityService <Tag> >(fileName);

        this.ValidationRule(vm => vm.ListName, name => !String.IsNullOrWhiteSpace(name), "ListNameEmpty");

        this.CopyProperties();
        this.CanNeverDelete();
        this.EnableChangeTracking();
    }
 public static IObservable <Unit> UpdateAllInTaskPool <TEntity>(
     this ISettingsEntityService <TEntity> service, IEnumerable <TEntity> entities)
     where TEntity : EntityBase =>
 Observable.Start(() => service.UpdateAll(entities), RxApp.TaskpoolScheduler);
 public static IObservable <IEnumerable <TEntity> > GetAllInTaskPool <TEntity>(
     this ISettingsEntityService <TEntity> service)
     where TEntity : EntityBase =>
 Observable.Start(service.GetAll, RxApp.TaskpoolScheduler);