public async Task <IActionResult> Create(PackageCreateViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

                //check exists - Name = UNQ
                Package  existingPackage = _packageService.GetSingle(p => p.Name == vm.Name);
                Location loc             = _locationService.GetSingle(l => l.LocationId == int.Parse(TempData["locId"].ToString()));
                if (existingPackage == null)
                {
                    Package pac = new Package
                    {
                        LocationId  = loc.LocationId,
                        Name        = vm.Name,
                        LocName     = loc.Name,
                        Price       = vm.Price,
                        Description = vm.Description,
                        Active      = vm.Active,
                        LocState    = loc.State,
                        UserId      = user.Id
                    };
                    //upload the picture to the file system
                    //assign the picture URL to the cat object
                    if (file != null)
                    {
                        //check ??

                        //upload server path
                        var serverPath = Path.Combine(_environment.WebRootPath, "uploads");
                        //create a folder
                        Directory.CreateDirectory(Path.Combine(serverPath, User.Identity.Name));
                        //get the file name
                        string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                        //stream the file to the server
                        using (var fileStream = new FileStream(Path.Combine(serverPath, User.Identity.Name, fileName), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        //assign the picture URL to the cat object
                        pac.Picture = User.Identity.Name + "/" + fileName;
                    }

                    //save to db
                    _packageService.Create(pac);
                    //go home
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ViewBag.MyMessage = "Package name exists. Please change the name";
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
        public async Task <IActionResult> Update(PackageUpdateViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                Package package = _packageService.GetSingle(p => p.PackageId == vm.PackageId);
                package.Name        = vm.Name;
                package.LocName     = vm.LocName;
                package.Price       = vm.Price;
                package.Description = vm.Description;
                package.LocState    = vm.LocState;
                package.Active      = vm.Active;
                //Package pac = new Package
                //{
                //    LocationId = int.Parse(TempData["locId"].ToString()),
                //    Name = vm.Name,
                //    Price = vm.Price,
                //    Description = vm.Description,
                //    Active = vm.Active,
                //    Picture=vm.Picture
                //};
                //upload the picture to the file system
                //assign the picture URL to the cat object
                if (file != null)
                {
                    //check ??

                    //upload server path
                    var serverPath = Path.Combine(_environment.WebRootPath, "uploads");
                    //create a folder
                    Directory.CreateDirectory(Path.Combine(serverPath, User.Identity.Name));
                    //get the file name
                    string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                    //stream the file to the srever
                    using (var fileStream = new FileStream(Path.Combine(serverPath, User.Identity.Name, fileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }
                    //assign the picture URL to the cat object
                    package.Picture = User.Identity.Name + "/" + fileName;
                    //string oldPicturePath = "~/uploads/" +  vm.Picture;
                    //FileInfo myfileinf = new FileInfo(oldPicturePath);
                    //myfileinf.Delete();
                }

                //save to db
                _packageService.Update(package);

                //go home
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(View(vm));
            }
        }
        //[Authorize("TravelProvider")]
        public async Task <IActionResult> Add(PackageAddViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                //get the user who already logged in
                IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

                //get the profile for this user
                //call the service to check if Package name already exist
                Package packExist = _packageDataService.GetSingle(p => p.PackName.ToUpper().Trim() == vm.PackName.ToUpper().Trim());

                if (packExist == null) // Not found, then ok to add
                {
                    Package package = new Package
                    {
                        UserId          = user.Id,
                        PackName        = vm.PackName,
                        PackLocation    = vm.PackLocation,
                        PackDescription = vm.PackDescription,
                        PackPrice       = vm.PackPrice,
                        PackageStatus   = vm.PackageStatus
                    };


                    if (file != null)
                    {
                        //upload server path
                        var uploadPath = Path.Combine(_environment.WebRootPath, "images");
                        //create subfolder
                        Directory.CreateDirectory(Path.Combine(uploadPath, User.Identity.Name));
                        //get the file name
                        string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                        // stream the file to the srever
                        using (var fileStream = new FileStream(Path.Combine(uploadPath, User.Identity.Name, fileName), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        //add the file url to category

                        package.PackImage = User.Identity.Name + "/" + fileName;
                    }

                    _packageDataService.Create(package);

                    //go to home page
                    return(RedirectToAction("Index", "Package"));
                }
                else
                {
                    ModelState.AddModelError("", "Something is wrong");
                }
            }
            return(View(vm));
        }
Beispiel #4
0
        public async Task <IActionResult> UpdateProfile(CustomerUpdateProfileViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                //get the user who already logged in
                IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

                //get the profile for this user
                Customer customer = _customerDataService.GetSingle(p => p.UserId == user.Id);
                //map the vm

                customer.FirstName    = vm.FirstName;
                customer.LastName     = vm.LastName;
                customer.Phone        = vm.Phone;
                customer.Address      = vm.Address;
                customer.ProfilePhoto = vm.ProfilePhoto;

                if (file != null)
                {
                    //&& System.IO.File.Exists(customer.ProfilePhoto)
                    //System.IO.File.Delete(customer.ProfilePhoto);
                    //upload server path
                    var uploadPath = Path.Combine(_environment.WebRootPath, "images");
                    //create subfolder
                    Directory.CreateDirectory(Path.Combine(uploadPath, User.Identity.Name));
                    //get the file name
                    string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                    // stream the file to the srever
                    using (var fileStream = new FileStream(Path.Combine(uploadPath, User.Identity.Name, fileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }
                    //add the file url to category

                    customer.ProfilePhoto = User.Identity.Name + "/" + fileName;
                }

                //save changes
                _customerDataService.Update(customer);

                user.Email    = vm.Email;
                user.UserName = vm.UserName;
                await _userManagerService.UpdateAsync(user);

                //go home
                return(RedirectToAction("Index", "Customer"));
            }
            return(View(vm));
        }
        //[Authorize("TravelProvider")]
        public async Task <IActionResult> Update(PackageUpdateViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                //get the user who already logged in
                IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);


                Package pack = new Package
                {
                    UserId          = user.Id,
                    PackageId       = vm.PackageId,
                    PackName        = vm.PackName,
                    PackLocation    = vm.PackLocation,
                    PackDescription = vm.PackDescription,
                    PackPrice       = vm.PackPrice,
                    PackImage       = vm.PackImage,
                    PackageStatus   = vm.PackageStatus
                };
                if (file != null)
                {
                    //upload server path
                    var uploadPath = Path.Combine(_environment.WebRootPath, "images");
                    //create subfolder
                    Directory.CreateDirectory(Path.Combine(uploadPath, User.Identity.Name));
                    //get the file name
                    string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                    // stream the file to the srever
                    using (var fileStream = new FileStream(Path.Combine(uploadPath, User.Identity.Name, fileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }
                    //add the file url to category

                    pack.PackImage = "images" + "/" + User.Identity.Name + "/" + fileName;
                }

                //save changes
                _packageDataService.Update(pack);

                //go home
                return(RedirectToAction("Index", "Package"));
            }
            return(View(vm));
        }
        public async Task <IActionResult> Create(LocationCreateViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                //check exists - Name = UNQ
                Location existingLocation = _locationService.GetSingle(loc => loc.Name == vm.Name);
                if (existingLocation == null)
                {
                    Location loc = new Location
                    {
                        Name    = vm.Name,
                        Details = vm.Details,
                        Active  = vm.Active,
                        State   = vm.State
                    };
                    //upload the picture to the file system
                    //assign the picture URL to the cat object
                    if (file != null)
                    {
                        //get the file name
                        string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));
                        await _blobService.UploadFileBlobAsync(file, Path.Combine("uploads", User.Identity.Name, fileName));

                        //assign the picture URL to the cat object
                        loc.Picture = User.Identity.Name + "/" + fileName;
                    }

                    //save to db
                    _locationService.Create(loc);
                    //go home
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ViewBag.MyMessage = "Location name exists. Please change the name";
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
        public async Task <IActionResult> Update(LocationUpdateViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                Location location = _locationService.GetSingle(l => l.Name == vm.Name);
                location.Name    = vm.Name;
                location.State   = vm.State;
                location.Details = vm.Details;
                location.Active  = vm.Active;
                if (file != null)
                {
                    //check ??

                    //upload server path
                    var serverPath = Path.Combine(_environment.WebRootPath, "uploads");
                    //create a folder
                    Directory.CreateDirectory(Path.Combine(serverPath, User.Identity.Name));
                    //get the file name
                    string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                    //stream the file to the srever
                    using (var fileStream = new FileStream(Path.Combine(serverPath, User.Identity.Name, fileName), FileMode.Create))
                    {
                        await file.CopyToAsync(fileStream);
                    }
                    //assign the picture URL to the cat object
                    location.Picture = User.Identity.Name + "/" + fileName;
                }

                //save to db
                _locationService.Update(location);
                //go home
                return(RedirectToAction("Details", "Location", new { name = vm.Name }));
            }
            else
            {
                ViewBag.MyMessage = "Location name exists. Please change the name";
                return(View(vm));
            }
        }
Beispiel #8
0
        public async Task <IActionResult> Register(CustomerRegisterViewModel vm, IFormFile file)
        {
            if (ModelState.IsValid)
            {
                //user
                IdentityUser user = new IdentityUser(vm.UserName);
                //add to database
                IdentityResult result = await _userManagerService.CreateAsync(user, vm.Password);

                if (vm.Password != null)
                {
                    vm.Password = vm.ConfirmPassword;
                }

                if (result.Succeeded)
                {
                    //add a default role
                    if (await _roleManagerService.FindByNameAsync("Customer") != null)
                    {
                        await _userManagerService.AddToRoleAsync(user, "Customer");
                    }

                    //add default profile
                    //get the user back to find the id
                    user = await _userManagerService.FindByNameAsync(vm.UserName);

                    Customer profile = new Customer
                    {
                        UserId       = user.Id,
                        FirstName    = vm.FirstName,
                        LastName     = vm.LastName,
                        Address      = vm.Address,
                        Email        = vm.Email,
                        Phone        = vm.Mobile,
                        ProfilePhoto = vm.ProfilePhoto
                    };
                    //..file

                    if (file != null)
                    {
                        //upload server path
                        var uploadPath = Path.Combine(_environment.WebRootPath, "images");
                        //create subfolder
                        Directory.CreateDirectory(Path.Combine(uploadPath, vm.UserName));
                        //get the file name
                        string fileName = FileNameHelper.GetNameFormated(Path.GetFileName(file.FileName));

                        // stream the file to the srever
                        using (var fileStream = new FileStream(Path.Combine(uploadPath, vm.UserName, fileName), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        //add the file url to category

                        profile.ProfilePhoto = vm.UserName + "/" + fileName;
                    }

                    _customerDataService.Create(profile);

                    //go to home page
                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    foreach (var item in result.Errors)
                    {
                        //show
                        ModelState.AddModelError("", item.Description);
                    }
                }
            }
            return(View(vm));
        }