public ActionResult Create([Bind(Include = "OrderDate,BundleQuantity,MarketName,TrackNumber,Price,Invoice,Description,Category,Country,Valuta")] BundleCreateModel model) { Bundle bundle = null; string userId = null; if (ModelState.IsValid) { if (model.OrderDate > DateTime.Now || model.Invoice == null || model.Invoice.ContentLength < 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } try { userId = User.Identity.GetUserId(); bundle = new Bundle(); bundle.Customer = db.Users.Single(s => s.Id == userId); bundle.MarketName = model.MarketName; bundle.Price = model.Price; bundle.TrackNumber = model.TrackNumber; bundle.Description = model.Description; bundle.BundleQuantity = model.BundleQuantity; bundle.Category = db.categories.Single(s => s.Id == model.Category); bundle.Country = db.countries.Single(s => s.Id == model.Country && s.isActive == true); bundle.Valuta = db.valutas.Single(s => s.Id == model.Valuta && s.isActive == true); bundle.CreatedDate = DateTime.Now; bundle.OrderDate = model.OrderDate; bundle.addStatus(new Status { CreatedDate = DateTime.Now, Name = "ordered" }); var fileExtension = Path.GetExtension(model.Invoice.FileName); var fileName = Path.GetFileNameWithoutExtension(model.Invoice.FileName) + "-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + fileExtension; var fullpath = Path.GetFullPath(Server.MapPath("/Img/Invoice/")); var directoryName = fullpath + bundle.Customer.CustomerNumber; Directory.CreateDirectory(directoryName); var path = Path.Combine(Server.MapPath("/Img/Invoice/" + bundle.Customer.CustomerNumber), fileName); model.Invoice.SaveAs(path); bundle.InvoiceFilePath = "/Img/Invoice/" + bundle.Customer.CustomerNumber + "/" + fileName; db.bundles.Add(bundle); db.SaveChanges(); } catch (Exception) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } } return(RedirectToAction("Index")); }
public ActionResult AdminCreate([Bind(Include = "Orders,OrderDate,BundleQuantity,MarketName,TrackNumber,Price,Invoice,Description,Category,Country,Valuta")] BundleCreateModel model) { Bundle bundle = null; if (ModelState.IsValid) { if (model.OrderDate > DateTime.Now || model.Invoice.ContentLength < 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } try { bundle = new Bundle(); List <Order> orders = db.orders.Where(w => w.BundleId == 0 && model.Orders.Contains(w.Id) && w.isPaid == true).ToList(); foreach (var item in orders) { if (item.customer.CustomerNumber != orders[0].customer.CustomerNumber || item.category.Id != orders[0].category.Id || item.country.Id != orders[0].country.Id) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } bundle.Customer = orders[0].customer; bundle.MarketName = model.MarketName; bundle.Price = model.Price; bundle.TrackNumber = model.TrackNumber; bundle.Description = model.Description; bundle.BundleQuantity = model.BundleQuantity; bundle.Category = db.categories.Single(s => s.Id == model.Category); bundle.Country = db.countries.Single(s => s.Id == model.Country && s.isActive == true); bundle.Valuta = db.valutas.Single(s => s.Id == model.Valuta && s.isActive == true); bundle.CreatedDate = model.OrderDate; bundle.addStatus(new Status { CreatedDate = bundle.CreatedDate, Name = "ordered" }); var fileExtension = Path.GetExtension(model.Invoice.FileName); var fileName = Path.GetFileNameWithoutExtension(model.Invoice.FileName) + "-" + DateTime.Now.ToString("yyyyMMdd_HHmmssfff") + fileExtension; var fullpath = Path.GetFullPath(Server.MapPath("/Img/Invoice/")); var directoryName = fullpath + bundle.Customer.CustomerNumber; Directory.CreateDirectory(directoryName); var path = Path.Combine(Server.MapPath("/Img/Invoice/" + bundle.Customer.CustomerNumber), fileName); model.Invoice.SaveAs(path); bundle.InvoiceFilePath = "/Img/Invoice/" + bundle.Customer.CustomerNumber + "/" + fileName; db.bundles.Add(bundle); db.SaveChanges(); var readybundle = db.bundles.Single(s => s.TrackNumber == model.TrackNumber && s.CreatedDate == model.OrderDate && s.MarketName == model.MarketName); foreach (var item in orders) { item.BundleId = readybundle.Id; } db.SaveChanges(); } catch (Exception) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } } return(RedirectToAction("List", "Bundle")); }