//public void CreateDeal(Deal deal) //{ // throw new NotImplementedException(); //} public void CreateDealWithImage(TemporayDeal temporayDeal) { // Create a real deal from the temporary Deal Deal dealToStore = new Deal(); Pub pub = pubFakeTable.FirstOrDefault(pb => pb.Id == temporayDeal.FK_Pub); dealToStore.Pub = pub; dealToStore.FK_Pub = temporayDeal.FK_Pub; dealToStore.DayOfWeeK = temporayDeal.DayOfWeeK; dealToStore.Description = temporayDeal.Description; dealToStore.EndDate = temporayDeal.EndDate; dealToStore.StartDate = temporayDeal.StartDate; dealToStore.Price = temporayDeal.Price; dealToStore.PublicationDate = DateTime.Now; dealToStore.VouchersForSale = temporayDeal.VouchersForSale; //store in faketable dealFakeTable.Add(dealToStore); }
public void CreateDealWithImage(TemporayDeal temporayDeal) { HttpPostedFileBase file = temporayDeal.File; bool hasTocreateEEVA = false; string nameImageToStore = ""; if (file != null) { // unique name hasTocreateEEVA = true; string nameImage = System.DateTime.Now.ToString("ddMMyyhhmmss"); nameImage = nameImage + System.IO.Path.GetFileName(file.FileName); // save the image path path to the database or you can send image // directly to database // in-case if you want to store byte[] ie. for DB using (MemoryStream ms = new MemoryStream()) { file.InputStream.CopyTo(ms); byte[] array = ms.GetBuffer(); Image im = new Image(); im.BinaryImage = array; im.Name = nameImage; nameImageToStore = nameImage; db2.Images.Add(im); db2.SaveChanges(); } } // Create a real deal from the temporary Deal Deal dealToStore = new Deal(); Pub pub = db.Pubs.FirstOrDefault(pb => pb.Id == temporayDeal.FK_Pub); dealToStore.Pub = pub; dealToStore.FK_Pub = temporayDeal.FK_Pub; dealToStore.DayOfWeeK = temporayDeal.DayOfWeeK; dealToStore.Description = temporayDeal.Description; dealToStore.EndDate = temporayDeal.EndDate; dealToStore.StartDate = temporayDeal.StartDate; dealToStore.Price = temporayDeal.Price; dealToStore.PublicationDate = DateTime.Now; dealToStore.VouchersForSale = temporayDeal.VouchersForSale; //save in database db.Deals.Add(dealToStore); try { // Your code... // Could also be before try if you know the exception occurs in SaveChanges db.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } if (hasTocreateEEVA) { Deal dealToAgregateEEVA = db.Deals.FirstOrDefault(dl => dl.Id == dealToStore.Id); //create new EEVA for the current deal DealEEVA dealEEVA = new DealEEVA(); dealEEVA.Attribute = "DealImage"; dealEEVA.Value = nameImageToStore; dealEEVA.FK_Deal = dealToAgregateEEVA.Id; //not sure dealEEVA.Deal = dealToAgregateEEVA; db.DealEEVAs.Add(dealEEVA); db.SaveChanges(); } }