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