예제 #1
0
        public async Task <HttpResponseMessage> Delete([FromBody] int id)
        {
            HttpResponseMessage   response      = new HttpResponseMessage();
            IQueryable <WishItem> toDeleteItems = db.WishItem.Where(x => x.ID == id);

            if (toDeleteItems.Count() <= 0)
            {
                response.Content    = new StringContent("Specified item id not found.");
                response.StatusCode = HttpStatusCode.NotFound;
                return(response);
            }

            WishItem toDeleteItem = toDeleteItems.First();

            db.WishItem.Remove(toDeleteItem);
            db.SaveChanges();

            if (toDeleteItem.imageId != null)
            {
                // delete from cache
                if (WishListController.imageCache.ContainsKey(toDeleteItem.imageId))
                {
                    WishListController.imageCache.Remove(toDeleteItem.imageId);
                }

                // delete blob from azure blob storage
                await blobProvider.DeleteBlobDataAsync(WishListController.blobContainer, toDeleteItem.imageId);
            }

            response.Content    = new StringContent("Delete item successfully.");
            response.StatusCode = HttpStatusCode.OK;
            return(response);
        }
예제 #2
0
        public void AddToWish(int id)
        {
            //Retrieve the product from the database.
            WishlistId = GetWishId();

            var wishItem = _db.WishlistItems.SingleOrDefault(
                c => c.WishId == WishlistId &&
                c.ProductId == id);

            if (wishItem == null)
            {
                //Create a new wishlis item if no wishlist items exists.
                wishItem = new WishItem
                {
                    ItemId = Guid.NewGuid().ToString(), ProductId = id, WishId = WishlistId, Product = _db.Products.SingleOrDefault(p => p.ProductID == id), Quantity = 1, DateCreated = DateTime.Now
                };

                _db.WishlistItems.Add(wishItem);
            }
            else
            {
                // If the item does exist in the wishlist,
                //then add one to the quantity.
                wishItem.Quantity++;
            }
            _db.SaveChanges();
        }
예제 #3
0
        //
        // GET: /WishItems/Edit/5

        public ActionResult Edit(long id)
        {
            WishItem wishitem = context.WishItems.Single(x => x.Id == id);

            //ViewBag.PossibleProducts = context.Products;
            //ViewBag.PossibleUsers = context.Users;
            return(View(wishitem));
        }
예제 #4
0
        public ActionResult DeleteConfirmed(long id)
        {
            WishItem wishitem = context.WishItems.Single(x => x.Id == id);

            context.WishItems.Remove(wishitem);
            context.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #5
0
 public ActionResult Edit(WishItem wishitem)
 {
     if (ModelState.IsValid)
     {
         context.Entry(wishitem).State = EntityState.Modified;
         context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     //ViewBag.PossibleProducts = context.Products;
     //ViewBag.PossibleUsers = context.Users;
     return(View(wishitem));
 }
예제 #6
0
        public ActionResult Create(WishItem wishitem)
        {
            if (ModelState.IsValid)
            {
                context.WishItems.Add(wishitem);
                context.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //ViewBag.PossibleProducts = context.Products;
            //ViewBag.PossibleUsers = context.Users;
            return(View(wishitem));
        }
예제 #7
0
 public ActionResult AddWishList(int productId)
 {
     if (User != null)
     {
         WishItem objWishItem = new WishItem();
         objWishItem.ProductId = productId;
         objWishItem.UserId    = objIUserManager.GetUser(User.Identity.Name).UserId;
         context.WishItems.Add(objWishItem);
         context.SaveChanges();
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         return(RedirectToAction("Index", "Home"));
     }
 }
예제 #8
0
        public async Task <IActionResult> Put(int id, [FromBody] WishItem item)
        {
            _logger.LogInformation($"Beginning PUT: {item.Text}");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await _service.SaveAsync(item);

            if (result.Succeeded)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
예제 #9
0
        //WISH MODEL
        //user_id
        //location_id
        //campType_id
        //description
        //id


        public bool AddNewWishItem(WishItem wishItem)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                var result3 = connection.Execute(@"INSERT INTO [dbo].[wishItem]
                                                ([User_id],
                                                [Location_id],
                                                [Name],
                                                [Description])
                                                VALUES (@User_id, @Location_id, @name, @description)", wishItem
                                                 );

                return(result3 == 1);
            }
        }
예제 #10
0
 public IActionResult NewWish(WishViewModel model)
 {
     if (isLogged())
     {
         if (ModelState.IsValid)
         {
             WishItem NewWishItem = new WishItem();
             NewWishItem.Name   = model.Name;
             NewWishItem.UserId = GetUserId();
             _context.WishItems.Add(NewWishItem);
             _context.SaveChanges();
             return(RedirectToAction("MyWishlist"));
         }
         return(View("MyWishlist"));
     }
     return(RedirectToAction("Index", "Home"));
 }
예제 #11
0
        public async Task<ActionResult> SaveAsync(WishItem wishItem)
        {
            try
            {
                if (wishItem.Id == 0)
                {
                    _dbContext.WishItemsRepository.Insert(wishItem);
                }
                else
                {
                    _dbContext.WishItemsRepository.Update(wishItem);
                }
                await _dbContext.SaveChangesAsync();

                return ActionResult.Success(wishItem);
            }
            catch (Exception ex)
            {
                return ActionResult.Failed(ex);
            }
        }
예제 #12
0
        public async Task <ActionResult> SaveAsync(WishItem wishItem)
        {
            try
            {
                if (wishItem.Id == 0)
                {
                    _dbContext.WishItemsRepository.Insert(wishItem);
                }
                else
                {
                    _dbContext.WishItemsRepository.Update(wishItem);
                }
                await _dbContext.SaveChangesAsync();

                return(ActionResult.Success(wishItem));
            }
            catch (Exception ex)
            {
                return(ActionResult.Failed(ex));
            }
        }
예제 #13
0
        public HttpResponseMessage Complete([FromUri] int id, [FromBody] string feedback)
        {
            HttpResponseMessage   response        = new HttpResponseMessage();
            IQueryable <WishItem> toCompleteItems = db.WishItem.Where(x => x.ID == id);

            if (toCompleteItems.Count() <= 0)
            {
                response.Content    = new StringContent("Specified item id not found.");
                response.StatusCode = HttpStatusCode.NotFound;
                return(response);
            }

            WishItem toCompleteItem = toCompleteItems.First();

            toCompleteItem.status   = 1;
            toCompleteItem.feedback = feedback;
            db.SaveChanges();

            response.Content    = new StringContent("Complete item successfully.");
            response.StatusCode = HttpStatusCode.OK;
            return(response);
        }
예제 #14
0
        public Task <int> addWish(Guid uid, WishItem wishItem)
        {
            return(Task <int> .Run(() => {
                if (!_context.users.Any(u => u.Id == uid))
                {
                    return -3;
                }                                                         //無效使用者
                if (wishItem.ExchangeItem == "" || wishItem.ExchangeItem == null || wishItem.RequestQuantity <= 0 || wishItem.WeightPoint <= 0)
                {
                    return -2;
                }              //資料錯誤
                wishItem.UserId = uid;
                _context.wishItems.Add(wishItem);
                save();

                var tmpWi = _context.wishItems.FirstOrDefault(wi => wi.UserId == wishItem.UserId && wi.ExchangeItem == wishItem.ExchangeItem);
                if (tmpWi != null)
                {
                    wishItem.Id = tmpWi.Id;
                    return 0;
                }
                return -1;
            }));
        }
예제 #15
0
        public async Task <HttpResponseMessage> Add()
        {
            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            string root     = HttpContext.Current.Server.MapPath("~/App_Data");
            var    provider = new MultipartFormDataStreamProvider(root);

            try
            {
                // Read the form data
                await Request.Content.ReadAsMultipartAsync(provider);

                // Get uploaded image
                Image image = null;
                if (provider.FileData.Count > 0)
                {
                    MultipartFileData file  = provider.FileData[0];
                    FileStream        fs    = new FileStream(file.LocalFileName, FileMode.Open);
                    BinaryReader      br    = new BinaryReader(fs);
                    Byte[]            bytes = br.ReadBytes((Int32)fs.Length);

                    image = new Image
                    {
                        blob = bytes
                    };
                    db.Image.Add(image);

                    fs.Close();
                    br.Close();
                }

                WishItem wishItem = new WishItem
                {
                    name  = provider.FormData["name"],
                    type  = provider.FormData["type"],
                    brand = provider.FormData["brand"],
                    no    = provider.FormData["no"],
                    price = provider.FormData["price"] == null ? null : (int?)int.Parse(provider.FormData["price"])
                };

                if (image != null)
                {
                    wishItem.imageId = image.ID;
                    wishItem.Image   = image;
                }

                db.WishItem.Add(wishItem);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Moved);
                string fullyQualifiedUrl     = Request.RequestUri.GetLeftPart(UriPartial.Authority);
                response.Headers.Location = new Uri(fullyQualifiedUrl + "/#/makewish?afterAdd=1");

                return(response);
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
예제 #16
0
        //
        // GET: /WishItems/Delete/5

        public ActionResult Delete(long id)
        {
            WishItem wishitem = context.WishItems.Single(x => x.Id == id);

            return(View(wishitem));
        }
예제 #17
0
        public async Task <HttpResponseMessage> Add()
        {
            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            string root = HttpContext.Current.Server.MapPath("~/App_Data");

            if (!Directory.Exists(root))
            {
                Directory.CreateDirectory(root);
            }

            var provider = new MultipartFormDataStreamProvider(root);

            try
            {
                // Read the form data
                await Request.Content.ReadAsMultipartAsync(provider);

                // Get uploaded image
                Guid?guid = null;
                if (provider.FileData.Count > 0)
                {
                    guid = Guid.NewGuid();
                    MultipartFileData file  = provider.FileData[0];
                    FileStream        fs    = new FileStream(file.LocalFileName, FileMode.Open);
                    BinaryReader      br    = new BinaryReader(fs);
                    byte[]            bytes = br.ReadBytes((Int32)fs.Length);

                    // Get Image from bytes
                    Image image = null;
                    using (MemoryStream stream = new MemoryStream(bytes))
                    {
                        image = Image.FromStream(stream);
                    }

                    // Resize the image and compress
                    int width, height;
                    this.GetImageSize(image, 500, out width, out height);
                    Bitmap resized    = this.ResizeImage(image, width, height);
                    Stream compressed = this.VaryQualityLevel(resized, 80L);

                    // Save blob to azure blob storage
                    await blobProvider.SaveBlobDataAsync(WishListController.blobContainer, guid.ToString(), compressed);

                    // Add to cache
                    using (MemoryStream ms = new MemoryStream())
                    {
                        compressed.Position = 0;
                        compressed.CopyTo(ms);
                        WishListController.imageCache.Add(guid.ToString(), Convert.ToBase64String(ms.ToArray()));
                    }

                    fs.Close();
                    br.Close();
                }

                WishItem wishItem = new WishItem
                {
                    name     = provider.FormData["name"],
                    type     = provider.FormData["type"],
                    brand    = provider.FormData["brand"],
                    no       = provider.FormData["no"],
                    comment  = provider.FormData["comment"],
                    price    = provider.FormData["price"] == null ? null : (int?)int.Parse(provider.FormData["price"]),
                    currency = provider.FormData["currency"],
                    status   = 0,
                    imageId  = guid.HasValue ? guid.ToString() : null
                };

                db.WishItem.Add(wishItem);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Moved);
                string fullyQualifiedUrl     = Request.RequestUri.GetLeftPart(UriPartial.Authority);
                response.Headers.Location = new Uri(fullyQualifiedUrl + "/#/makewish?afterAdd=1");

                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
예제 #18
0
        //
        // GET: /WishItems/Details/5

        public ViewResult Details(long id)
        {
            WishItem wishitem = context.WishItems.Single(x => x.Id == id);

            return(View(wishitem));
        }
예제 #19
0
 public IActionResult AddNewWishItem([FromBody] WishItem wishItem)
 {
     return(Ok(_storage.AddNewWishItem(wishItem)));
 }