public async Task Add(string group, TargetModel targetModel)
        {
            var allTargets = await _targetsProvider.Provide(group);

            EnsureTargetDoesNotExist(targetModel, allTargets);

            allTargets.Add(targetModel);

            var allTargetsJsonText = JsonConvert.SerializeObject(allTargets);

            var targetsFileLocation = _settingsProvider.ProvideTargetFileLocation(group);

            await _fileWriter.TryWrite(allTargetsJsonText, targetsFileLocation);
        }
예제 #2
0
        public async Task <TargetsModel> Provide(string group)
        {
            var targetsFileLocation = _settingsProvider.ProvideTargetFileLocation(group);

            var targetsFileContent = await _fileReader.TryRead(targetsFileLocation);

            var deserializeObject = JsonConvert.DeserializeObject <TargetsModel>(targetsFileContent);

            if (deserializeObject == null)
            {
                return(new TargetsModel());
            }

            return(deserializeObject);
        }
예제 #3
0
        public async Task Delete(string group, string targetName)
        {
            var allTargets = await _targetsProvider.Provide(group);

            var targetToDelete = allTargets.ToList().SingleOrDefault(x =>
                                                                     x.Targets.Any(t => t.Equals(targetName, StringComparison.InvariantCultureIgnoreCase)));

            if (targetToDelete == default(TargetModel))
            {
                Console.WriteLine($"Cannot delete target {targetName} -- not found");

                return;
            }

            var targetIndex = allTargets.IndexOf(targetToDelete);

            allTargets.RemoveAt(targetIndex);

            var allTargetsJsonText = JsonConvert.SerializeObject(allTargets);

            var targetsFileLocation = _settingsProvider.ProvideTargetFileLocation(group);

            await _fileWriter.TryWrite(allTargetsJsonText, targetsFileLocation);
        }