public async Task <IActionResult> Upload(AppoinmentViewModel model)
        {
            if (ModelState.IsValid)
            {
                bool exists = _db.AppoinmentLetters.Any(p => p.Username == model.Username);
                if (exists)
                {
                    ViewBag.Username = new SelectList(_userManager.Users, "UserName", "UserName", model.Username);
                    ModelState.AddModelError(string.Empty, "Appoinment letter already exists for this user.");
                    return(View(model));
                }

                string uniqueFiles = UploadedFile(model);

                AppoinmentLetter appoinment = new AppoinmentLetter
                {
                    CreatedBy   = User.Identity.Name,
                    CreatedDate = DateTime.Now,
                    Username    = model.Username,

                    URL = uniqueFiles
                };

                _db.AppoinmentLetters.Add(appoinment);

                await _db.SaveChangesAsync();

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

            ViewBag.Username = new SelectList(_userManager.Users, "UserName", "UserName", model.Username);

            return(View(model));
        }
        public async Task CreateAppoinment(AppoinmentViewModel appoinmentViewModel)
        {
            await _appoinmentRepo.Create(new Core.Entities.Appointment
            {
                Capacity    = appoinmentViewModel.Capacity,
                Date        = appoinmentViewModel.Date,
                IsConfirmed = null
            });

            await _unitOfWork.Save();
        }
        private string UploadedFile(AppoinmentViewModel model)
        {
            string uniqueFileName = null;

            if (model.AppoinmentLetterFile != null)
            {
                string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "appoinmentletter");

                if (!System.IO.Directory.Exists(uploadsFolder))
                {
                    System.IO.Directory.CreateDirectory(uploadsFolder);
                }

                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.AppoinmentLetterFile.FileName;

                string filePath = Path.Combine(uploadsFolder, uniqueFileName);

                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.AppoinmentLetterFile.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
 public ActionResult Create(AppoinmentViewModel viewModel)
 {
     _serviceRepo.CreateAppoinment(viewModel);
     return(View(new AppoinmentViewModel()));
 }