public async Task <MetricViewModel> GetBananaInfo(DateTime startDate, DateTime endDate) { try { using (var context = new BananaStandContext()) { var bananaPurchased = await context.Bananas_Purchased.Where(x => x.PurchaseDate >= startDate && x.PurchaseDate <= endDate).ToListAsync(); return(BananaMapper(bananaPurchased, endDate)); } } catch (Exception ex) { // email dev and/or log error throw new Exception($"Error {ex.InnerException}"); } }
public async Task PurchaseBananas(BananaModel bananas) { try { using (var context = new BananaStandContext()) { var mappedBananas = BananaPurchaseMapper(bananas); context.Bananas_Purchased.Add(mappedBananas); await context.SaveChangesAsync(); } } catch (Exception ex) { // send email to dev team and/or log events throw new Exception($"Error connecting to Database. Error: {ex.Message}"); } }
public async Task SoldBananas(BananaModel bananas) { try { using (var context = new BananaStandContext()) { var soldList = new List <Bananas_Sold>(); var sellableBananas = context.Bananas_Purchased.Where(x => x.ExpirationDate > bananas.TransactionDate && x.Sold < x.Bananas).OrderBy(x => x.ExpirationDate).ToList(); var soldBananas = bananas.Bananas; // updating sold count for purchased bananas table for (var i = 0; i < sellableBananas.Count; i++) { // sold all bananas that was purchased with left over if (sellableBananas[i].Sold + soldBananas > sellableBananas[i].Bananas) { soldBananas -= sellableBananas[i].Bananas; sellableBananas[i].Sold = sellableBananas[i].Bananas; soldList.Add(BananaSoldMapper(sellableBananas[i].Sold, sellableBananas[i].Id, bananas.TransactionDate)); } // no more bananas to roll over else { sellableBananas[i].Sold += soldBananas; soldList.Add(BananaSoldMapper(sellableBananas[i].Sold, sellableBananas[i].Id, bananas.TransactionDate)); break; } } // insert into sold bananas table context.Bananas_Sold.AddRange(soldList); await context.SaveChangesAsync(); } } catch (Exception ex) { // send email to dev team and/or log events throw new Exception($"Error connecting to Database. Error: {ex.Message}"); } }