public static bool SendOrderConfirmation(OrderConfirmationModel model, ApplicationUser user)
        {
            Kontakdaten Kontakt = null;

            if (model.WMA.Lieferadresse != null)
            {
                Kontakt = model.WMA.Lieferadresse;
            }
            else
            {
                Kontakt = model.WMA.Auftraggeberadresse;
            }
            string Auftragsartikel = "";
            float  Gesamtpreis     = 0;

            foreach (var artikel in model.Auftragsmengen)
            {
                var VEs = artikel.menge / artikel.artikel.Verpackungseinheit;
                var GesamtpreisArtikel = artikel.artikel.PreisProVE * artikel.menge / artikel.artikel.Verpackungseinheit;
                Gesamtpreis     += artikel.artikel.PreisProVE * artikel.menge / artikel.artikel.Verpackungseinheit;
                Auftragsartikel += "\t" + VEs + "(" + artikel.artikel.Verpackungseinheit + ")" + "\t" + artikel.menge + "\t" + artikel.artikel.PreisProVE.ToString("0.00") + " €" + "\t\t" + GesamtpreisArtikel.ToString("0.00") + " €" + "\t\t" + artikel.artikel.Name + "\n";
            }


            string mailBody = "Sehr geehrte(r) Frau/Herr " + model.UserName + ",\n\n"
                              + "Ihre Bestellung ist bei uns eingegangen. Wir werden diese sorgfältig bearbeiten und mit der nächsten Lieferung versenden.\n\n"
                              + "Voraussichtliches Lieferdatum: " + DateTime.Now.AddDays(1).ToString("dd.MM.yyy") + "\n\n"
                              + "Auftragsnummer: \t" + model.WMA.Kennzeichnung + "\n"
                              + "Bestelldatum: \t\t" + model.WMA.Bestelldatum.ToString("dd.MM.yyy") + "\n"
                              + "Lieferanschrift: \t" + Kontakt.Name + "\n"
                              + "\t\t\t" + Kontakt.Name2 + "\n"
                              + "\t\t\t" + Kontakt.Name3 + "\n"
                              + "\t\t\t" + Kontakt.Strasse + "\n"
                              + "\t\t\t" + Kontakt.PLZ + " " + Kontakt.Ort + "\n\n\n"
                              + "\tVEs\tAnzahl\tPreis VE\tGesamtpreis\tArtikel\n"
                              + Auftragsartikel + "\n\n"
                              + "\t\t\t\t\tGesamtpreis: " + Gesamtpreis.ToString("0.00") + " €\n\n\n"
                              + "Wenn Sie weitere Fragen zu Ihrer Bestellung haben, helfen wir Ihnen gerne weiter. Sie erreichen uns unter der Rufnummer 0711-781988-30 oder [email protected]\n\n"
                              + "Unser Serviceteam ist montags bis freitags von 09:00 Uhr bis 17:00 Uhr erreichbar.\n\n\n"
                              + "Ihr Winkhardt-Team"
            ;


            if (!String.IsNullOrEmpty(mailBody))
            {
                var message = new MailMessage();
                //message.To.Add(new MailAddress("*****@*****.**"));
                message.To.Add(new MailAddress("*****@*****.**"));
                message.To.Add(new MailAddress(model.UserMail));
                message.Subject    = "Auftragsbestätigung: " + model.WMA.Kennzeichnung;
                message.Body       = string.Format(mailBody, "*****@*****.**");
                message.IsBodyHtml = false;
                using (var smtp = new SmtpClient())
                {
                    smtp.Send(message);
                }
            }
            return(true);
        }
        private OrderConfirmationModel MapOrderConfirmationModel(Order order, Painting painting)
        {
            var model = new OrderConfirmationModel
            {
                PaintingTitle = painting.Title,
                PaintingPrice = order.Total.ToString("C"),
                OrderDescription = order.Description,
                OrderConfirmationCode = order.ConfirmationCode,
                CustomerEmail = order.Email,
                CustomerFirstName = order.FirstName,
                CustomerLastName = order.LastName,
                CustomerAddress1 = order.Street,
                CustomerAddress2 = order.Street2,
                CustomerCity = order.City,
                CustomerState = order.State,
                CustomerZipcode = order.ZipCode,
                CustomerPhoneNumber = order.Phone
            };

            return model;
        }
        public ActionResult AuftragAnlegen(FormCollection fc)
        {
            string Mailtext = "Bestellbestätigung\n\n";

            Kontakdaten Auftraggeber = new Kontakdaten {
                Name2   = fc["Name"].ToString(),
                Name    = fc["Name2"].ToString(),
                Name3   = fc["Name3"].ToString(),
                Strasse = fc["Strasse"].ToString(),
                Ort     = fc["Ort"].ToString(),
                PLZ     = fc["Plz"].ToString(),
                EMail   = fc["EMail"].ToString(),
                Land    = dms.Laender.Single(r => r.land == "Deutschland")
            };

            Kontakdaten Lieferadresse = null;

            if (fc["TbName"].ToString() != fc["Name"].ToString())
            {
                Lieferadresse = new Kontakdaten
                {
                    Name2   = fc["TbName"].ToString(),
                    Name    = fc["Name2"].ToString(),
                    Name3   = fc["Name3"].ToString(),
                    Strasse = fc["Strasse"].ToString(),
                    Ort     = fc["Ort"].ToString(),
                    PLZ     = fc["Plz"].ToString(),
                    EMail   = fc["EMail"].ToString(),
                    Land    = dms.Laender.Single(r => r.land == "Deutschland")
                };
            }



            //Kunde kunde = new Kunde{ Name = Auftraggeber.Name, Erstellungsdatum = DateTime.Now};
            ////kunde.Hauptadresse = new Kontakdaten { Name = Auftraggeber.Name, Name2 = Auftraggeber.Name2, Name3 = Auftraggeber.Name3, Strasse = Auftraggeber.Strasse, PLZ = Auftraggeber.PLZ, Ort = Auftraggeber.Ort, Land = Auftraggeber.Land, Telefon = Auftraggeber.Telefon, EMail = Auftraggeber.EMail};

            //Kunde KundeDB = dms.Kunden.SingleOrDefault(r => r.Name.Equals(fc["Name"].ToString()) && r.Hauptadresse.Name2.Equals(fc["Name2"].ToString()));
            Kunde KundeDB = dms.Kunden.Find(4409);

            //if (KundeDB != null)
            //{
            //    kunde = KundeDB;
            //}

            ICollection <Auftragsmenge> Auftragsmengen = new List <Auftragsmenge>();

            foreach (var item in fc)
            {
                if (item.ToString().Length > 13 && item.ToString().Substring(0, 13) == "ArtikelMenge_")
                {
                    int     length    = item.ToString().Length - 13;
                    int     ArtikelID = int.Parse(item.ToString().Substring(13, length));
                    Artikel artikel   = dms.Artikell.Find(ArtikelID);
                    int     Menge     = int.Parse(fc[item.ToString()]) * artikel.Verpackungseinheit;
                    Auftragsmengen.Add(new Auftragsmenge {
                        artikel = dms.Artikell.Find(ArtikelID), menge = Menge
                    });
                    Mailtext = Mailtext + " - " + Menge + " " + artikel.Name + "\n";
                }
            }

            var userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user        = userManager.FindByEmail(fc["EMail"].ToString());

            string kennzeichen = "";

            if (dms.Werbemittelauftraege.Where(r => r.Kennzeichnung.Contains("WMMA")).Count() > 0)
            {
                Werbemittelauftrag wmala           = dms.Werbemittelauftraege.Where(r => r.Kennzeichnung.Contains("WMMA")).ToList().Last();
                string             laKennzeichnung = wmala.Kennzeichnung;
                if (wmala.Erstellungsdatum.Year < DateTime.Now.Year)
                {
                    kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_000001";
                }
                else
                {
                    int number = int.Parse(laKennzeichnung.Substring(9, 6));
                    number++;
                    kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_" + number.ToString("000000");
                }
            }
            else
            {
                kennzeichen = "WMMA" + DateTime.Now.Year.ToString() + "_000001";
            }

            Werbemittelauftrag WebShopAuftrag = new Werbemittelauftrag
            {
                Erstellungsdatum    = DateTime.Now,
                Versanddatum        = DateTime.Now,
                ZeitAuftragPacken   = 0,
                Auftraggeberadresse = Auftraggeber,
                Kennzeichnung       = kennzeichen,
                messe = dms.Messen.Single(r => r.isLandesmesse),
                isLandesmesseauftrag = true,
                ZeitAuftragAnlegen   = 0,
                Bestelldatum         = DateTime.Now,
                Auftragsmengen       = Auftragsmengen,
                Stat      = dms.Stati.Find(1),
                Pakete    = new List <Paket>(),
                PSPNummer = fc["PSPNummer"].ToString(),
                //Kostenstelle = fc["Kostenstelle"].ToString(),
                Lieferadresse       = Lieferadresse,
                kunde               = KundeDB,
                Verschickungskosten = 0,
                Bemerkung           = fc["Bemerkung"].ToString()
            };

            dms.Werbemittelauftraege.Add(WebShopAuftrag);


            var model = new OrderConfirmationModel()
            {
                UserMail = fc["EMail"].ToString(), UserName = user.Vorname + " " + user.Nachname, Auftragsmengen = Auftragsmengen, WMA = WebShopAuftrag
            };


            try
            {
                dms.SaveChanges();
                Extensions.SendOrderConfirmation(model, user);
                //try
                //{
                //    string mailBody = "";
                //    if (Engine.Razor.IsTemplateCached("Bestellbestaetigung", null))
                //    {
                //        mailBody = Engine.Razor.Run("Bestellbestaetigung", null, model);
                //    }
                //    else
                //    {
                //        var templateFilePath = System.Web.HttpContext.Current.Server.MapPath("~/Views/WebShop/Bestellbestaetigung.cshtml");
                //        var templateAsString = System.IO.File.ReadAllText(templateFilePath);
                //        //var templateFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WebShop");
                //        mailBody = Engine.Razor.RunCompile(templateAsString, "Bestellbestaetigung", null, model);
                //    }

                //    if (!String.IsNullOrEmpty(mailBody))
                //    {
                //        userManager.SendEmail(user.Id, "Bestellbestätigung", mailBody);
                //        var message = new MailMessage();
                //        message.To.Add(new MailAddress("*****@*****.**"));
                //        message.Subject = "Test";
                //        message.Body = string.Format(mailBody, "Werbemittelapplikation");
                //        message.IsBodyHtml = true;
                //        using (var smtp = new SmtpClient())
                //        {
                //            smtp.Send(message);
                //        }
                //    }
                //}
                //catch (Exception ex)
                //{
                //    System.Diagnostics.Debug.WriteLine("Mail: " + ex.Message);
                //}
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                        System.Diagnostics.Debug.Write("val probelem" + validationError.ErrorMessage);
                    }
                }
            }

            ViewData["Artikel"] = dms.Artikell.Where(r => r.Landesmesseartikel).OrderBy(r => r.Name).ToList();
            var UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var ShopUser    = UserManager.FindById(User.Identity.GetUserId());

            ViewData["User"]            = ShopUser;
            ViewData["AuftragAngelegt"] = "true";
            return(View("Index"));
            //return PartialView("Bestellbestaetigung", model);
        }