コード例 #1
0
        // GET: Doctors/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var doctor = db.Doctors
                         .Include(d => d.Image)
                         .SingleOrDefault(d => d.ID == id);

            if (doctor == null)
            {
                return(HttpNotFound());
            }
            var doctorName = doctor.FirstName + " " + doctor.LastName;
            DoctorTranslator    editDoctorTranslator = new DoctorTranslator();
            DoctorEditViewModel viewModel            = new DoctorEditViewModel();

            viewModel.DoctorsName = doctorName;
            viewModel.Doctor      = editDoctorTranslator.ToDoctorViewModel(doctor);


            File image = db.Files.Single(i => i.ID == doctor.ImageID);

            viewModel.Image = editDoctorTranslator.ToImageViewModel(image, doctor);

            return(View(viewModel));
        }
コード例 #2
0
        public ActionResult Index(string sort, string searchByName, string searchByPosition, int?page)
        {
            int pageSize   = 3;
            int pageNumber = (page ?? 1);

            DoctorListViewModel viewModel = new DoctorListViewModel();

            IQueryable <Doctor> doctorsQuery = db.Doctors;

            if (!string.IsNullOrEmpty(searchByName))
            {
                doctorsQuery = doctorsQuery
                               .Where(d => d.FirstName.Contains(searchByName) || d.LastName.Contains(searchByName));
            }
            if (!string.IsNullOrEmpty(searchByPosition))
            {
                doctorsQuery = doctorsQuery.Where(d => d.Position.Contains(searchByPosition));
            }

            switch (sort)
            {
            case "name_desc":
                doctorsQuery = doctorsQuery.OrderByDescending(d => d.LastName).ThenByDescending(d => d.FirstName);
                break;

            case "position":
                doctorsQuery = doctorsQuery.OrderBy(d => d.Position);
                break;

            case "position_desc":
                doctorsQuery = doctorsQuery.OrderByDescending(d => d.Position);
                break;

            default:
                doctorsQuery = doctorsQuery.OrderBy(d => d.LastName).ThenBy(d => d.FirstName);
                break;
            }
            var doctorTranslator = new DoctorTranslator();

            viewModel.Doctors = doctorsQuery
                                .Select(doctorTranslator.ToViewModel)
                                .ToPagedList(pageNumber, pageSize);

            viewModel.CurrentSort    = sort;
            viewModel.SortByName     = string.IsNullOrEmpty(sort) ? "name_desc" : "";
            viewModel.SortByPosition = sort == "position" ? "position_desc" : "position";

            viewModel.NameFilter     = searchByName;
            viewModel.PositionFilter = searchByPosition;

            return(View(viewModel));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        //METHOD TO USE FOR UPLOAD IMAGE WITH FILE SYSTEM
        //private void EditImageUpload(int? id, Doctor doctorToUpdate, Image image, DoctorEditViewModel viewModel)
        //{
        //    ImageManipulation imageManipulationHelper = new ImageManipulation();
        //    var validImageTypes = new string[]
        //    {
        //         "image/gif",
        //         "image/jpeg",
        //         "image/png"
        //    };
        //    if (viewModel.Image.ImgUpload != null && viewModel.Image.ImgUpload.ContentLength > 0)
        //    {
        //        var imgFileName = Guid.NewGuid().ToString() + imageManipulationHelper.GetExtension(viewModel.Image.ImgUpload.ContentType);

        //        if (image.ImgUrl != "~/Img/doc-img-default.png") {
        //            string fileToDelete = Server.MapPath(image.ImgUrl);
        //            if (System.IO.File.Exists(fileToDelete))
        //            {
        //                System.IO.File.Delete(fileToDelete);
        //            }
        //        }

        //        if (!validImageTypes.Contains(viewModel.Image.ImgUpload.ContentType))
        //        {
        //            ModelState.AddModelError("ImgUpload", "Please, choose either GIF, JPG, or PNG type of files.");
        //        }

        //        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);

        //        ImageResizer.ResizeSettings resizeSettings = new ImageResizer.ResizeSettings
        //        {
        //            Width = 200,
        //            Height = 200
        //        };
        //        ImageResizer.ImageBuilder.Current.Build(imagePath, imagePath, resizeSettings);

        //        viewModel.Image.ImgUrl = imageUrl;
        //        doctorToUpdate.Image = image;
        //        image.ImgUrl = viewModel.Image.ImgUrl;
        //    }
        //}

        // GET: Doctors/Delete/5
        public ActionResult Delete(int?id)
        {
            DoctorDeleteViewModel viewModel = new DoctorDeleteViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Doctor           doctor          = db.Doctors.Single(d => d.ID == id);
            File             image           = db.Files.Single(i => i.ID == doctor.ImageID);
            DoctorTranslator imageTranslator = new DoctorTranslator();

            viewModel.Image = imageTranslator.ToImageViewModel(image);

            viewModel.DoctorName = doctor.FirstName + " " + doctor.LastName;
            if (doctor == null)
            {
                return(HttpNotFound());
            }
            viewModel.Alert = "Are you sure you want to delete informations for doctor " + viewModel.DoctorName + " ?";
            return(View(viewModel));
        }
コード例 #5
0
        // GET: Doctors/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Doctor doctor = db.Doctors.SingleOrDefault(d => d.ID == id);

            if (doctor == null)
            {
                return(HttpNotFound());
            }
            DoctorEditViewModel viewModel        = new DoctorEditViewModel();
            DoctorTranslator    doctorTranslator = new DoctorTranslator();

            viewModel.Doctor = doctorTranslator.ToDoctorViewModel(doctor);

            File image = db.Files.Single(i => i.ID == doctor.ImageID);

            viewModel.Image = doctorTranslator.ToImageViewModel(image, doctor);

            return(View(viewModel));
        }