public async Task <ServiceResult <EditMedicalRecordModel> > EditAsync(EditMedicalRecordModel model) { var entity = await _db.MedicalRecords.FirstOrDefaultAsync(x => x.Id == model.Id); if (entity == null) { return(ServiceResult <EditMedicalRecordModel> .Fail("MedicalRecord not found")); } entity.AnimalId = model.AnimalId; entity.MedicalRecordUrl = model.MedicalRecordUrl; try { await _db.SaveChangesAsync(); return(ServiceResult <EditMedicalRecordModel> .Success(new EditMedicalRecordModel { Id = entity.Id, AnimalId = entity.AnimalId, MedicalRecordUrl = entity.MedicalRecordUrl })); } catch (Exception ex) { //log error return(ServiceResult <EditMedicalRecordModel> .Fail("Internal server error")); } }
public async Task <IActionResult> Edit([Bind("AnimalId,MedicalRecordUrl")] EditMedicalRecordModel model, IFormFile file) { var animals = await _animalService.GetAsync(new AnimalSearchCriteria()); ViewBag.Animals = animals.Select(x => new SelectListItem() { Text = x.Name, Value = x.Id.ToString(), Selected = x.Id == model.AnimalId }); if (!ModelState.IsValid) { return(View(model)); } if (file != null) { var fileUrl = Path.Combine("/Files" + "/MedicalRecords/" + model.AnimalId + "/" + model.Id + Path.GetExtension(file.FileName)); var ok = FileHelper.SaveFileFromStream(file.OpenReadStream(), Path.GetFullPath(_environment.WebRootPath + fileUrl)); if (ok) { model.MedicalRecordUrl = fileUrl; await _medicalRecordsService.EditAsync(model); } } var result = await _medicalRecordsService.EditAsync(model); if (!result.Succeeded) { ModelState.AddModelError("Error", result.Error); return(View(model)); } return(RedirectToAction(nameof(Index))); }
public async Task <ServiceResult <EditMedicalRecordModel> > AddAsync(EditMedicalRecordModel model) { var entity = new MedicalRecord { MedicalRecordUrl = model.MedicalRecordUrl, AnimalId = model.AnimalId }; _db.Add(entity); try { await _db.SaveChangesAsync(); return(ServiceResult <EditMedicalRecordModel> .Success(new EditMedicalRecordModel { Id = entity.Id, MedicalRecordUrl = model.MedicalRecordUrl, AnimalId = model.AnimalId })); } catch (Exception ex) { //log error return(ServiceResult <EditMedicalRecordModel> .Fail("Internal server error")); } }
public async Task <IActionResult> Create(int?animalId, [Bind("AnimalId")] EditMedicalRecordModel model, IFormFile file) { IList <AnimalModel> animals = new List <AnimalModel>(); if (animalId.HasValue) { var animal = await _animalService.FirstAsync(animalId.Value); if (animal != null) { animals.Add(animal); } } if (!animals.Any()) { animals = await _animalService.GetAsync(new AnimalSearchCriteria()); } ViewBag.Animals = animals.Select(x => new SelectListItem() { Text = x.Name, Value = x.Id.ToString() }); if (!ModelState.IsValid) { return(View(model)); } var result = await _medicalRecordsService.AddAsync(model); if (!result.Succeeded) { ModelState.AddModelError("Error", result.Error); return(View(model)); } if (file != null) { var fileUrl = Path.Combine("/Files" + "/MedicalRecords/" + result.Data.AnimalId + "/" + result.Data.Id + Path.GetExtension(file.FileName)); var ok = FileHelper.SaveFileFromStream(file.OpenReadStream(), Path.GetFullPath(_environment.WebRootPath + fileUrl)); if (ok) { model = result.Data; model.MedicalRecordUrl = fileUrl; await _medicalRecordsService.EditAsync(model); } } return(RedirectToAction(nameof(Index), new { animalId = animalId })); }