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")); }
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")); }
public IActionResult CreateBusinessAccountWithProfileImage() { if (_repo.Business.UserHasBusiness(User.FindFirstValue(ClaimTypes.NameIdentifier))) { return(RedirectToAction("Home", "Business")); } RegisterEditBusinessViewModel regEditModel = new RegisterEditBusinessViewModel(); return(View("CreateBusinessAccountWithProfileImage", regEditModel)); }
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(); }
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(); } }
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(); }
/// <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)); }