コード例 #1
0
        public BelagroprombankDomain GetBelagroprombankInfo()
        {
            var json = _client.ReadDocumentAsync(UriFactory.CreateDocumentUri(_connectionOptions.DatabaseName,
                                                                              _connectionOptions.CollectionName, "Belagroprombank")).Result;
            BelagroprombankDomain belagroprombankDomain = JsonConvert.DeserializeObject <BelagroprombankDomain>(json.Resource.ToString());

            return(belagroprombankDomain);
        }
コード例 #2
0
        public BelagroprombankDomain UpdateBelagroprombankInfo()
        {
            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.Belagroprombank
                };

                var bank = bankDepartments.Find(dep => dep.Id == group.Key.ToString());

                if (bank == null || string.IsNullOrEmpty(bank.BankLatitude) || string.IsNullOrEmpty(bank.BankLongitude))
                {
                    continue;
                }

                try
                {
                    globalDep.WorkInfo = WorkTimeUtils.parseDateTimeFromBelagroprombank(bank);
                    globalDep.IsOpen   = WorkTimeUtils.isWorkingNow(globalDep.WorkInfo);
                }
                catch (Exception)
                {
                    Console.WriteLine("Caught exception for worktime: " + bank.BankWorkTimeRu);
                    continue;
                }

                globalDep.Latitude  = float.Parse(bank.BankLatitude, CultureInfo.InvariantCulture);
                globalDep.Longitude = float.Parse(bank.BankLongitude, CultureInfo.InvariantCulture);

                foreach (var currency in group)
                {
                    globalDep.Currencies.Add(currency);
                }

                globalDep.Address = bank.BankAddressRu;
                globalDep.Id      = Convert.ToInt32(bank.Id);
                globalDepartments.Add(globalDep);
            }

            var belagroprombankDomain = new BelagroprombankDomain()
            {
                Id          = "Belagroprombank",
                Departments = globalDepartments
            };

            BelagroprombankRepository b = new BelagroprombankRepository(_connectionOptions);

            try
            {
                b.GetStartedDemo().Wait();
            }
            catch (DocumentClientException de)
            {
                Exception baseException = de.GetBaseException();
            }
            catch (Exception e)
            {
                Exception baseException = e.GetBaseException();
            }

            CreateAsqDocumentIfNotExists(_connectionOptions.DatabaseName, _connectionOptions.CollectionName, belagroprombankDomain).Wait();

            return(belagroprombankDomain);
        }
コード例 #3
0
 private async Task CreateAsqDocumentIfNotExists(string databaseName, string collectionName, BelagroprombankDomain belagroprombankDomain)
 {
     try
     {
         await _client.ReadDocumentAsync(UriFactory.CreateDocumentUri(databaseName, collectionName, belagroprombankDomain.Id));
     }
     catch (DocumentClientException de)
     {
         if (de.StatusCode == HttpStatusCode.NotFound)
         {
             await _client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), belagroprombankDomain);
         }
         else
         {
             throw;
         }
     }
 }