Exemplo n.º 1
0
        public async Task <IActionResult> Create(CreateTravelPackageVM vm, IFormFile photoPath)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByNameAsync(User.Identity.Name);

                IEnumerable <TravelPackage> list = _packageRepo.Query(l => l.UserId == user.Id && !l.Discontinued);
                if (list != null)
                {
                    if (list.Any(n => n.Name == vm.Name))
                    {
                        ModelState.AddModelError("PackageName", "Please Choose a Different Package Name");
                        return(View(vm));
                    }
                }

                //map vm to model
                TravelPackage pack = new TravelPackage
                {
                    Name         = vm.Name,
                    Price        = vm.Price,
                    Location     = vm.Location,
                    State        = vm.State,
                    Description  = vm.Description,
                    UserId       = user.Id,
                    ProviderName = user.UserName
                };
                //upload photo
                ////
                if (photoPath != null)
                {
                    //1 -) create directory
                    string uploadPath = Path.Combine(_environment.WebRootPath, "Uploads\\TravelPackages");
                    uploadPath = Path.Combine(uploadPath, User.Identity.Name);
                    Directory.CreateDirectory(Path.Combine(uploadPath, pack.Name));
                    //2 -) get the file name
                    string FileName = Path.GetFileName(photoPath.FileName);

                    //3 -)
                    using (FileStream fs = new FileStream(Path.Combine(uploadPath, pack.Name, FileName), FileMode.Create))
                    {
                        photoPath.CopyTo(fs);
                    }
                    //4 -) change the pack photoPath
                    pack.PhotoPath = Path.Combine(User.Identity.Name, pack.Name, FileName);
                }
                else
                {
                    pack.PhotoPath = "";
                }

                //save to db
                _packageRepo.Create(pack);
                //go home/index
                return(RedirectToAction("Index", "TravelPackage"));
            }

            return(View(vm));
        }
Exemplo n.º 2
0
        public JsonResult PostPackage(CreateTravelPackageVM vm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    TravelPackage pack = new TravelPackage
                    {
                        Name        = vm.Name,
                        Description = vm.Description,
                        Price       = vm.Price,
                        Location    = vm.Location
                    };
                    _packagesRepo.Create(pack);
                    //success
                    Response.StatusCode = (int)HttpStatusCode.Created;

                    return(Json(true));
                }
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json(new { Message = ex.Message }));
            }
            //case it is invalid
            Response.StatusCode = (int)HttpStatusCode.BadRequest;
            return(Json(new { Message = "Failed to upload details =(", ModelState = ModelState }));

            //{
            //    "travelPackageId": 1,
            //    "name": "Asasaasa2",
            //    "location": "a2",
            //    "description": "a2",
            //    "price": 1112,
            //    "active": false,
            //    "providerCompany": "",
            //    "userId": "Provider4"
            //   }
        }