public ActionResult Publish(ListingPublishingViewModel model)
        {
            if (ModelState.IsValid)
            {
                listingsManager.PublishListing(model.Listing);
                return RedirectToAction("List");
            }

            return View();
        }
        public ActionResult Publish(ListingPublishingViewModel model, HttpPostedFileBase image = null)
        {
            if (ModelState.IsValid)
            {
                var removalGuid = Guid.NewGuid();
                if (image != null)
                {
                    model.Listing.FeaturedImageMimeType = image.ContentType;
                    model.Listing.FeaturedImageData = new byte[image.ContentLength];
                    image.InputStream.Read(model.Listing.FeaturedImageData, 0, image.ContentLength);
                }

                if (model.Listing.Id == -1)
                {
                    model.Listing.Id = 0;
                    model.Listing.RemovalGuid = removalGuid.ToString();
                    listingsManager.PublishListing(model.Listing);
                    emailManager.SendEmail(model.Listing.Contact.Email, ConfigurationManager.AppSettings["Email"], "Control Your Listing", string.Format(@"Hi {0},
            Thank you for posting your listing {1} on our website.
            If your item is sold out or you just want to delete it for whatever reason, just click the list below:
            http://{2}/Listing/Delete?removalId={3}
            If you want to amend your posting, click the link below:
            http://{2}/Listing/Edit?removalId={3}", model.Listing.Contact.FirstName, model.Listing.Header, HttpContext.Request.Url.Host, removalGuid));
                }
                else
                {
                    listingsManager.UpdateListing(model.Listing);
                }
                return RedirectToAction("List");
            }

            model.Categories = RetrieveAllCategories();
            return View(model);
        }