Esempio n. 1
0
        //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();
            }
        }