public IHttpActionResult PutClassifiedAd(int id, ClassifiedAd classifiedAd)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != classifiedAd.ClassifiedAdId)
            {
                return BadRequest();
            }

            db.Entry(classifiedAd).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ClassifiedAdExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
        public IHttpActionResult Comments( )
        {
            dynamic obj            = Request.Content.ReadAsAsync <JObject>();
            int     classifiedAdId = obj.Result.comment.classifiedAdId;
            Comment comment        = new Comment();

            comment.Content      = obj.Result.comment.content;
            comment.ClassifiedAd = db.ClassifiedAds.Where(c => c.ClassifiedAdId == classifiedAdId).FirstOrDefault();
            db.Comments.Add(comment);
            db.SaveChanges();
            return(Ok());
        }
        public ActionResult Create(ClassifiedAdViewModel classifiedAdVM)
        {
            ClassifiedAd classifiedAd = new ClassifiedAd();

            if (ModelState.IsValid)
            {
                string[] images = null;
                if (classifiedAdVM.Image != null)
                {
                    images = classifiedAdVM.Image.Split(';');
                }

                classifiedAd.Title       = classifiedAdVM.Title;
                classifiedAd.Description = classifiedAdVM.Description;
                classifiedAd.City        = db.Cities.Find(Convert.ToInt32(Request.Form["City"]));
                classifiedAd.Category    = db.Categories.Find(Convert.ToInt32(Request.Form["Category"]));
                classifiedAd.User        = db.Users.Find(User.Identity.GetUserId());
                classifiedAd.Images      = new List <Image>();
                if (images != null)
                {
                    foreach (string image in images)
                    {
                        var img = db.Images.Where(i => i.Identifier == image).FirstOrDefault();
                        if (img != null)
                        {
                            classifiedAd.Images.Add(img);
                        }
                    }
                }

                db.ClassifiedAds.Add(classifiedAd);
                db.SaveChanges();
                return(RedirectToAction("Index", "Home"));
            }

            return(View(classifiedAdVM));
        }
Example #4
0
        public async Task <IHttpActionResult> PictureUploadPost()
        {
            var request = HttpContext.Current.Request;

            var validationRules = new FlowValidationRules();

            validationRules.AcceptedExtensions.AddRange(new List <string> {
                "jpeg", "jpg", "png", "bmp"
            });
            validationRules.MaxFileSize = 5000000;

            try
            {
                var status = _flowJs.PostChunk(request, Folder, validationRules);

                if (status.Status == PostChunkStatus.Done)
                {
                    #region Amazon S3
                    // file uploade is complete. Below is an example of further file handling
                    //var filePath = Path.Combine(Folder, status.FileName);
                    //var file = File.ReadAllBytes(filePath);
                    //var picture = await _fileManager.UploadPictureToS3(User.Identity.GetUserId(), file, status.FileName);
                    //File.Delete(filePath);
                    //return Ok(file);
                    #endregion
                    var filePath           = Path.Combine(Folder, status.FileName);
                    var file               = File.ReadAllBytes(filePath);
                    var enhancedIdentifier = status.Identifier.Substring(0, 5) + Math.Ceiling((DateTime.Now - DateTime.MinValue).TotalMilliseconds);

                    Image image;
                    using (ClassifiedContext _db = new ClassifiedContext())
                    {
                        if (_db.Images.Where(i => i.Identifier == enhancedIdentifier).FirstOrDefault() != null)
                        {
                            return(Ok("Already Exist!"));
                        }

                        image            = new Image();
                        image.Path       = filePath;
                        image.Identifier = enhancedIdentifier;
                        _db.Images.Add(image);
                        _db.SaveChanges();
                    }

                    return(Ok(image.Identifier));
                }

                if (status.Status == PostChunkStatus.PartlyDone)
                {
                    return(Ok());
                }

                status.ErrorMessages.ForEach(x => ModelState.AddModelError("file", x));
                return(BadRequest(ModelState));
            }
            catch (Exception)
            {
                ModelState.AddModelError("file", "exception");
                return(BadRequest(ModelState));
            }
        }