public TransferSum GetTransfers(int modelId) { var result = new TransferSum(); var sin = GetSINByModelId(modelId, s => s.Wallet, s => s.Passport); if (sin == null) { throw new BillingException("sin not found"); } var listFrom = GetListAsNoTracking <Transfer>(t => t.WalletFromId == sin.WalletId, t => t.WalletFrom, t => t.WalletTo); var listFromTruncated = listFrom.Where(t => t.RentaId == null).ToList(); var listTo = GetListAsNoTracking <Transfer>(t => t.WalletToId == sin.WalletId, t => t.WalletFrom, t => t.WalletTo); var owner = BillingHelper.GetPassportName(sin.Passport); result.Transfers = CreateTransfersDto(listFromTruncated, listTo, owner); result.Transfers.Insert(0, CreateFakeTransferDto(-1, listFrom.Where(r => r.RentaId != null && !r.Overdraft).Sum(t => t.Amount), false, "Выплаченная сумма по рентам", owner, false)); result.Transfers.Insert(0, CreateFakeTransferDto(-2, listFrom.Where(r => r.RentaId != null && r.Overdraft).Sum(t => t.Amount), false, "Задолженность по рентам", owner, false)); return(result); }
public async Task <TransferSum> GetTransfersAsync(int modelId) { var result = new TransferSum(); var sin = GetSINByModelId(modelId, s => s.Wallet, s => s.Passport); if (sin == null) { throw new BillingException("sin not found"); } var owner = BillingHelper.GetPassportName(sin.Passport); var listFrom = await GetListAsNoTrackingAsync <Transfer>(t => t.WalletFromId == sin.WalletId, t => t.WalletFrom, t => t.WalletTo); var listFromTruncated = listFrom.Where(t => t.RentaId == null).ToList(); var listTo = await GetListAsNoTrackingAsync <Transfer>(t => t.WalletToId == sin.WalletId, t => t.WalletFrom, t => t.WalletTo); var allTransfers = await CreateTransfersDtoAsync(listFromTruncated, owner, TransferType.Incoming); allTransfers.AddRange(await CreateTransfersDtoAsync(listTo, owner, TransferType.Outcoming)); result.Transfers = allTransfers.OrderByDescending(t => t.OperationTime).ToList(); result.Transfers.Insert(0, CreateFakeTransferDto(-1, listFrom.Where(r => r.RentaId != null && !r.Overdraft).Sum(t => t.Amount), false, "Выплаченная сумма по рентам", owner, false)); result.Transfers.Insert(0, CreateFakeTransferDto(-2, listFrom.Where(r => r.RentaId != null && r.Overdraft).Sum(t => t.Amount), false, "Задолженность по рентам", owner, false)); return(result); }
public RentaSumDto GetRentas(int modelId) { var result = new TransferSum(); var sin = GetSINByModelId(modelId, s => s.Wallet, s => s.Character); if (sin == null) { throw new BillingException("sin not found"); } var sum = new RentaSumDto(); var list = GetListAsNoTracking <Renta>(r => r.Sin.Character.Model == modelId, r => r.Sku.Nomenklatura.Specialisation.ProductType, r => r.Sku.Corporation, r => r.Shop, r => r.Sin.Passport, r => r.Sin.Character) .Select(r => new RentaDto(r)) .ToList(); sum.Rentas = list; sum.Sum = list.Sum(r => r.FinalPrice); return(sum); }