コード例 #1
0
        public ActionResult EditSuggestion(GATE_ComponentRequest suggestion, HttpPostedFileWrapper pictureUpload = null)
        {
            if (!suggestion.InStock)
            {
                if (suggestion.CurrentSuggestion.Price == null)
                {
                    ModelState.AddModelError("MaterialSuggestion.Price", "Price is required");
                }

                if (suggestion.CurrentSuggestion.Label == null)
                {
                    ModelState.AddModelError("MaterialSuggestion.Label", "Label is required");
                }
            }
            else
            {
                suggestion.CurrentSuggestion.Label = "In Stock";
                suggestion.CurrentSuggestion.Price = 0;
            }

            if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) != "image")
            {
                ModelState.AddModelError("pictureUpload", "The file you tried to insert is not an image file, you should use .jpg, .png or .gif");
            }

            var componentRequest = DB.GATE_ComponentRequest.Include(x => x.CurrentSuggestion)
                                                            .Include(x => x.PreviousSuggestion)
                                                            .Where(x => x.ComponentId == suggestion.ComponentId)
                                                            .Select(x => x).FirstOrDefault();

            if (componentRequest.PreviousMaterialSuggestedId == null)
            {
                var matSuggestion = new GATE_MaterialSuggestion
                {
                    Label = componentRequest.CurrentSuggestion.Label,
                    Price = componentRequest.CurrentSuggestion.Price,
                    DeliveryDate = componentRequest.CurrentSuggestion.DeliveryDate,
                    CurrencyId = componentRequest.CurrentSuggestion.CurrencyId,
                    IsNotStandardProduct = componentRequest.CurrentSuggestion.IsNotStandardProduct,
                    PictureId = componentRequest.CurrentSuggestion.PictureId,
                    InStock = componentRequest.CurrentSuggestion.InStock
                };
                componentRequest.PreviousSuggestion = matSuggestion;
                DB.GATE_MaterialSuggestion.Add(componentRequest.PreviousSuggestion);
                DB.SaveChanges();
            }
            else
            {
                componentRequest.PreviousSuggestion.Label = componentRequest.CurrentSuggestion.Label;
                componentRequest.PreviousSuggestion.Price = componentRequest.CurrentSuggestion.Price;
                componentRequest.PreviousSuggestion.DeliveryDate = componentRequest.CurrentSuggestion.DeliveryDate;
                componentRequest.PreviousSuggestion.CurrencyId = componentRequest.CurrentSuggestion.CurrencyId;
                componentRequest.PreviousSuggestion.IsNotStandardProduct = componentRequest.CurrentSuggestion.IsNotStandardProduct;
                componentRequest.PreviousSuggestion.PictureId = componentRequest.CurrentSuggestion.PictureId;
                componentRequest.PreviousSuggestion.InStock = componentRequest.CurrentSuggestion.InStock;
                DB.Entry(componentRequest.PreviousSuggestion).State = EntityState.Modified;
                DB.SaveChanges();
            }
            componentRequest.CurrentSuggestion.Label = suggestion.CurrentSuggestion.Label;
            componentRequest.CurrentSuggestion.Price = suggestion.CurrentSuggestion.Price;
            componentRequest.CurrentSuggestion.DeliveryDate = suggestion.CurrentSuggestion.DeliveryDate;
            componentRequest.CurrentSuggestion.CurrencyId = suggestion.CurrentSuggestion.CurrencyId;
            componentRequest.CurrentSuggestion.IsNotStandardProduct = suggestion.CurrentSuggestion.IsNotStandardProduct;
            componentRequest.CurrentSuggestion.InStock = suggestion.InStock;

            if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) == "image")
            {
                var b = new BinaryReader(pictureUpload.InputStream);
                byte[] binData = b.ReadBytes(pictureUpload.ContentLength);
                var pictureFile = new GATE_SuggestionPicture { PictureData = binData };
                componentRequest.CurrentSuggestion.GATE_SuggestionPicture = pictureFile;
            }

            DB.Entry(componentRequest.CurrentSuggestion).State = EntityState.Modified;
            DB.SaveChanges();

            return new RedirectResult(Url.Action("Pending") + "#tr" + componentRequest.MaterialRequestId);
        }
コード例 #2
0
        public ActionResult CreateSuggestion(GATE_ComponentRequest suggestion, HttpPostedFileWrapper pictureUpload)
        {
            //TODO reimplement with the new Stock and password tables #stock
            if (!suggestion.InStock)
            {
                if (suggestion.CurrentSuggestion.Price == null)
                {
                    ModelState.AddModelError("MaterialSuggestion.Price", "Price is required");
                }

                if (suggestion.CurrentSuggestion.Label == null)
                {
                    ModelState.AddModelError("MaterialSuggestion.Label", "Label is required");
                }
            }
            else
            {
                suggestion.CurrentSuggestion.Label = "In Stock";
                suggestion.CurrentSuggestion.Price = 0;
            }

            if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) != "image")
            {
                ModelState.AddModelError("pictureUpload", "The file you tried to insert is not an image file, you should use .jpg, .png or .gif");
            }

            var componentRequest = DB.GATE_ComponentRequest.Find(suggestion.ComponentId);

            GATE_MaterialSuggestion matSuggestion = suggestion.CurrentSuggestion;
            componentRequest.CurrentSuggestion = matSuggestion;

            if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) == "image")
            {
                var b = new BinaryReader(pictureUpload.InputStream);
                byte[] binData = b.ReadBytes(pictureUpload.ContentLength);
                var pictureFile = new GATE_SuggestionPicture
                {
                    PictureData = binData,
                };
                componentRequest.CurrentSuggestion.GATE_SuggestionPicture = pictureFile;
            }
            else
            {
                componentRequest.CurrentSuggestion.PictureId = null;
            }

            DB.GATE_MaterialSuggestion.Add(matSuggestion);
            DB.SaveChanges();

            return new RedirectResult(Url.Action("Pending") + "#tr" + componentRequest.MaterialRequestId);
        }