public async Task ImportBackUpAsync(BackUpDTO backupDto)
        {
            await CleanDataBaseAsync();

            //ImportCurrencies(backupDto.Currencies);
            await ImportAccountsAsync(backupDto.Accounts);
            await ImportTransactionsAsync(backupDto.Transactions);
            await ImportTransfersAsync(backupDto.Transfers);
            await ImportTagsAsync(backupDto.Tags);
            await ImportTagsToTransactionsAsync(backupDto.TagsToTransactions);
            await ImportExchangeRatesAsync(backupDto.ExchangeRates);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Import([FromBody] BackUpDTO json)
        {
            await this.syncService.ImportBackUpAsync(json);

            return(Ok());
        }
        public async Task <BackUpDTO> GetBackUpAsync()
        {
            var currencies = (await this.currencyRepository.GetCurriencesAsync()).Select(x => new CurrencySyncDTO
            {
                Code     = x.Code,
                FullName = x.FullName,
                Id       = x.Id,
                Number   = x.Number,
                Symbol   = x.Symbol
            }).ToList();

            var accounts = (await this.accountRepository.GetAccountsAsync()).Select(x => new AccountSyncDTO
            {
                Id                = x.Id,
                ExternalId        = Guid.Parse(x.ExternalId),
                AccountGroupId    = x.AccountGroupId,
                Comment           = x.Comment,
                CurrencyId        = x.CurrencyId,
                IsIncludedToTotal = x.IsIncludedToTotal,
                Name              = x.Name,
                Order             = x.Order,
                ParentAccountId   = x.ParentAccountId,
                Type              = x.Type,
            }).ToList();

            var transfers = (await this.transactionRepository.GetTransfersAsync()).Select(x => new TransferSyncDTO
            {
                Id = x.Id,
                FromTransactionId = x.FromTransactionId,
                Rate            = x.Rate,
                ToTransactionId = x.ToTransactionId,
                ExternalId      = Guid.Parse(x.ExternalId),
            }).ToList();

            var transactions = (await this.transactionRepository.GetTransactionsAsync()).Select(x => new TransactionSyncDTO
            {
                Name       = x.Name,
                Comment    = x.Comment,
                AccountId  = x.AccountId,
                Amount     = x.Amount,
                CategoryId = x.CategoryId,
                CreatedOn  = x.CreatedOn,
                Date       = x.Date,
                Id         = x.Id,
                ExternalId = Guid.Parse(x.ExternalId),
                ModifiedOn = x.ModifiedOn,
                Type       = x.Type,
                Latitude   = x.Latitude,
                Longitude  = x.Longitude,
                IsDeleted  = x.IsDeleted,
            }).ToList();

            var tags = (await this.tagRepository.GetAsync())
                       .Select(x => new TagSyncDTO
            {
                Id         = x.Id,
                ExternalId = Guid.Parse(x.ExternalId),
                Name       = x.Name,
                ModifiedOn = x.ModifiedOn,
                IsDeleted  = x.IsDeleted
            }).ToList();

            var t2t = (await this.tagRepository.GetTagToTransactionsAsync())
                      .Select(x => new TagToTransactionSyncDTO
            {
                Id            = x.Id,
                TagId         = Guid.Parse(x.Tag.ExternalId),
                TransactionId = Guid.Parse(x.Transaction.ExternalId),
            }).ToList();

            var exchangeRates = (await this.currencyRepository.GetExchangeRatesAsync())
                                .Select(x => new ExchangeRateSyncDTO
            {
                Rate         = x.Rate,
                Date         = x.Date,
                FromCurrency = x.FromCurrency.Code,
                ToCurrency   = x.ToCurrency.Code,
                ExternalId   = Guid.Parse(x.ExternalId),
                IsDeleted    = x.IsDeleted,
                ModifiedOn   = x.ModifiedOn
            }).ToList();

            var backUp = new BackUpDTO
            {
                Currencies         = currencies,
                Accounts           = accounts,
                Transfers          = transfers,
                Transactions       = transactions,
                Tags               = tags,
                TagsToTransactions = t2t,
                ExchangeRates      = exchangeRates,
            };

            return(backUp);
        }