public void SaveToDatabase(EligibleSupplier eligibleSupplier) { _databaseContext.EligibleSuppliers.Add(eligibleSupplier); _databaseContext.SaveChanges(); }
public void EvaluationTenderBids(int tenderId) { var tender = _databaseContext.Tenders.Include(x => x.EligibleSuppliers).Single(x => x.TenderId == tenderId); var submittedTenders = _databaseContext.TenderBidSubmissions.Where(t => t.TenderId == tenderId).ToList(); decimal totProductQtAmt = 0; decimal totProductRecAmt = 0; decimal priceDifference = 0; foreach (var tenderBid in submittedTenders) { var tenderBidProducts = _databaseContext.TenderBidSubmissionProducts.Where(t => t.TenderBidSubmissionId == tenderBid.TenderBidSubmissionId).ToList(); foreach (var product in tenderBidProducts) { var prod = _databaseContext.Products.Find(product.ProductId); product.RecommendedPrice = prod.ProductPrice; totProductQtAmt += product.QuotedPrice * product.Quantity; totProductRecAmt += product.RecommendedPrice * product.Quantity; priceDifference += totProductQtAmt - totProductRecAmt; } var company = _databaseContext.TenderBidSubmissions.Where(c => c.RegistrationNumber == tenderBid.RegistrationNumber).FirstOrDefault(); decimal percentage = 0; if (priceDifference > 0) { percentage = ((priceDifference / tenderBid.TotalQuotation) * 100); } int score = 0; if (percentage > 27 && percentage <= 30) { score = 1; } else if (percentage > 21 && percentage <= 24) { score = 2; } else if (percentage > 18 && percentage < 21) { score = 3; } else if (percentage > 15 && percentage <= 18) { score = 4; } else if (percentage > 10 && percentage <= 15) { score = 5; } else { continue; } var eligibleSupplier = new EligibleSupplier { RegistrationNumber = company.RegistrationNumber, CompanyName = company.CompanyName, Score = score, InflationRate = percentage, DateEvaluated = DateTime.Now, TenderId = tender.TenderId }; tender.EligibleSuppliers.Add(eligibleSupplier); _databaseContext.SaveChanges(); } }