/// <summary> /// тяестовой метод Получаем маасив пдв2 с данными клиента /// </summary> /// <param name="id"> id клиента.</param> /// <returns></returns> public ActionResult PrintPDF2(int id) { workingWord = new WorkingWord(); // создание ссылок дирикторий(папок для документов). Корневая папка var originalDirectoryWordDoc = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents\\")); //Создается папка дл хранения дока var pathString3 = Path.Combine(originalDirectoryWordDoc.ToString(), "DocsClient\\" + id.ToString() + "\\Document\\"); // путь к самому документу string TestSaveDoc = $@"{pathString3}Result_Client_{id}.pdf"; //Создание новых документов ворд CreateDocWordOfPdf(id); string tempSTR = workingWord.ConverdToBase64String(TestSaveDoc); //убираем лишние ковычки из строки string tg = tempSTR.Trim("\"\"".ToCharArray()); //TempData["R"] = tg; //TempData["SM"] = "Подготовка документа к печати!!"; // return RedirectToAction("GetAllClients"); return(Content(tg)); }
/// <summary> /// Создание документа Ворд и PDF при создании(редактровании) заявки /// </summary> /// <param name="id">ID нужного клиента</param> public void CreateDocWordOfPdf(int id) { workingWord = new WorkingWord(); // сохранение файлов на диске // создание ссылок дирикторий(папок для документов). Корневая папка var originalDirectory = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents\\")); ////Создается папка к кажому новому клиенту(по id). var pathString1 = Path.Combine(originalDirectory.ToString(), "DocsClient"); var pathString2 = Path.Combine(originalDirectory.ToString(), "DocsClient\\" + id.ToString()); //Создается папка дл хранения уменьшеной копии var pathString3 = Path.Combine(originalDirectory.ToString(), "DocsClient\\" + id.ToString() + "\\Document"); //Проверяем наличие директории (если нет, создаем) if (!Directory.Exists(pathString1)) { Directory.CreateDirectory(pathString1); } if (!Directory.Exists(pathString2)) { Directory.CreateDirectory(pathString2); } if (!Directory.Exists(pathString3)) { Directory.CreateDirectory(pathString3); } //Массив с готовыми данными о заявке var tempRezul = CreatingDataArray(id); //Запись(создание) в документ ворд workingWord.GetBoxCreateWordAndPdf(tempRezul, pathString3, id); }
public ActionResult Index() { workingWord = new WorkingWord(); //Получить из БД список сущноситей ClientVM для ввывода их в представлении List <ClientVM> clientList; //Инициализируем список и заполняем данными из Бд using (DBContext db = new DBContext()) { // Выборку приводим в арей(массив), сортируем, и создаем на экземпляр обьекта ClientVM, приводим к листу и сохраняем в лист clientList = db.clients.ToArray().OrderBy(x => x.Id).Select(x => new ClientVM(x)).ToList(); } // workingWord.GetBoxCreateWordAndPdf(); return(View(clientList)); }
//****НУЖНО подумать как исправить /// <summary> /// Отправить клиенту отчет о заявке в формате Word /// </summary> /// <returns></returns> public FileResult DownloadResultDocument(int id) { workingWord = new WorkingWord(); // сохранение файлов на диске // создание ссылок дирикторий(папок для документов). Корневая папка var originalDirectory = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents\\")); ////Создается папка к кажому новому клиенту(по id). var pathString1 = Path.Combine(originalDirectory.ToString(), "DocsClient"); var pathString2 = Path.Combine(originalDirectory.ToString(), "DocsClient\\" + id.ToString()); //Создается папка дл хранения уменьшеной копии var pathString3 = Path.Combine(originalDirectory.ToString(), "DocsClient\\" + id.ToString() + "\\Document"); //Проверяем наличие директории (если нет, создаем) if (!Directory.Exists(pathString1)) { Directory.CreateDirectory(pathString1); } if (!Directory.Exists(pathString2)) { Directory.CreateDirectory(pathString2); } if (!Directory.Exists(pathString3)) { Directory.CreateDirectory(pathString3); } // Тип файла - content-type string file_type = "application/docx"; // Имя файла - необязательно string TestSaveDoc = $@"{pathString3}\\Result_Client_{id}.docx"; //Массив с данными var tempRezul = CreatingDataArray(id); //Запись в документ ворд workingWord.GetBoxCreateWordAndPdf(tempRezul, pathString3, id); //Отправляем готовый документ клиенту на скачку return(File(TestSaveDoc, file_type, $"Сustomer_card№{id}.docx")); }
public async System.Threading.Tasks.Task <ActionResult> GetAllClients(int?page) { //лист для хранения клиентов List <ClientVM> listOfClientVM; workingWord = new WorkingWord(); // сохранение файлов на диске workMail = new WorkMail(); // Метод для отправки почты // создание ссылок дирикторий(папок для картинки). Корневая папка var originalDirectory = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents")); //установить номер старницы var pageNumber = page ?? 1; // Если в перемнной page Будет значение null. То по умолчанию устновится страница 1 using (DBContext db = new DBContext()) { //заполнить лист данными //listOfClientVM = db.clients.ToArray() // .Where(x => catId == null || catId == 0 || x.Id); listOfClientVM = db.clients.ToArray().OrderBy(x => x.Id).Select(x => new ClientVM(x)).ToList(); //сортировка (по id или имени???) } //устанавливаем постраничную навигацию. Номер страницы и количесто клиентов для отображения на одной странице var onePageOfClients = listOfClientVM.ToPagedList(pageNumber, 5); // через ViewBag отправляем в представления ViewBag.onePageOfClients = onePageOfClients; // Получаем имя директории string t = originalDirectory.ToString(); // Возращаем представление с данными return(View(listOfClientVM)); }
public ActionResult EditClient(ClientVM model, HttpPostedFileBase file) { //Получаем ID заявки будем использоовать для работы с изображением int id = model.Id; //Список изображений //Получаем все изображения из галереи model.GalleryImages = Directory.EnumerateFiles(Server.MapPath("~/Images/Uploads/Clients/" + id + "/Thumds")) .Select(fn => Path.GetFileName(fn)); //проверяем модель на валидность if (!ModelState.IsValid) { return(View(model)); } #region поиск имени на уникальность //using(DBContext db = new DBContext()) //{ // //ищем В выборке все id кроме текущего. Проверяем на совпадения по фамилии // if (db.clients.Where(x => x.Id != id).Any(x=> x.lastName == model.LastName)) // { // //ModelState.AddModelError("","Данный клиент уже подовал заявку") // return View(model); // //можно в дальнейшем реализовать историю заявок конкретного клиента // } //} #endregion //обновляем продукт using (DBContext db = new DBContext()) { //Загружаем старые(необновленные) данные заявки в БД Client dto = db.clients.Find(id); dto.firstName = model.FirstName; dto.lastName = model.LastName; dto.middleName = model.MiddleName; dto.birthDate = model.BirthDate; dto.dateRequest = DateTime.Now.ToString(); dto.email = model.Email; dto.image = model.Image; db.SaveChanges(); } //устанавливаем сообщение в темп дату //Сообщение пользователю. с помощью темп дата TempData["SM"] = "Заявка успешно отредактирована!"; //загружаем обработанно изображение //ЗАГРУЗКА ИЗАБРАЖЕНИЯ #region Загрузка изображения на сервер // проверяем загружен ли файл if (file != null && file.ContentLength > 0) { //получить разширение файла string ext = file.ContentType.ToLower(); // проверяем полученное разшерение файла if (ext != "image/jpg" && ext != "image/jpeg" && ext != "image/pjpeg" && ext != "image/gif" && ext != "image/png" && ext != "image/x-png") { using (DBContext db = new DBContext()) { //model. ModelState.AddModelError("", "Не коректный формат !! Изображение не было загружено!"); //Сообщение пользователю. с помощью темп дата TempData["SM"] = "Заявка успешно оформлена! Но без изображения!!!"; return(View(model)); } } //устанавливаем пути загрузки // создание ссылок дирикторий(папок для картинки). Корневая папка var originalDirectory = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Images\\Uploads")); var originalDirectory2 = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents\\DocsClient")); ////путь к папке и кажому новому клиенту(по id). var pathString1 = Path.Combine(originalDirectory.ToString(), "Clients\\" + id.ToString()); //Путь к папка для хранения уменьшеной копии var pathString2 = Path.Combine(originalDirectory.ToString(), "Clients\\" + id.ToString() + "\\Thumds"); // папки хранения документов Ворд var pathString3 = Path.Combine(originalDirectory2.ToString(), id.ToString()); // папки хранения документов PDF var pathString4 = Path.Combine(originalDirectory2.ToString(), id.ToString()); //удаляем существуешие старые файлы и директории. DirectoryInfo dir1 = new DirectoryInfo(pathString1); DirectoryInfo dir2 = new DirectoryInfo(pathString2); DirectoryInfo dir3 = new DirectoryInfo(pathString3); DirectoryInfo dir4 = new DirectoryInfo(pathString4); //Удаляем подпапки foreach (var file2 in dir1.GetFiles()) { file2.Delete(); } foreach (var file3 in dir2.GetFiles()) { file3.Delete(); } foreach (var file4 in dir3.GetFiles()) { file4.Delete(); } foreach (var file5 in dir4.GetFiles()) { file5.Delete(); } ////сохраняем изображение string imageName = file.FileName; int idDocWord = id; //сохраняемм оригинал и превью картинки //Назначить пути к оригинальному и уменьшеному изабражению var path = string.Format($"{pathString1}\\{imageName}"); var path2 = string.Format($"{pathString2}\\{imageName}"); // уменьшенное изображене var path3 = string.Format($"{pathString2}\\{idDocWord}"); // уменьшенное изображене //сохранить оригинальное изображение file.SaveAs(path); //создаем и сохраняем уменьшенную копиию //обьект WebImage позволяет работать с изображениями WebImage img = new WebImage(file.InputStream); img.Resize(200, 200); //Ширина, высота сохраненного изображения. img.Save(path2); // Куда сохраняем уменьшенное изображение img.Save(path3); // Куда сохраняем уменьшенное изображение для документа using (DBContext db = new DBContext()) { string tempPath = $"{path3}\\{imageName}"; Client dto = db.clients.Find(id); dto.image = imageName; dto.imagePathInDoc = tempPath; // сохраняем путь к файлу db.SaveChanges(); //save DB } } #endregion workingWord = new WorkingWord(); // создание ссылок дирикторий(папок для документов). Корневая папка var originalDirectoryWordDoc = new DirectoryInfo(string.Format($"{Server.MapPath(@"\")}Archive_Documents\\")); //Создается папка дл хранения дока var pathString6 = Path.Combine(originalDirectoryWordDoc.ToString(), "DocsClient\\" + id.ToString() + "\\Document\\"); // путь к самому документу string TestSaveDoc = $@"{pathString6}Result_Client_{id}.pdf"; //Создание отредактированых документов. CreateDocWordOfPdf(id); //Переодрeсовать пользователя return(RedirectToAction("EditClient")); }