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); }
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); }