< Summary

Information
Class: SlqStudio.Application.Services.AppSettingsServices.AppSettingsBuilder
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AppSettingsServices/AppSettingsBuilder.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 15
Coverable lines: 15
Total lines: 46
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 10
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildAppSettings(...)0%110100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AppSettingsServices/AppSettingsBuilder.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Http;
 2using Newtonsoft.Json.Linq;
 3
 4namespace SlqStudio.Application.Services.AppSettingsServices;
 5
 6public class AppSettingsBuilder
 7{
 8    public JObject BuildAppSettings(IFormCollection form)
 9    {
 010        var updatedConfig = new JObject();
 11
 012        foreach (var item in form)
 13        {
 014            if (item.Key == "__RequestVerificationToken")
 15                continue;
 16
 017            var keys = item.Key.Split('.');
 018            JToken current = updatedConfig;
 19
 020            for (int i = 0; i < keys.Length; i++)
 21            {
 022                var key = keys[i];
 23
 024                if (i == keys.Length - 1)
 25                {
 026                    ((JObject)current)[key] = item.Value.ToString();
 27                }
 28                else
 29                {
 030                    if (current[key] is JObject next)
 31                    {
 032                        current = next;
 33                    }
 34                    else
 35                    {
 036                        var newObj = new JObject();
 037                        ((JObject)current)[key] = newObj;
 038                        current = newObj;
 39                    }
 40                }
 41            }
 42        }
 43
 044        return updatedConfig;
 45    }
 46}