/// <summary>
        ///
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        public async Task CreateByViewModelAsync(DoctorCreateViewModel viewModel)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }

            var  doctorMap = _mapper.Map <Doctor>(viewModel);
            Guid isGuid;

            Guid.TryParse(viewModel.ExpertiseId, out isGuid);
            if (isGuid != Guid.Empty)
            {
                doctorMap.ExpertiseId = Guid.Parse(viewModel.ExpertiseId);
            }
            else
            {
                doctorMap.Expertise = new Expertise
                {
                    ExpertiseName = viewModel.ExpertiseId
                }
            };


            _doctors.Add(doctorMap);
            await _unitOfWork.SaveAllChangesAsync(auditUserId : _httpContextManager.CurrentUserId());
        }
        public ActionResult Create(DoctorCreateViewModel viewModel)
        {
            var validImageTypes = new string[]
            {
                "image/gif",
                "image/jpeg",
                "image/png"
            };

            if (ModelState.IsValid)
            {
                var image = new File
                {
                    ID          = viewModel.Image.ID,
                    ContentType = viewModel.Image.ImgUpload.ContentType
                };
                DoctorTranslator doctorDataTranslator = new DoctorTranslator();
                Doctor           doctor            = doctorDataTranslator.ToDoctorDataModel(viewModel, image);
                FileManipulation imageUploadHelper = new FileManipulation();

                if (viewModel.Image.ImgUpload != null && viewModel.Image.ImgUpload.ContentLength > 0)
                {
                    if (!validImageTypes.Contains(viewModel.Image.ImgUpload.ContentType))
                    {
                        ModelState.AddModelError("ImgUpload", "Please, choose either GIF, JPG, or PNG type of files.");
                    }
                    //upload with file-system, make sure that folder Uploads in DoctorsOffice exist
                    //var imgFileName = Guid.NewGuid().ToString() + GetExtension(viewModel.Image.ImgUpload.ContentType);
                    //var uploadDir = "~/Uploads";
                    //var imagePath = System.IO.Path.Combine(Server.MapPath(uploadDir), imgFileName);
                    //var imageUrl = System.IO.Path.Combine(uploadDir, imgFileName);
                    //viewModel.Image.ImgUpload.SaveAs(imagePath);

                    imageUploadHelper.FileUpload(image, viewModel.Image.ImgUpload);
                    //imageUploadHelper.ResizeImage(viewModel.Image.ImgUpload);-don't work yet!!!
                    //db.Files.Add(image);
                }
                else
                {
                    imageUploadHelper.DefaultImage(doctor);
                }

                db.Doctors.Add(doctor);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
        public Doctor ToDoctorDataModel(DoctorCreateViewModel viewModel, File image)
        {
            var result = new Doctor
            {
                FirstName   = viewModel.Doctor.FirstName,
                LastName    = viewModel.Doctor.LastName,
                Address     = viewModel.Doctor.Address,
                PhoneNumber = viewModel.Doctor.PhoneNumber,
                Email       = viewModel.Doctor.Email,
                Position    = viewModel.Doctor.Position,
                ImageID     = image.ID,
                Image       = image
            };

            return(result);
        }
        private string ProcessUploadedFile(DoctorCreateViewModel model)
        {
            string uniqueFileName = null;

            if (model.Photo != null)
            {
                string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "Images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Photo.CopyTo(fileStream);
                }
            }

            return(uniqueFileName);
        }
Exemple #5
0
        public virtual async Task <ActionResult> Create(DoctorCreateViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(View(MVC.Error.Views.BadRequest));
            }

            if (ModelState.IsValid == false)
            {
                return(RedirectToAction(MVC.Doctor.Create()));
            }

            await _doctorService.CreateByViewModelAsync(viewModel);

            this.AddToastMessage("افزودن پزشک با موفقیت انجام شد", "", ToastType.Success);
            return(RedirectToAction(MVC.Doctor.List()));
        }
        public IActionResult Create(DoctorCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = ProcessUploadedFile(model);
                Doctor newDoctor      = new Doctor
                {
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    Specialty   = model.Specialty,
                    Email       = model.Email,
                    Description = model.Description,
                    PhotoPath   = uniqueFileName
                };

                _doctorRepository.Add(newDoctor);

                return(RedirectToAction("details", new { id = newDoctor.DoctorID }));
            }
            return(View());
        }
        // GET: Doctors/Create
        public ActionResult Create()
        {
            DoctorCreateViewModel viewModel = new DoctorCreateViewModel();

            return(View(viewModel));
        }