public BelarusbankDomain GetBelarusbankInfo() { var json = _client.ReadDocumentAsync(UriFactory.CreateDocumentUri(_connectionOptions.DatabaseName, _connectionOptions.CollectionName, "Belarusbank")).Result; BelarusbankDomain belagroprombankDomain = JsonConvert.DeserializeObject <BelarusbankDomain>(json.Resource.ToString()); return(belagroprombankDomain); }
public BelarusbankDomain UpdateBelarusbankInfo() { var globalDepartments = new List <GlobalDepartment>(); var bankCurrencies = GetCurrencies(); var bankDepartments = GetBankDepartments(); var groupedCurrencies = bankCurrencies.GroupBy(c => c.FilialId); foreach (var group in groupedCurrencies) { var globalDep = new GlobalDepartment { BankType = BankType.Belarusbank }; var bank = bankDepartments.Single(dep => dep.FilialId == group.Key); if (string.IsNullOrEmpty(bank.GpsX) || string.IsNullOrEmpty(bank.GpsY)) { continue; } try { globalDep.WorkInfo = WorkTimeUtils.parseDateTimeFromBelarusbank(bank); globalDep.IsOpen = WorkTimeUtils.isWorkingNow(globalDep.WorkInfo); } catch (Exception) { Console.WriteLine("Caught exception for worktime: " + bank.InfoWorktime); continue; } globalDep.Latitude = float.Parse(bank.GpsX, CultureInfo.InvariantCulture); globalDep.Longitude = float.Parse(bank.GpsY, CultureInfo.InvariantCulture); foreach (var currency in group) { globalDep.Currencies.Add(currency); } globalDep.Address = bank.NameType + " " + bank.Name + " " + bank.StreetType + " " + bank.Street + " " + bank.HomeNumber; globalDep.Id = bank.FilialId; globalDepartments.Add(globalDep); } var belarucbankDomain = new BelarusbankDomain() { Id = "Belarusbank", Departments = globalDepartments }; BelarusbankRepository b = new BelarusbankRepository(_connectionOptions); try { b.GetStartedDemo().Wait(); } catch (DocumentClientException de) { Exception baseException = de.GetBaseException(); } catch (Exception e) { Exception baseException = e.GetBaseException(); } CreateAsqDocumentIfNotExists(_connectionOptions.DatabaseName, _connectionOptions.CollectionName, belarucbankDomain).Wait(); return(belarucbankDomain); }
private async Task CreateAsqDocumentIfNotExists(string databaseName, string collectionName, BelarusbankDomain belarusbankDomain) { try { await _client.ReadDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, belarusbankDomain.Id)); } catch (DocumentClientException de) { if (de.StatusCode == HttpStatusCode.NotFound) { await _client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), belarusbankDomain); } else { throw; } } }