public async Task <IActionResult> Edit(Guid id, ItemCreateEditViewModel vm)
        {
            if (id != vm.Item.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _bll.Items.UpdateAsync(vm.Item);

                    await _bll.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ItemExists(vm.Item.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(vm));
        }
        // GET: Items/Create
        public IActionResult Create()
        {
            var userIdTKey = User.IsInRole("Admin") ? null : (Guid?)User.UserGuidId();
            var vm         = new ItemCreateEditViewModel {
                Restaurants = new SelectList(_bll.Restaurants.GetAllByUser(userIdTKey), nameof(BLL.App.DTO.Restaurant.Id), nameof(BLL.App.DTO.Restaurant.Name))
            };

            return(View(vm));
        }
        public async Task <IActionResult> Create(ItemCreateEditViewModel vm)
        {
            if (ModelState.IsValid)
            {
                vm.Item.Id = Guid.NewGuid();
                _bll.Items.Add(vm.Item);
                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(vm));
        }
Beispiel #4
0
        // GET: Items/Create
        public async Task <IActionResult> Create()
        {
            var vm = new ItemCreateEditViewModel()
            {
                CategorySelectList = new MultiSelectList(
                    await _bll.CategoryService.GetAllSubCategoriesAsync(), nameof(Category.Id), nameof(Category.Name)),
                BrandSelectList = new SelectList(
                    await _bll.BrandService.AllAsync(User.UserGuidId()), nameof(Brand.Id), nameof(Brand.Name)),
            };

            return(View(vm));
        }
Beispiel #5
0
        // GET: Items/Create
        public async Task <IActionResult> Create()
        {
            var vm = new ItemCreateEditViewModel
            {
                CompanySelectList            = new SelectList(await _bll.Companies.GetAllAppUserCompaniesAsync(User.UserGuidId()), nameof(CompanyBLL.Id), nameof(CompanyBLL.CompanyName)),
                LocationSelectList           = new SelectList(await _bll.Locations.GetAllAsync(User.UserGuidId()), nameof(LocationBLL.Id), nameof(LocationBLL.AddressLine)),
                CategorySelectList           = new SelectList(await _bll.Categories.GetCategoriesForSelectListAsync(), nameof(CategoryBLL.Id), nameof(CategoryBLL.Description)),
                ProductDescriptionSelectList = new SelectList(await _bll.ProductDescriptions.GetAllAsync(), nameof(ProductDescriptionBLL.Id), nameof(ProductDescriptionBLL.Description))
            };

            return(View(vm));
        }
Beispiel #6
0
        // GET: Items/Create
        public IActionResult Create()
        {
            var viewModel = new ItemCreateEditViewModel
            {
                AvailableCategory = _context.Category.ToList(),
                AvailableStatus   = _context.Status.ToList()
            };
            List <Category> avCat  = getCategories();
            List <Status>   avStat = getStatus();

            viewModel.AvailableCategory = avCat;
            viewModel.AvailableStatus   = avStat;
            return(View(viewModel));
        }
Beispiel #7
0
        public async Task <IActionResult> Edit(int id, ItemCreateEditViewModel viewModel)
        {
            var item = viewModel.Item;

            if (ModelState.IsValid)
            {
                string uniqueFileName = null;

                // If the Photo property on the incoming model object is not null, then the user
                // has selected an image to upload.
                if (viewModel.Photo != null)
                {
                    // The image must be uploaded to the images folder in wwwroot
                    // To get the path of the wwwroot folder we are using the inject
                    // HostingEnvironment service provided by ASP.NET Core
                    string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images");
                    // To make sure the file name is unique we are appending a new
                    // GUID value and and an underscore to the file name
                    uniqueFileName = Guid.NewGuid().ToString() + "_" + viewModel.Photo.FileName;
                    string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                    // Use CopyTo() method provided by IFormFile interface to
                    // copy the file to wwwroot/images folder
                    viewModel.Photo.CopyTo(new FileStream(filePath, FileMode.Create));
                    viewModel.ImagePath = uniqueFileName;
                }
                if (uniqueFileName == null)
                {
                    item.ImagePath = viewModel.ImagePath;
                }
                else
                {
                    item.ImagePath = uniqueFileName;
                }
                var currentUser = await _userManager.GetUserAsync(HttpContext.User);

                viewModel.UserId = currentUser.Id;
                _context.Update(item);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(MyItems)));
            }

            viewModel.AvailableCategory = getCategories();
            return(View(viewModel));
        }
        // GET: Items/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var userIdTKey = User.IsInRole("Admin") ? null : (Guid?)User.UserGuidId();
            var vm         = new ItemCreateEditViewModel {
                Item        = await _bll.Items.FirstOrDefaultAsync(id.Value, userIdTKey),
                Restaurants = new SelectList(await _bll.Restaurants.GetAllByUserAsync(userIdTKey), nameof(BLL.App.DTO.Restaurant.Id), nameof(BLL.App.DTO.Restaurant.Name))
            };

            if (vm.Item == null)
            {
                return(NotFound());
            }
            return(View(vm));
        }
Beispiel #9
0
        public async Task <IActionResult> Edit(Guid id, ItemCreateEditViewModel vm)
        {
            var item = vm.Item;

            item.UserId = (await _bll.ItemService
                           .FirstOrDefaultAsync(id)).UserId;

            if (id != item.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _bll.ItemService.UpdateAsync(item);

                    await _bll.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await _bll.ItemService.ExistsAsync(item.Id)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }

            vm.CategorySelectList = new SelectList(await _bll.CategoryService.GetAllSubCategoriesAsync(), "Id", "Name",
                                                   item.BrandId);
            vm.BrandSelectList = new SelectList(await _bll.BrandService.AllAsync(User.UserGuidId()), "Id", "Name",
                                                item.BrandId);
            return(View(vm));
        }
Beispiel #10
0
        public async Task <IActionResult> Create(ItemCreateEditViewModel vm)
        {
            vm.Item.UserId = User.UserGuidId();
            if (ModelState.IsValid && vm.Categories != null)
            {
                var item = vm.Item;
                item.Id         = Guid.NewGuid();
                item.Categories = vm.Categories.ToArray();
                _bll.ItemService.Add(item);


                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.CategorySelectList = new MultiSelectList(
                await _bll.CategoryService.GetAllSubCategoriesAsync(), nameof(Category.Id), nameof(Category.Name));
            vm.BrandSelectList = new SelectList(
                await _bll.BrandService.AllAsync(User.UserGuidId()), nameof(Brand.Id), nameof(Brand.Name));
            return(View(vm));
        }
Beispiel #11
0
        // GET: Items/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            ItemCreateEditViewModel viewModel = new ItemCreateEditViewModel();

            viewModel.AvailableCategory = _context.Category.ToList();
            viewModel.AvailableStatus   = _context.Status.ToList();
            var Item        = viewModel.Item;
            var currentUser = await _userManager.GetUserAsync(HttpContext.User);

            if (id == null)
            {
                return(NotFound());
            }

            Item taco = await _context.Item.FindAsync(id);

            viewModel.Item = taco;
            if (taco == null)
            {
                return(NotFound());
            }
            return(View(viewModel));
        }
Beispiel #12
0
        // GET: Items/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Item item;

            if (User.UserRole().Contains("Admin"))
            {
                item = await _bll.ItemService
                       .FirstOrDefaultAsync((Guid)id);
            }
            else
            {
                item = await _bll.ItemService
                       .FirstOrDefaultAsync((Guid)id, User.UserGuidId());
            }

            if (item == null)
            {
                return(NotFound());
            }

            var vm = new ItemCreateEditViewModel()
            {
                Item = item,
                CategorySelectList = new SelectList(await _bll.CategoryService.GetAllSubCategoriesAsync(), "Id", "Name",
                                                    item.BrandId),
                BrandSelectList = new SelectList(await _bll.BrandService.AllAsync(User.UserGuidId()), "Id", "Name",
                                                 item.BrandId)
            };

            return(View(vm));
        }
Beispiel #13
0
        public async Task <IActionResult> Create(ItemCreateEditViewModel vm, IEnumerable <IFormFile> images)
        {
            vm.AppUserId = User.UserGuidId();

            if (ModelState.IsValid)
            {
                var bllEntity = _mapper.Map(vm);
                _bll.Items.Add(bllEntity);
                await _bll.SaveChangesAsync();

                vm.Id = bllEntity.Id;

                // Add item ownership
                var itemOwnershipBLL = new ItemOwnershipBLL();
                itemOwnershipBLL.AppUserId = User.UserGuidId();
                itemOwnershipBLL.CompanyId = vm.CompanyId == Guid.Empty ? null : vm.CompanyId;

                itemOwnershipBLL.ItemId = bllEntity.Id;
                _bll.ItemOwnerships.Add(itemOwnershipBLL);
                await _bll.SaveChangesAsync();

                if (images != null)
                {
                    foreach (var file in images)
                    {
                        using (var ms = new MemoryStream())
                        {
                            //image.Save(ms, new PngEncoder());
                            var imageBLL = new ImageBLL();
                            imageBLL.AppUserId = User.UserGuidId();
                            await file.CopyToAsync(ms);

                            imageBLL.Picture = ms.ToArray();
                            imageBLL.ItemId  = bllEntity.Id;
                            _bll.Images.Add(imageBLL);
                        }
                    }
                    await _bll.SaveChangesAsync();
                }

                // Add category to item
                var itemCategoryBLL = new ItemCategoryBLL();
                itemCategoryBLL.AppUserId  = User.UserGuidId();
                itemCategoryBLL.CategoryId = vm.CategoryId;
                itemCategoryBLL.ItemId     = bllEntity.Id;
                _bll.ItemCategories.Add(itemCategoryBLL);

                await _bll.SaveChangesAsync();

                // Add prices
                var priceDayBLL = new PriceBLL();
                priceDayBLL.AppUserId      = User.UserGuidId();
                priceDayBLL.ItemPrice      = vm.ItemDayPrice;
                priceDayBLL.ItemId         = bllEntity.Id;
                priceDayBLL.RentalPeriodId = _bll.RentalPeriods.GetRentalPeriodId("Päev");
                _bll.Prices.Add(priceDayBLL);

                var priceWeekBLL = new PriceBLL();
                priceWeekBLL.AppUserId      = User.UserGuidId();
                priceWeekBLL.ItemPrice      = vm.ItemWeekPrice;
                priceWeekBLL.ItemId         = bllEntity.Id;
                priceWeekBLL.RentalPeriodId = _bll.RentalPeriods.GetRentalPeriodId("Nädal");
                _bll.Prices.Add(priceWeekBLL);

                var priceMonthBLL = new PriceBLL();
                priceMonthBLL.AppUserId      = User.UserGuidId();
                priceMonthBLL.ItemPrice      = vm.ItemMonthPrice;
                priceMonthBLL.ItemId         = bllEntity.Id;
                priceMonthBLL.RentalPeriodId = _bll.RentalPeriods.GetRentalPeriodId("Kuu");
                _bll.Prices.Add(priceMonthBLL);

                await _bll.SaveChangesAsync();

                // Add item descriptions
                if (vm.ItemDescription != null || vm.ItemDescription !.Length != 0)
                {
                    var itemDescriptionBLL = new ItemDescriptionBLL()
                    {
                        AppUserId            = User.UserGuidId(),
                        Description          = vm.ItemDescription,
                        ProductDescriptionId = vm.ProductDescriptionId,
                        ItemId = bllEntity.Id
                    };
                    _bll.ItemDescriptions.Add(itemDescriptionBLL);
                }

                if (vm.Descriptions != null && vm.Descriptions !.Count != 0)
                {
                    for (int i = 0; i < vm.Descriptions.Count; i++)
                    {
                        if (vm.Descriptions[i].Length != 0)
                        {
                            var itemDescriptionBLL = new ItemDescriptionBLL()
                            {
                                AppUserId            = User.UserGuidId(),
                                Description          = vm.Descriptions[i],
                                ProductDescriptionId = vm.ProductDescriptionIds ![i],