public IActionResult Update(int id, [FromBody] PortfolioModel portModel) { if (id != portModel.PortfolioID) { return(Ok(1)); } if (ModelState.IsValid) { if (portModel.EstablishDate == null) { portModel.EstablishDate = DateTime.Now.ToString(); } var model = _mapper.Map <Portfolio>(portModel); var currentstocks = unitOfWork.PortfolioTransactionsRepository.Get(filter: x => x.PortfolioID == model.PortfolioID); //var Checkselles = unitOfWork.SellingInvoiceReposetory.Get(filter: q => q.PortfolioID == model.PortfolioID); //if (Checkselles.Any(m => m.PortfolioID == model.PortfolioID)) //{ // return Ok(5); //} var Checkpurches = unitOfWork.PurchaseOrderRepository.Get(filter: q => q.PortfolioID == model.PortfolioID); if (Checkpurches.Any(m => m.PortfolioID == model.PortfolioID)) { return(Ok(5)); } var currentStocks = unitOfWork.PortfolioTransactionsRepository.Get(x => x.PortfolioID == model.PortfolioID); //foreach (var item in currentStocks) //{ // if (item.HasTransaction == true) // { // return Ok(5); // } //} // عدد الاسهم الحاليه if (portModel.portfolioTransactionModels != null) { portModel.TotalStocksCount = 0; foreach (var item in portModel.portfolioTransactionModels) { portModel.TotalStocksCount += item.CurrentStocksCount; } } var OpeningStocks = portModel.portfolioOpeningStocksArray; var Check = unitOfWork.PortfolioRepository.Get(NoTrack: "NoTrack"); if (!Check.Any(m => m.Code == portModel.Code)) { unitOfWork.PortfolioRepository.Update(model); // portfolio accounts unitOfWork.PortfolioRepository.Update(model); unitOfWork.Save(); var oldAccount = unitOfWork.PortfolioAccountRepository.GetEntity(x => x.PortfolioID == model.PortfolioID); unitOfWork.PortfolioAccountRepository.Delete(oldAccount.PortfolioAccountID); if (portModel.AccountID != null) { PortfolioAccountModel portfolioAccountModel = new PortfolioAccountModel(); portfolioAccountModel.AccountID = portModel.AccountID; portfolioAccountModel.PortfolioID = model.PortfolioID; portfolioAccountModel.Type = true; var portfolioAccount = _mapper.Map <PortfolioAccount>(portfolioAccountModel); unitOfWork.PortfolioAccountRepository.Insert(portfolioAccount); } // shareholders var oldHolders = unitOfWork.PortfolioOpeningStocksRepository .Get(filter: m => m.PortfolioID == model.PortfolioID); if (oldHolders != null) { unitOfWork.PortfolioOpeningStocksRepository.RemovRange(oldHolders); } if (OpeningStocks != null) { foreach (var item5 in OpeningStocks) { item5.PortfolioID = model.PortfolioID; var newHolder = _mapper.Map <PortfolioOpeningStocks>(item5); unitOfWork.PortfolioOpeningStocksRepository.Insert(newHolder); } //CurrentStocks if (currentStocks != null) { unitOfWork.PortfolioTransactionsRepository.RemovRange(currentStocks); } foreach (var item6 in OpeningStocks) { PortfolioTransactionModel portfolioTransaction = new PortfolioTransactionModel(); portfolioTransaction.PortfolioID = model.PortfolioID; portfolioTransaction.PartnerID = item6.PartnerID; portfolioTransaction.CurrentStockValue = item6.OpeningStockValue; portfolioTransaction.CurrentStocksCount = item6.OpeningStocksCount; var obj = _mapper.Map <PortfolioTransaction>(portfolioTransaction); unitOfWork.PortfolioTransactionsRepository.Insert(obj); } } } else { if (Check.Any(m => m.Code == portModel.Code && m.PortfolioID == id)) { unitOfWork.PortfolioRepository.Update(model); var oldAccount = unitOfWork.PortfolioAccountRepository.GetEntity(x => x.PortfolioID == model.PortfolioID); unitOfWork.PortfolioAccountRepository.Delete(oldAccount.PortfolioAccountID); // portfolio accounts if (portModel.AccountID != null) { PortfolioAccountModel portfolioAccountModel = new PortfolioAccountModel(); portfolioAccountModel.AccountID = portModel.AccountID; portfolioAccountModel.PortfolioID = model.PortfolioID; portfolioAccountModel.Type = true; var portfolioAccount = _mapper.Map <PortfolioAccount>(portfolioAccountModel); unitOfWork.PortfolioAccountRepository.Insert(portfolioAccount); } // shareholders var oldHolders = unitOfWork.PortfolioOpeningStocksRepository .Get(filter: m => m.PortfolioID == model.PortfolioID); if (oldHolders != null) { unitOfWork.PortfolioOpeningStocksRepository.RemovRange(oldHolders); } if (OpeningStocks != null) { foreach (var item2 in OpeningStocks) { item2.PortfolioID = model.PortfolioID; var newHolder = _mapper.Map <PortfolioOpeningStocks>(item2); unitOfWork.PortfolioOpeningStocksRepository.Insert(newHolder); } //CurrentStocks if (currentStocks != null) { unitOfWork.PortfolioTransactionsRepository.RemovRange(currentStocks); } foreach (var item3 in OpeningStocks) { PortfolioTransactionModel portfolioTransaction = new PortfolioTransactionModel(); portfolioTransaction.PortfolioID = model.PortfolioID; portfolioTransaction.PartnerID = item3.PartnerID; portfolioTransaction.CurrentStockValue = item3.OpeningStockValue; portfolioTransaction.CurrentStocksCount = item3.OpeningStocksCount; var obj = _mapper.Map <PortfolioTransaction>(portfolioTransaction); unitOfWork.PortfolioTransactionsRepository.Insert(obj); } } var result = unitOfWork.Save(); if (result == 200) { var UserID = loggerHistory.getUserIdFromRequest(Request); loggerHistory.InsertUserLog(UserID, "بطاقه المحفظه", "تعديل المحفظه", true); return(Ok(4)); } else { return(Ok(6)); } } else { if (Check.Any(m => m.Code == portModel.Code && m.PortfolioID == id)) { unitOfWork.PortfolioRepository.Update(model); var oldAccount = unitOfWork.PortfolioAccountRepository.GetEntity(x => x.PortfolioID == model.PortfolioID); unitOfWork.PortfolioAccountRepository.Delete(oldAccount.PortfolioAccountID); // portfolio accounts if (portModel.AccountID != null) { PortfolioAccountModel portfolioAccountModel = new PortfolioAccountModel(); portfolioAccountModel.AccountID = portModel.AccountID; portfolioAccountModel.PortfolioID = model.PortfolioID; portfolioAccountModel.Type = true; var portfolioAccount = _mapper.Map <PortfolioAccount>(portfolioAccountModel); unitOfWork.PortfolioAccountRepository.Insert(portfolioAccount); } // shareholders var oldHolders = unitOfWork.PortfolioOpeningStocksRepository .Get(filter: m => m.PortfolioID == model.PortfolioID); if (oldHolders != null) { unitOfWork.PortfolioOpeningStocksRepository.RemovRange(oldHolders); } if (OpeningStocks != null) { foreach (var item2 in OpeningStocks) { item2.PortfolioID = model.PortfolioID; var newHolder = _mapper.Map <PortfolioOpeningStocks>(item2); unitOfWork.PortfolioOpeningStocksRepository.Insert(newHolder); } //CurrentStocks if (currentStocks != null) { unitOfWork.PortfolioTransactionsRepository.RemovRange(currentStocks); } foreach (var item3 in OpeningStocks) { PortfolioTransactionModel portfolioTransaction = new PortfolioTransactionModel(); portfolioTransaction.PortfolioID = model.PortfolioID; portfolioTransaction.PartnerID = item3.PartnerID; portfolioTransaction.CurrentStockValue = item3.OpeningStockValue; portfolioTransaction.CurrentStocksCount = item3.OpeningStocksCount; var obj = _mapper.Map <PortfolioTransaction>(portfolioTransaction); unitOfWork.PortfolioTransactionsRepository.Insert(obj); } } var result = unitOfWork.Save(); if (result == 200) { var UserID = loggerHistory.getUserIdFromRequest(Request); loggerHistory.InsertUserLog(UserID, "بطاقه المحفظه", "تعديل المحفظه", true); return(Ok("Succeeded")); } else { return(Ok(6)); } } else { return(Ok(2)); } } } var Result = unitOfWork.Save(); if (Result == 200) { var UserID = loggerHistory.getUserIdFromRequest(Request); loggerHistory.InsertUserLog(UserID, "بطاقه المحفظه", "تعديل المحفظه", true); return(Ok(4)); } else if (Result == 501) { return(Ok(5)); } else { return(Ok(6)); } } else { return(Ok(3)); } }
public IActionResult PostEmp([FromBody] PortfolioModel portModel) { if (ModelState.IsValid) { var Check = unitOfWork.PortfolioRepository.Get(); if (portModel == null) { return(Ok(0)); } if (Check.Any(m => m.Code == portModel.Code)) { return(Ok(2)); } else { // عدد الاسهم الحاليه if (portModel.portfolioTransactionModels != null) { portModel.TotalStocksCount = 0; foreach (var item in portModel.portfolioTransactionModels) { portModel.TotalStocksCount += item.CurrentStocksCount; } } if (portModel.EstablishDate == null) { portModel.EstablishDate = DateTime.Now.ToString(); } var model = _mapper.Map <Portfolio>(portModel); #region Bind List Accounts & Shareholders var OpeningStocks = portModel.portfolioOpeningStocksArray; #endregion unitOfWork.PortfolioRepository.Insert(model); // portfolio accounts if (portModel.AccountID != null) { PortfolioAccountModel portfolioAccountModel = new PortfolioAccountModel(); portfolioAccountModel.AccountID = portModel.AccountID; portfolioAccountModel.PortfolioID = model.PortfolioID; portfolioAccountModel.Type = true; var portfolioAccount = _mapper.Map <PortfolioAccount>(portfolioAccountModel); unitOfWork.PortfolioAccountRepository.Insert(portfolioAccount); } // shareholders if (OpeningStocks != null) { foreach (var item in OpeningStocks) { if (item.PortOPenStockID == 0) { item.PortfolioID = model.PortfolioID; var obj = _mapper.Map <PortfolioOpeningStocks>(item); unitOfWork.PortfolioOpeningStocksRepository.Insert(obj); } else { var obj = _mapper.Map <PortfolioOpeningStocks>(item); unitOfWork.PortfolioOpeningStocksRepository.Update(obj); } } //CurrentStocks foreach (var item in OpeningStocks) { PortfolioTransactionModel portfolioTransaction = new PortfolioTransactionModel(); portfolioTransaction.PortfolioID = model.PortfolioID; portfolioTransaction.PartnerID = item.PartnerID; portfolioTransaction.CurrentStockValue = item.OpeningStockValue; portfolioTransaction.CurrentStocksCount = item.OpeningStocksCount; var ob = _mapper.Map <PortfolioTransaction>(portfolioTransaction); unitOfWork.PortfolioTransactionsRepository.Insert(ob); } } var Result = unitOfWork.Save(); if (Result == 200) { var UserID = loggerHistory.getUserIdFromRequest(Request); loggerHistory.InsertUserLog(UserID, "بطاقه المحفظه", "اضافه المحفظه", true); return(Ok(4)); } else if (Result == 501) { return(Ok(5)); } else { return(Ok(6)); } } } else { return(Ok(3)); } }