Example #1
0
 /*
  * Developer: Azeem hassan
  * Date: 7-28-19
  * Action: insert product image data to db
  * Input: image data
  * output: insertion id
  */
 public async Task <string> CreateProductImages(Productimages NewProductImages)
 {
     using (IDbConnection conn = Connection)
     {
         long result = conn.Insert <Productimages>(NewProductImages);
         return(result.ToString());
     }
 }
        public async Task <ActionResult> Put(int id, [FromBody] Productimages obj)
        {
            var target = await _context.Productimages.SingleOrDefaultAsync(nobj => nobj.Id == id);

            if (target != null && ModelState.IsValid)
            {
                _context.Entry(target).CurrentValues.SetValues(obj);
                await _context.SaveChangesAsync();

                return(Ok());
            }
            return(BadRequest());
        }
        public async Task <ActionResult <Productimages> > Post([FromBody] Productimages obj)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            else
            {
                _context.Productimages.Add(obj);
                await _context.SaveChangesAsync();

                return(Created("api/Productimages", obj));
            }
        }
        public async Task <string> createProductImage([FromBody]   string value)
        {
            string NewInsertionID = "0";

            try
            {
                Productimages newProductImage = JsonConvert.DeserializeObject <Productimages>(value);
                NewInsertionID = await _ProductRepo.CreateProductImages(newProductImage);
            }
            catch (Exception ex)
            {
                var logger = _loggerFactory.CreateLogger("internal_error_log");
                logger.LogInformation("Problem happened in making new line items with message" + ex.Message);
            }
            return(NewInsertionID);
        }
        public async Task <ActionResult> AddFile(int productid, string type)
        {
            if (type.ToLower() != "image" && type.ToLower() != "video")
            {
                return(BadRequest("Invalid file type"));
            }
            var target = await _context.Product.SingleOrDefaultAsync(obj => obj.Productid == productid);

            if (target == null || Request.Form.Files.Count == 0)
            {
                return(BadRequest("Invalid product or no file in the request"));
            }
            var limitchk = _context.Productimages.Where(pi => pi.Productid == productid).Count();

            if (limitchk == 10)
            {
                return(BadRequest("File limit reached"));
            }
            try
            {
                var proImg = new Productimages()
                {
                    Productid = productid,
                    Imgname   = GenImgToken(),
                    Type      = type
                };
                _context.Productimages.Add(proImg);
                string ext = ".png";
                if (type.ToLower() == "video")
                {
                    ext = ".mp4";
                }
                await _context.SaveChangesAsync();

                var file       = Request.Form.Files[0];
                var folderName = Path.Combine("Res", "Others");
                var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

                if (file.Length > 0)
                {
                    var fullPath = Path.Combine(pathToSave, proImg.Imgname + ext);
                    using (var stream = new FileStream(fullPath, FileMode.Create))
                    {
                        await file.CopyToAsync(stream);
                    }

                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Internal server error: " + ex.Message));
            }
        }