Esempio n. 1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            //удаление старого фото и загрузка нового на сервер
            if (Photo != null)
            {
                if (!_fileRepository.CheckMIMEType(Photo)) //проверка типа файла
                {
                    TempData["MIMETypeError"] = "Разрешены только файлы с типом .jpg .jpeg .png .gif";
                    return(Page());
                }

                if (Materials.ImagePath != null)
                {
                    _fileRepository.DeleteFile(Materials.ImagePath, "Materials");           //удаляем старый файл
                }
                Materials.ImagePath = await _fileRepository.UploadFile(Photo, "Materials"); //загрузка файл на сервер и запись имени файла
            }

            try
            {
                await _db.Update(Materials); //запрос к БД на изменение записи
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!_db.MaterialsExists(Materials.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            TempData["SuccessMessage"] = $"Запись \"{Materials.Name}\" успешно обновлена";
            return(RedirectToPage("./Index"));
        }