Exemplo n.º 1
0
        public IHttpResponse Create(PackageCreateViewModel model)
        {
            var recipient = this.DbContext.Users.FirstOrDefault(u => u.Username == model.Recipient);

            if (recipient == null)
            {
                return(this.BadRequestErrorWithView("Please select recipient"));
            }

            var package = new Package
            {
                Description           = model.Description,
                Weight                = model.Weight,
                ShippingAddress       = model.Address,
                RecipientId           = recipient.Id,
                Status                = Status.Pending,
                EstimatedDeliveryDate = null,
            };

            this.DbContext.Packages.Add(package);
            try
            {
                this.DbContext.SaveChanges();
            }
            catch (Exception e)
            {
                return(this.ServerError(e.Message));
            }

            return(this.Redirect("/"));
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        public ActionResult Create()
        {
            var viewModel = new PackageCreateViewModel();

            viewModel.Categories = GetList(ListType.Category);
            viewModel.Countries  = GetList(ListType.Country, defaultItem: false);
            viewModel.Activities = GetPackageActivities();

            return(View(viewModel));
        }
Exemplo n.º 4
0
        public IActionResult Create(PackageCreateViewModel model)
        {
            var success = this.packagesService.Create(model.Description, model.Weight, model.ShippingAddress, model.Recipient);

            if (!success)
            {
                return(this.RedirectToAction("/Packages/Create"));
            }

            return(this.RedirectToAction("/"));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Create(PackageCreateViewModel vm, IFormFile file)
        {
            IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

            if (ModelState.IsValid)
            {
                Package existingPackage = _packageDataService.GetSingle(p => p.Name == vm.PackageName);
                if (existingPackage == null)
                {
                    Package package = new Package
                    {
                        Name        = vm.PackageName,
                        Price       = vm.Price,
                        Location    = vm.LocationName,
                        Description = vm.Description,
                        IsAvailable = true,
                        LocationId  = vm.LocationId,
                        UserId      = user.Id
                    };

                    if (file != null)
                    {
                        var serverPath = Path.Combine(_environment.WebRootPath, "uploads/package");
                        Directory.CreateDirectory(Path.Combine(serverPath, User.Identity.Name));
                        string fileName = FileNameHelper.GetNameFormatted(Path.GetFileName(file.FileName));
                        using (var fileStream = new FileStream(Path.Combine(serverPath, User.Identity.Name, fileName), FileMode.Create))
                        {
                            await file.CopyToAsync(fileStream);
                        }
                        package.Picture = User.Identity.Name + "/" + fileName;
                    }
                    else if (file == null)
                    {
                        package.Picture = "apackagegen.jpg";
                    }

                    _packageDataService.Create(package);
                    return(RedirectToAction("Details", "Package", new { id = package.PackageId }));
                }
                else
                {
                    ViewBag.MyMessage = "Package name exists. please change the name";
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
 public IActionResult Create(PackageCreateViewModel model)
 {
     if (ModelState.IsValid != true)
     {
         return(View());
     }
     if (packagesService.Exists(model.Description))
     {
         Model["Error"]      = $"A package with description '{model.Description}' already exists";
         Model["Recipients"] = GetRecipients();
         return(View());
     }
     packagesService.AddPackage(model.Description, model.Weight, model.ShippingAddress, model.Recipient);
     return(RedirectToAction(Constants.HomeViewRoute));
 }
Exemplo n.º 7
0
 public IActionResult Create(PackageCreateViewModel vm)
 {
     if (ModelState.IsValid)
     {
         Package package = new Package
         {
             Type   = vm.Type,
             Amount = vm.Amount,
             Price  = vm.Price
         };
         _packageManager.CreatePackage(package);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(vm));
 }
Exemplo n.º 8
0
        public IHttpResponse Create()
        {
            if (this.User.IsLoggedIn && this.User.Role == "Admin")
            {
                var viewModel = new PackageCreateViewModel();
                viewModel.AllUsers = this.Db.Users
                                     .Select(x => new UserViewModel
                {
                    Id       = x.Id,
                    Username = x.Username,
                }).ToList();

                return(this.View(viewModel));
            }

            return(this.Redirect("/"));
        }
Exemplo n.º 9
0
        public IActionResult Create(int id)
        {
            //is there a way to optimise to store location id and name as temp data so do not need to pull from database
            //int locationId = int.Parse(TempData["locationId"].ToString());
            Location location = _locationDataService.GetSingle(p => p.LocationId == id);

            PackageCreateViewModel vm = new PackageCreateViewModel
            {
                //LocationId = locationId,
                LocationId   = location.LocationId,
                LocationName = location.Name
            };

            //IEnumerable<Location> locationList = _locationDataService.GetAll().OrderBy(p => p.Name);

            //PackageCreateViewModel vm = new PackageCreateViewModel
            //{
            //    LocationList = new SelectList(locationList, "Id", "Value")
            //};
            return(View(vm));
        }
Exemplo n.º 10
0
        public IHttpResponse Create(PackageCreateViewModel model)
        {
            var user = this.db.Users.FirstOrDefault(u => u.Username == model.Recipient);

            if (user == null)
            {
                return(this.BadRequestError("Invalid username"));
            }

            var package = new Package
            {
                Id                    = model.Id,
                Description           = model.Description,
                Weight                = model.Weight,
                ShippingAddress       = model.ShippingAddress,
                Recipient             = user,
                EstimatedDeliveryDate = null
            };

            this.db.Packages.Add(package);
            this.db.SaveChanges();

            return(this.Redirect($"/Packages/Details?id={package.Id}"));
        }
Exemplo n.º 11
0
        public ActionResult Create(HttpPostedFileBase file, PackageCreateViewModel viewModel)
        {
            if (!ModelState.IsValid || file == null)
            {
                if (file == null)
                {
                    ModelState.AddModelError("", "Thumbnail is required.");
                }

                viewModel.Categories       = GetList(ListType.Category);
                viewModel.Countries        = GetList(ListType.Country, defaultItem: false);
                viewModel.Activities       = GetPackageActivities();
                viewModel.DetailImageNames = "";

                return(View(viewModel));
            }

            var postID = 0;

            var isAvailable = CheckAvailablePost(Util.SessionAccess.ID);

            using (var trans = new TransactionScope())
            {
                var post = new lnkmemberpost()
                {
                    Description = viewModel.Description,
                    CreateDT    = DateTime.Now,
                    Language    = lang,
                    MemberID    = Util.SessionAccess.ID,
                    PublishDT   = DateTime.Now,
                    Title       = viewModel.Title,
                    CategoryID  = viewModel.CategoryID,
                    Price       = viewModel.Price,
                    StartDT     = viewModel.StartDT,
                    EndDT       = viewModel.EndDT,
                    Days        = viewModel.Days,
                    Nights      = viewModel.Nights,
                    Active      = isAvailable,
                };

                if (file != null)
                {
                    var fileName = FileUploadManager.UploadAndSave(file);
                    post.ThumbnailImagePath = fileName;
                }

                db.lnkmemberposts.Add(post);
                db.SaveChanges();

                if (!viewModel.CountryIDs.IsEmpty())
                {
                    var memberCountries =
                        viewModel.CountryIDs
                        .Select(a =>
                                new lnkmemberpostcountry
                    {
                        Active       = true,
                        CountryID    = a,
                        CreateDT     = DateTime.Now,
                        MemberPostID = post.ID
                    })
                        .ToArray();

                    db.lnkmemberpostcountries.AddRange(memberCountries);
                }

                if (!viewModel.SelectedActivities.IsEmpty())
                {
                    foreach (var activityID in viewModel.SelectedActivities)
                    {
                        var activity = new lnkmemberpostpackageactivity
                        {
                            Active            = true,
                            CreateDT          = DateTime.Now,
                            MemberPostID      = post.ID,
                            PackageActivityID = activityID
                        };
                        db.lnkmemberpostpackageactivities.Add(activity);
                    }
                    db.SaveChanges();
                }

                if (!string.IsNullOrEmpty(viewModel.DetailImageNames))
                {
                    var detailImages = viewModel.DetailImageNames.Split(',');

                    foreach (var image in detailImages)
                    {
                        var linkImage = new lnkmemberpostimage
                        {
                            Active       = true,
                            CreateDT     = DateTime.Now,
                            ImagePath    = image,
                            MemberPostID = post.ID,
                        };
                        db.lnkmemberpostimages.Add(linkImage);
                    }
                    db.SaveChanges();
                }

                trans.Complete();

                postID = post.ID;
            }

            var emailBody = string.Format(@"Hi EZ Management, <br /><br />
                    Package <b>{0}</b> has been created. <br /><br />
                    
                    http://ezgoholiday.com/EN/Package/Details/{1} <br /><br />
                    Posted: {2}",
                                          viewModel.Title, postID, isAvailable);

            Util.SendEmail(viewModel.Title, emailBody, Properties.Settings.Default.EmailFrom, "", "");


            if (viewModel.Active && !isAvailable)
            {
                return(RedirectToAction("Edit", new
                {
                    id = postID,
                    errorMessage = "不足够可发布数量.\n帖子成功保存,但无法发布到网站."
                }));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Exemplo n.º 12
0
        public IActionResult Create()
        {
            PackageCreateViewModel vm = new PackageCreateViewModel();

            return(View(vm));
        }