public async Task <DebeModel> GetDebeList() { DebeModel debeModel = new DebeModel { CurrentPage = "1", PageCount = "1" }; IEnumerable <DebeTitleHeaderModel> debeTitleHeaderModels = await _bindingComponent .Binder() .WithUrl("https://eksisozluk.com/debe") .WithQueryString(new KeyValuePair <string, string>("_", DateTime.Now.Ticks.ToString())) .WithHeader(new KeyValuePair <string, string>("X-Requested-With", "XMLHttpRequest")) .BindModel <DebeTitleHeaderModel>(model => { string decodedUrl = WebUtility.UrlDecode(model.Link); string entryId = decodedUrl.Split('#')[1]; model.EntryId = entryId; }); // TODO : @deniz buradaki işlemin async await mimarisine uygun şekilde BindModel'in içerisinde yapılması gerekiyor. var titleHeaderModels = debeTitleHeaderModels as IList <DebeTitleHeaderModel> ?? debeTitleHeaderModels.ToList(); IEnumerable <Task> entryTasks = titleHeaderModels.Select(model => { return(RunWithErrorHandling(async() => { EntryDetailModel entryDetailModel = await GetEntryById(model.EntryId); model.DebeEntryDetailModel = entryDetailModel; })); }); await Task.WhenAll(entryTasks); debeModel.DebeTitleHeaderModels = titleHeaderModels.ToList(); return(debeModel); }
// Calculate EntryDetails using Models Case Update public static List <EntryDetailModel> UpdateCalculateEntries(int portofolioaccount, int EntryID, SellingInvoiceModel sellingInvoiceModel = null, PurchaseInvoiceModel purchaseInvoiceModel = null, ReceiptExchangeModel receiptExchangeModel = null, NoticeModel noticeModel = null) { #region Definitions decimal TotalNet = 0, TotalBankCommision = 0, TotalTaxOnCommision = 0, TotalSTocksSales = 0, TotalSTocksPurchase = 0; List <EntryDetailModel> DetailListModel = new List <EntryDetailModel>(); int AccBankCommision = 0, AccTaxonCommision = 0, AccSalesStocks = 0, AccPuchaseStocks = 0; EntryModel Entrymodel = new EntryModel(); #endregion #region SellingInvoice if (sellingInvoiceModel != null) { var SettingAccsell = sellingInvoiceModel.SettingModel.SettingAccs; var SellDetails = sellingInvoiceModel.DetailsModels; //Get EntryDetail Accounts From Setting #region SettingAccounts foreach (var Accs in SettingAccsell) { if (Accs.AccountType == 1) { AccBankCommision = Accs.AccountID; } else if (Accs.AccountType == 2) { AccTaxonCommision = Accs.AccountID; } else { AccSalesStocks = Accs.AccountID; } } #endregion #region Calculate EntryDetailsValues if (SellDetails != null) { foreach (var item in SellDetails) { TotalNet += item.NetAmmount; TotalBankCommision += item.BankCommission; TotalTaxOnCommision += item.TaxOnCommission; TotalSTocksSales += item.SelingValue; } } #endregion #region EntryDetails //Add Debit Accounts with values #region Debit EntryDetailModel DetailModel1 = new EntryDetailModel(); DetailModel1.Debit = TotalNet; DetailModel1.AccountID = portofolioaccount; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel1); EntryDetailModel DetailModel2 = new EntryDetailModel(); DetailModel2.Debit = TotalBankCommision; DetailModel2.AccountID = AccBankCommision; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel2); EntryDetailModel DetailModel3 = new EntryDetailModel(); DetailModel3.Debit = TotalTaxOnCommision; DetailModel3.AccountID = AccTaxonCommision; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel3); #endregion //Add Credit Accounts with values #region Credit EntryDetailModel DetailModel4 = new EntryDetailModel(); DetailModel4.Credit = TotalSTocksSales; DetailModel4.AccountID = AccSalesStocks; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel4); #endregion #endregion } #endregion #region PurchaseInvoice if (purchaseInvoiceModel != null) { var SettingAccpurchase = purchaseInvoiceModel.SettingModel.SettingAccs; var PurchaseDetails = purchaseInvoiceModel.DetailsModels; //Get EntryDetail Accounts From Setting #region SettingAccounts foreach (var Accs in SettingAccpurchase) { if (Accs.AccountType == 1) { AccPuchaseStocks = Accs.AccountID; } else if (Accs.AccountType == 2) { AccBankCommision = Accs.AccountID; } else { AccTaxonCommision = Accs.AccountID; } } #endregion #region Calculate EntryDetailsValues if (PurchaseDetails != null) { foreach (var item in PurchaseDetails) { TotalNet += item.NetAmmount; TotalBankCommision += item.BankCommission; TotalTaxOnCommision += item.TaxOnCommission; TotalSTocksPurchase += item.PurchaseValue; } } #endregion #region EntryDetails //Add Debit Accounts with values #region Debit EntryDetailModel DetailModel1 = new EntryDetailModel(); DetailModel1.Debit = TotalNet; DetailModel1.AccountID = AccPuchaseStocks; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel1); EntryDetailModel DetailModel2 = new EntryDetailModel(); DetailModel2.Debit = TotalBankCommision; DetailModel2.AccountID = AccBankCommision; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel2); EntryDetailModel DetailModel3 = new EntryDetailModel(); DetailModel3.Debit = TotalTaxOnCommision; DetailModel3.AccountID = AccTaxonCommision; DetailModel1.EntryID = EntryID; DetailListModel.Add(DetailModel3); #endregion //Add Credit Accounts with values #region Credit EntryDetailModel DetailModel4 = new EntryDetailModel(); DetailModel4.Credit = TotalSTocksPurchase; DetailModel4.AccountID = portofolioaccount; DetailModel4.EntryID = EntryID; DetailListModel.Add(DetailModel4); #endregion #endregion } #endregion #region ReceiptExchange if (receiptExchangeModel != null) { #region ReceiptExchange var ReceiptExchangeDetails = receiptExchangeModel.RecExcDetails; #region EntryDetails if (ReceiptExchangeDetails != null) { foreach (var item in ReceiptExchangeDetails) { if (item.Debit != null) { //Add Debit Accounts with values #region Debit EntryDetailModel DetailModel = new EntryDetailModel(); DetailModel.Debit = item.Debit; DetailModel.AccountID = item.AccountID; DetailModel.EntryID = EntryID; DetailListModel.Add(DetailModel); #endregion } if (item.Credit != null) { //Add Credit Accounts with values #region Credit EntryDetailModel DetailModel = new EntryDetailModel(); DetailModel.Credit = item.Credit; DetailModel.AccountID = item.AccountID; DetailModel.EntryID = EntryID; DetailListModel.Add(DetailModel); #endregion } } } #endregion #endregion } #endregion #region NoticeDebitCredit if (noticeModel != null) { #region DebitCredit var NoticeDetails = noticeModel.NoticeModelDetails; #region EntryDetails if (NoticeDetails != null) { foreach (var item in NoticeDetails) { if (item.Debit != null || item.StocksDebit != null) { //Add Debit Accounts with values #region Debit EntryDetailModel DetailModel = new EntryDetailModel(); DetailModel.Debit = item.Debit; if (item.StocksDebit != null) { DetailModel.StocksDebit = item.StocksDebit; } DetailModel.AccountID = item.AccountID; DetailModel.EntryID = EntryID; DetailListModel.Add(DetailModel); #endregion } if (item.Credit != null || item.StocksCredit != null) { //Add Credit Accounts with values #region Credit EntryDetailModel DetailModel = new EntryDetailModel(); DetailModel.Credit = item.Credit; if (item.StocksCredit != null) { DetailModel.StocksCredit = item.StocksCredit; } DetailModel.AccountID = item.AccountID; DetailModel.EntryID = EntryID; DetailListModel.Add(DetailModel); #endregion } } } #endregion #endregion } #endregion return(DetailListModel); }