public void TestConstructor_Bool() { var expected = true; var instance = new ChangeDetail(expected); Assert.AreEqual(expected, instance.HasChanges()); expected = false; instance = new ChangeDetail(expected); Assert.AreEqual(expected, instance.HasChanges()); }
public void TestConstructor_ComparisonResult_AreEqual() { using (ShimsContext.Create()) { var result = new KellermanSoftware.CompareNetObjects.Fakes.ShimComparisonResult { AreEqualGet = () => true }; var instance = new ChangeDetail(result); Assert.IsFalse(instance.HasChanges()); } }
private static string FormatChangeDetailOutputValue(ChangeDetail a, bool noVersion) { return noVersion ? ChangeDetailNoVersion(a) : ChangeDetailWithVersion(a); }
private static string ChangeDetailWithVersion(ChangeDetail changeDetail) { return string.Format("{0} - {1}", changeDetail.Version, changeDetail.Comment.TrimEnd(Environment.NewLine.ToCharArray())); }
private static string ChangeDetailWithVersion(ChangeDetail changeDetail) { return(string.Format("{0} - {1}", changeDetail.Version, changeDetail.Comment.TrimEnd(Environment.NewLine.ToCharArray()))); }
private static string FormatChangeDetailOutputValue(ChangeDetail a, bool noVersion) { return(noVersion ? ChangeDetailNoVersion(a) : ChangeDetailWithVersion(a)); }
public string SaveSale(decimal total, decimal PaidAmount) { try { if (total == 0) { return("El total no puede ser 0."); } if (total > PaidAmount) { return("Total no puede ser mayor que monto pagado."); } if (total < 0 || PaidAmount < 0) { return("No se aceptan valores negativos."); } decimal balance = PaidAmount - total; var Banknotes = Context.Banknotes.Where(b => b.Value <= balance).OrderByDescending(x => x.Value).ToList(); int i = 0; var result = new List <ChangeDetail>(); while (balance > 0 && i < Banknotes.Count()) { if (balance >= Banknotes.ElementAt(i).Value) { var qty = (int)balance / (int)Banknotes.ElementAt(i).Value; var newItem = new ChangeDetail(); newItem.Qty = qty; newItem.Value = Banknotes.ElementAt(i).Value; newItem.IsCoin = false; newItem.DetailTotal = newItem.Qty * newItem.Value; result.Add(newItem); balance -= newItem.DetailTotal; } i++; } if (balance > 0) { var monedas = Context.Coins.Where(c => c.Value <= balance).OrderByDescending(x => x.Value).ToList(); i = 0; while (balance > 0) { if (balance >= monedas.ElementAt(i).Value) { var qty = balance / monedas.ElementAt(i).Value; var newItem = new ChangeDetail(); newItem.Qty = (int)qty; newItem.Value = monedas.ElementAt(i).Value; newItem.IsCoin = true; newItem.DetailTotal = newItem.Qty * newItem.Value; result.Add(newItem); balance -= newItem.DetailTotal; } i++; } } var newSale = new Sale(); newSale.Total = total; newSale.PaidAmount = PaidAmount; newSale.Change = PaidAmount - total; newSale.ChangeDetails = result; Context.Sale.Add(newSale); Context.SaveChanges(); var msg = "Valor do Troco: R$ " + newSale.Change.ToString("0.00") + ".\nEntregar:\n"; result.ForEach(i => { msg += i.Qty.ToString(); if (i.IsCoin) { if (i.Qty > 1) { msg += " moedas de R$" + i.Value.ToString("0.00") + ".\n"; } else { msg += " moeda de R$" + i.Value.ToString("0.00") + ".\n"; } } else { if (i.Qty > 1) { msg += " notas de R$" + i.Value.ToString("0.00") + ".\n"; } else { msg += " nota de R$" + i.Value.ToString("0.00") + ".\n"; } } }); return(msg); } catch (Exception ex) { // SaveLog(ex.Message); return(null); } }