コード例 #1
0
        public async Task <IActionResult> EditBusiness(RegisterEditBusinessViewModel model)
        {
            var isAuthorized = await _authorizationService.AuthorizeAsync(User, model.Business, new UserIdMatchRequirement());

            if (!isAuthorized.Succeeded)
            {
                return(Forbid());
            }

            try
            {
                await _uploadImageService.EditBusinessUploadImage(model);

                _repo.BusinessHour.Update(model.Business.BusinessHour);
                _repo.Business.Update(model.Business);
                _repo.Save();
            }
            catch
            {
                TempData["error"] = "Failed to update Business";
                return(RedirectToAction("Home"));
            }

            TempData["success"] = "Business Updated";
            return(RedirectToAction("Home"));
        }
コード例 #2
0
        public async Task <IActionResult> CreateBusinessAccountWithProfileImage(RegisterEditBusinessViewModel regEditModel)
        {
            try
            {
                // Get User Id for Business
                regEditModel.Business.UserId = User.FindFirstValue(ClaimTypes.NameIdentifier);

                await _uploadImageService.RegisterBusinessUploadImage(regEditModel);

                regEditModel.Business.BusinessHourId = _context.BusinessHours.OrderByDescending(p => p.BusinessHourId).Select(p => p.BusinessHourId).FirstOrDefault();
            }
            catch
            {
                // Return Error Page
                ViewBag.error = "Failed to create Account";
                return(RedirectToAction("Index", "Home"));
            }

            await _context.BusinessHours.AddAsync(regEditModel.Business.BusinessHour);

            await _context.Businesses.AddAsync(regEditModel.Business);

            await _userManager.AddClaimAsync(await _userManager.FindByNameAsync(User.Identity.Name), new Claim(ClaimTypes.Role, "Business Owner"));

            await _signInManager.RefreshSignInAsync(await _userManager.FindByNameAsync(User.Identity.Name));

            _context.SaveChanges();
            ViewBag.success = "Business Account Created";

            return(RedirectToAction("Index", "Home"));
        }
コード例 #3
0
        public IActionResult CreateBusinessAccountWithProfileImage()
        {
            if (_repo.Business.UserHasBusiness(User.FindFirstValue(ClaimTypes.NameIdentifier)))
            {
                return(RedirectToAction("Home", "Business"));
            }

            RegisterEditBusinessViewModel regEditModel = new RegisterEditBusinessViewModel();

            return(View("CreateBusinessAccountWithProfileImage", regEditModel));
        }
コード例 #4
0
        public async Task RegisterBusinessNullUploadImage(RegisterEditBusinessViewModel model)
        {
            byte[] imgdata = await System.IO.File.ReadAllBytesAsync(@"wwwroot\images\Default\default_logo.png");

            PhotoBin logo = new PhotoBin();

            logo.Content = imgdata;
            _repo.PhotoBin.Create(logo);
            _repo.Save();
            // Return new photobin id to model
            model.Business.PhotoBinId = _repo.PhotoBin.LastPhotoAddedId();
        }
コード例 #5
0
        public async Task EditBusinessUploadImage(RegisterEditBusinessViewModel model)
        {
            if (model.UploadFile == null)
            {
                return;
            }

            using (var memoryStream = new MemoryStream())
            {
                await model.UploadFile.CopyToAsync(memoryStream);

                model.PhotoBin.Content = memoryStream.ToArray();

                model.PhotoBin.PhotoId = (int)model.Business.PhotoBinId;

                _repo.PhotoBin.Update(model.PhotoBin);
                _repo.Save();
            }
        }
コード例 #6
0
        public async Task RegisterBusinessUploadImage(RegisterEditBusinessViewModel model)
        {
            if (model.UploadFile == null)
            {
                await RegisterBusinessNullUploadImage(model);

                return;
            }

            using (var memoryStream = new MemoryStream())
            {
                await model.UploadFile.CopyToAsync(memoryStream);

                model.PhotoBin.Content = memoryStream.ToArray();

                _repo.PhotoBin.Create(model.PhotoBin);
                _repo.Save();
            }
            // Return new photobin id to model
            model.Business.PhotoBinId = _repo.PhotoBin.LastPhotoAddedId();
        }
コード例 #7
0
        /// <summary>
        /// EditBusiness GET method. Checks to make sure currently signed in user has rights to edit the business. Returns a RegisterEditBusinessViewModel to the EditBusiness view
        /// </summary>
        /// <param name="id">Business Id</param>
        /// <returns>RegisterEditBusinessViewModel containing selected business to EditBusinessView </returns>
        public async Task <IActionResult> EditBusiness(int?id)
        {
            if (id == null)
            {
                return(View("Home"));
            }

            var business     = _repo.Business.GetBusiness((int)id);
            var isAuthorized = await _authorizationService.AuthorizeAsync(User, business, new UserIdMatchRequirement());

            if (!isAuthorized.Succeeded)
            {
                return(Forbid());
            }

            RegisterEditBusinessViewModel model = new RegisterEditBusinessViewModel(business);

            model.Business.BusinessHour = _repo.BusinessHour.GetBusinessHour(model.Business.BusinessHourId);
            model.Business.BusinessLogo = _repo.PhotoBin.GetPhoto(model.Business.PhotoBinId);

            return(View(model));
        }