SolutionExtensions.SuggestionFileModel.FromFile C# (CSharp) Method

FromFile() public static method

public static FromFile ( string fileName ) : SuggestionFileModel
fileName string
return SuggestionFileModel
        public static SuggestionFileModel FromFile(string fileName)
        {
            if (!File.Exists(fileName))
                return null;

            string fileContent = File.ReadAllText(fileName);

            var obj = JObject.Parse(fileContent);
            SuggestionFileModel fileModel = new SuggestionFileModel
            {
                Extensions = new Dictionary<string, IEnumerable<IExtensionModel>>()
            };

            var fileBased = new List<IExtensionModel>();

            foreach (var ext in obj["fileBased"])
            {
                SuggestionModel model = new SuggestionModel
                {
                    Name = ((JProperty)ext).Name,
                    ProductId = ext.FirstOrDefault()?["productId"].ToString(),
                    Description = ext.FirstOrDefault()?["description"].ToString(),
                    Link = ext.FirstOrDefault()?["link"].ToString(),
                    FileTypes = ext.FirstOrDefault()?["fileTypes"].Values<string>().ToArray(),
                    TextMatch = ext.FirstOrDefault()?["textMatch"]?.ToString(),
                    Category = FILE_BASED
                };

                fileBased.Add(model);
            }

            fileModel.Extensions.Add(FILE_BASED, fileBased);

            var general = new List<IExtensionModel>();

            foreach (var ext in obj["general"])
            {
                SuggestionModel model = new SuggestionModel
                {
                    Name = ((JProperty)ext).Name,
                    ProductId = ext.FirstOrDefault()?["productId"].ToString(),
                    Link = ext.FirstOrDefault()?["link"].ToString(),
                    Description = ext.FirstOrDefault()?["description"].ToString(),
                    Category = GENERAL
                };

                general.Add(model);
            }

            fileModel.Extensions.Add(GENERAL, general);

            return fileModel;
        }

Usage Example

        public SuggestionFileModel GetCurrentFileModel()
        {
            if (_model == null)
            {
                string assembly = Assembly.GetExecutingAssembly().Location;
                string folder   = Path.GetDirectoryName(assembly);
                string fileName = Path.Combine(folder, "JSON\\Schema\\", Constants.SUGGESTIONS_FILENAME);

                _model = SuggestionFileModel.FromFile(fileName);
            }

            return(_model);
        }
SuggestionFileModel