Exemplo n.º 1
0
        /// <summary>
        /// Populate dabatase if empty and update it if the version is not the latest. Leave the function if already up to date
        /// </summary>
        /// <param name="dbSql">Path of the database</param>
        /// <param name="jsonObject">Configuration file as object</param>
        public void PopulateDb(string dbSql, JsonModel jsonObject)
        {
            try
            {
                var versionService = new VersionService(dbSql);
                // One version in the Table
                var versionResult = versionService.GetVersion().FirstOrDefault();
                //var query = versionResult.FirstOrDefault();
                var clientResult = _getClientParamService.GetClient();
                // Check Version
                if (versionResult != null && versionResult.Version == jsonObject.Version)
                {
                    TextLoading = "La base de données est à jour...";
                    return;
                }

                if (versionResult != null && versionResult.Version != jsonObject.Version)
                {
                    // Clean DB
                    _versionService.DelVersion(versionResult);
                    foreach (var company in clientResult)
                    {
                        _getClientParamService.DelClient(company);
                    }
                }


                // Add new Datas
                _versionService.AddVersion(new VersionModel {
                    Version = jsonObject.Version
                });
                foreach (var company in jsonObject.Companies)
                {
                    _getClientParamService.AddClient(new Companies {
                        CompanyName = company.CompanyName, Url = company.Url, Domain = company.Domain
                    });
                }
                TextLoading = "Mise à jour de la nouvelle base de données...";


                IsLoading   = false;
                TextLoading = "Chargement effectué";
            }
            catch (Exception ex)
            {
                Task.Run(() => DependencyService.Get <ILogger>().WriteLog(ex));
            }
        }