public MetadataViewModel(MetadataModel model) { this.Languages = model.Languages; this.ResponseCodes = model.ResponseCodes; this.UserStatus = model.UserStatus.OrderBy(c => c.Sequence); }
public async Task <ResponseModel> LoadSystemDataAsync(bool force = false) { _systemLogs.Clear(); _systemLogs.Add($"LoadSystemDataAsync (force = {force})"); var status = _dataTypes[DataManagerDataType.System].WaitOne(0); if (status && !force) { return(ResponseModel.Error(ResponseCode.Ok)); } _dataTypes[DataManagerDataType.System].Reset(); DateTime started = DateTime.UtcNow; _systemLogs.Add($"Fetching System Settings"); var data = await GetSystem(); if (data != null) { _metadata = data.Metadata; data.EmailTemplates.ForEach(c => _emailTemplates.AddOrUpdate(c.TemplateId, c, (k, v) => c)); data.SMSTemplates.ForEach(c => _smsTemplates.AddOrUpdate(c.TemplateId, c, (k, v) => c)); } _dataTypes[DataManagerDataType.System].Set(); if (_metadata != null) { double dur = DateTime.UtcNow.Subtract(started).TotalSeconds; #region Printout _systemLogs.Add($"{Metadata.Config.Count()} Config Loaded"); _systemLogs.Add($"{Metadata.Events.Count()} Events Loaded"); _systemLogs.Add($"{Metadata.Languages.Count()} Languages Loaded"); _systemLogs.Add($"{Metadata.ResponseCodes.Count()} ResponseCodes Loaded"); _systemLogs.Add($"{Metadata.UserStatus.Count()} UserStatus Loaded"); if (this.AppSettings.Environment != EnvironmentId.Development) { Microsoft.ApplicationInsights.TelemetryClient client = new Microsoft.ApplicationInsights.TelemetryClient(); try { _systemLogs.Add("DataManager.LoadSystemDataAsync -> Startup Duration (metadata): " + dur.ToString()); client.TrackEvent("DataManager.LoadSystemDataAsync", new Dictionary <string, string> { { "duration-metadata", dur.ToString() } }, new Dictionary <string, double> { { "duration-metadata", dur } }); } catch { } } #endregion _systemLogs.ForEach(c => Console.WriteLine(c)); return(ResponseModel.Success()); } return(ResponseModel.Error(ResponseCode.NoData, "Metadata not loaded from cache. World ends now")); }