コード例 #1
0
        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"));
            }
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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"));
            }
        }
コード例 #4
0
        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 }));
        }