public async Task <IActionResult> Edit(int id, [Bind("ID,AccountOwner,Institute,Iban,SwiftBic")] BankAcccount bankAcccount) { if (id != bankAcccount.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(bankAcccount); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankAcccountExists(bankAcccount.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(bankAcccount)); }
public async Task <IActionResult> Create([Bind("ID,AccountOwner,Institute,Iban,SwiftBic")] BankAcccount bankAcccount) { if (ModelState.IsValid) { _context.Add(bankAcccount); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(bankAcccount)); }
public async Task <IActionResult> EMailSend([Bind("OrderID, Email, Subject, Message, Attachments")] OrderEmailViewModel orderEmail) { if (ModelState.IsValid) { OrderViewModel vm = null; BankAcccount bank = null; if (orderEmail.OrderID == null) { return(NotFound()); } else { vm = await GetOrderViewModel(orderEmail.OrderID); bank = await _context.BankAcccounts.FirstOrDefaultAsync(); string bill = $"<h2>Hallo Frau/Herr {vm.CutomerLastName},</h2>" + $"<p>noch einmal vielen Dank für Ihren Einkauf.</p>" + $"<p>Bitte überweisen Sie den Gesamtbetrag von <b>{Math.Round(vm.Total, 2)} €</b> innerhalb von 7 Tagen unter Angabe der Rechungsnummer:<br/>" + $"<b>{orderEmail.Message}</b><br />" + $"auf das folgende Konto:</p>" + $"<br />" + $"<p>Kontoinhaber:<b> {bank.AccountOwner}</b><br />" + $"IBAN: <b>{bank.Iban}</b><br />" + $"SWIFT-BIC: <b>{bank.SwiftBic}</b><br />" + $"Bank: <b>{bank.Institute}</b></p><br />"; bill += $"<hr /><h3>Rechungsdetails</h3>" + $"<p>Ihre Bestellung vom {vm.OrderDate.ToShortDateString()}</p>"; if (!string.IsNullOrWhiteSpace(vm.FreeText)) { bill += $"<p>Ihre Angaben zur Bestellung: <b>{vm.FreeText}</b></p>"; } bill += $"<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" height=\"15%\" width=\"75%\"><tr><th>Position</th><th>Artikel-Nr.</th><th>Artikelname</th><th>Menge</th><th>Betrag</th></tr>"; foreach (var item in vm.OderLines) { bill += $"<tr><td align=\"center\">{item.Position}</td>" + $"<td align=\"center\">{item.ProductNumber}</td>" + $"<td align=\"center\">{item.ProductName}</td>" + $"<td align=\"center\">{Math.Round(item.OrderQuantity, 2)} {item.OrderUnit}</td>" + $"<td align=\"center\">{Math.Round(item.OrderLineTotal,2)} €</td></tr>"; } bill += $"</table><br />" + $"<table cellpadding=\"0\" cellspacing=\"1\" height=\"5%\" width=\"85%\">" + $"<tr>" + $"<td align=\"right\" colspan=\"4\">Versand, {vm.ShippingPriceName}:</td>" + $"<td>{Math.Round(vm.ShippingPriceAtOrder,2)} €</td></tr>" + $"<tr>" + $"<td align=\"right\" colspan=\"4\">Gesamtbetrag:</td><td>{Math.Round(vm.Total,2)} €</td></tr>" + $"</table>" + $"<br />" + $"<p>Die Lieferfrist beginnt mit der Zahlungsanweisung.</p>" + $"<br />" + $"<p>Viele Grüße,</p><p>Petra Buron</p><br />"; var attachments = new List <string>(); var files = HttpContext.Request.Form.Files; if (files != null && files.Count > 0) { //var file = files.First(); var helper = new UploadHelper(_environment); var todel = new List <string>(); foreach (var file in files) { var fnames = await helper.FileUploadAsync(file, "files", false); todel.Add(fnames.Filename); attachments.Add(fnames.Filename); } foreach (string file in todel) { helper.DeleteFile("files", file); } } var agb = await _context.ShopFiles.SingleAsync(s => s.ShopFileType == Enums.ShopFileTypeEnum.AGB); var wiederruf = await _context.ShopFiles.SingleAsync(s => s.ShopFileType == Enums.ShopFileTypeEnum.WRB); var datenschutz = await _context.ShopFiles.SingleAsync(s => s.ShopFileType == Enums.ShopFileTypeEnum.DSK); attachments.Add(agb.Filename); attachments.Add(wiederruf.Filename); attachments.Add(datenschutz.Filename); await _emailSender.SendEmailWithAttachmentsAsync(orderEmail.Email, orderEmail.Subject, bill, attachments); return(RedirectToAction(nameof(Index))); } } return(View(orderEmail)); }
private async Task <WeHaveYourOrderViewModel> GetViewModel(Guid id) { var myorder = await _context.Orders.SingleAsync(o => o.ID == id); var paymend = await _context.Paymends.SingleAsync(p => p.ID == myorder.PaymentID); var shippingAddress = await _context.ShippingAddresses.SingleAsync(a => a.ID == myorder.ShippingAddressId); var invioceAddress = await _context.ShippingAddresses.FirstOrDefaultAsync(a => a.CustomerID == myorder.CustomerID && a.IsInvoiceAddress); var period = await _context.ShpippingPeriods.SingleAsync(p => p.ShippingPeriodID == myorder.ShippingPeriodId); var shipPrice = await _context.ShippingPrices.SingleAsync(p => p.ID == myorder.ShippingPriceId); var olines = await _context.OrderLines.Where(ol => ol.OrderID.Equals(myorder.ID)).ToListAsync(); List <WeHaveYourOrderLineViewModel> lineViewModels = new List <WeHaveYourOrderLineViewModel>(); foreach (var item in olines) { var prod = await _context.Products.SingleAsync(p => p.ProductID == item.ProductID); var img = await _context.ProductImages.SingleAsync(p => p.IsMainImage && p.ProductID == item.ProductID); var unit = await _context.Units.SingleAsync(u => u.UnitID == prod.BasesUnitID); var line = new WeHaveYourOrderLineViewModel { ID = item.OrderLineID, ImagePath = img.ImageUrl, Position = item.Position, Price = Math.Round((item.SellBasePrice * item.Quantity), 2), ProductName = prod.Name, ProductNumber = prod.ProductNumber, Quantity = Math.Round(item.Quantity, 2), ProductUnit = unit.Name }; lineViewModels.Add(line); } BankAcccount bank = null; var shipTo = addressHelper.GetViewModel(shippingAddress); ShippingAddressViewModel invoiceVm = null; if (invioceAddress == null) { var customer = await _context.Customers.SingleAsync(c => c.CustomerID == myorder.CustomerID); invoiceVm = addressHelper.GetViewModel(customer); } else { invoiceVm = addressHelper.GetViewModel(invioceAddress); } string thankyou = await GetThankyou(paymend); WeHaveYourOrderViewModel viewModel = new WeHaveYourOrderViewModel { OrderID = myorder.ID, OrderDate = myorder.OrderDate, OrderNo = myorder.Number, OrderPaymend = paymend.Name, OrderShippingAddress = shipTo, OrderInvoiceAddress = invoiceVm, OrderShippingPeriod = period.Decription, Bank = bank, OrderTotal = Math.Round(myorder.Total, 2), OrderThankYou = thankyou, ShipPrice = Math.Round(myorder.ShippingPrice, 2), ShipPriceName = shipPrice.Name, OrderLines = lineViewModels, FreeText = myorder.FreeText }; return(viewModel); }