public async Task <IActionResult> AddFile(IFormFile file, int moduleId, string InternalName) { // We handle only one file at a time, so this foreach should not be needed. // Maybe just take the first item in the list. // Maybe change the .cshtml so that it does not return a list. var rootPath = hostingEnvironment.ContentRootPath; var fileName = Path.GetFileName(file.FileName); using (var stream = new FileStream( $"{rootPath}//wwwroot//Documents//{fileName}", FileMode.Create) ) { await file.CopyToAsync(stream); } var docRec = new ModuleDocument() { FileName = fileName, CourseModuleId = moduleId, InternalName = InternalName }; _context.ModuleDocument.Add(docRec); _context.SaveChanges(); return(RedirectToAction("Details", new { id = moduleId })); }
/// <summary> /// Constructor for the module /// </summary> public ModuleEditor(IModule module) { try { this.InitializeComponent(); this._module = module; this._module.Attach(this); this._documentHandler = new ModuleDocument(this._module, this, this.textEditor1, this.textEditor2); this.Prepare(); this._editedCheckTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(3) }; this._editedCheckTimer.Tick += this.IsEditedTick; this._editedCheckTimer.Start(); this.ModuleViewBorderContainer.Child = new ModulePane(this._module, this._documentHandler); this.Tag = this._module.GetModuleName() + ".pm"; Framework.ShutDown += this.Terminate; } catch (Exception error) { Framework.EventBus.Publish(error); } }
public ActionResult DeleteConfirmed(CourseDocument document) { ModuleDocument moduleDocument = db.ModuleDocuments.Where(r => r.DocumentId == document.DocumentId).SingleOrDefault(); db.ModuleDocuments.Remove(moduleDocument); db.SaveChanges(); return(RedirectToAction("Index", "Documents")); }
public ActionResult Edit([Bind(Include = "DocumentId,ModuleId,AssignDate,OwnerId")] ModuleDocument moduleDocument) { if (ModelState.IsValid) { db.Entry(moduleDocument).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.DocumentId = new SelectList(db.Documents, "Id", "DocumentName", moduleDocument.DocumentId); ViewBag.ModuleId = new SelectList(db.Modules, "Id", "ModuleName", moduleDocument.ModuleId); return(View(moduleDocument)); }
// GET: ModuleDocuments/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ModuleDocument moduleDocument = db.ModuleDocuments.Find(id); if (moduleDocument == null) { return(HttpNotFound()); } return(View(moduleDocument)); }
// GET: ModuleDocuments/Delete/5 public ActionResult Delete(int?DocumentId) { if (DocumentId == null) { return(RedirectToAction("Index", "Documents")); } ModuleDocument moduleDocument = db.ModuleDocuments.Where(r => r.DocumentId == DocumentId).SingleOrDefault(); if (moduleDocument == null) { return(RedirectToAction("Index", "Documents")); } return(View(moduleDocument)); }
// GET: ModuleDocuments/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ModuleDocument moduleDocument = db.ModuleDocuments.Find(id); if (moduleDocument == null) { return(HttpNotFound()); } ViewBag.DocumentId = new SelectList(db.Documents, "Id", "DocumentName", moduleDocument.DocumentId); ViewBag.ModuleId = new SelectList(db.Modules, "Id", "ModuleName", moduleDocument.ModuleId); return(View(moduleDocument)); }
public ActionResult Create([Bind(Include = "DocumentId,ModuleId")] ModuleDocument moduleDocument) { moduleDocument.OwnerId = User.Identity.GetUserId(); moduleDocument.AssignDate = DateTime.Now; if (ModelState.IsValid) { db.ModuleDocuments.Add(moduleDocument); db.SaveChanges(); return(RedirectToAction("Index", "Documents")); } ViewBag.DocumentId = new SelectList(db.Documents, "Id", "DocumentName", moduleDocument.DocumentId); ViewBag.ModuleId = new SelectList(db.Modules, "Id", "ModuleName", moduleDocument.ModuleId); return(View(moduleDocument)); }
/// <summary> /// </summary> public ModulePane(IModule module, ModuleDocument documentHandler) { try { this.InitializeComponent(); this._module = module; this._document = documentHandler; this._module.Attach(this); this.Prepare(); this.image1.Source = Framework.Images.GetImage("lgp", "128x128", 64).Source; } catch (Exception error) { Framework.EventBus.Publish(error); } }
public ActionResult Create(CreateDocumentViewModel vm) { if (ModelState.IsValid) { if (vm.file is null) { ViewData["parentUrl"] = $"/Module/Details/{vm.Id}"; ModelState.AddModelError("file", "File can't be empty!"); ViewData["Title"] = "Add Module Document"; return(View("_CreateDocumentPartial", vm)); } var newDocument = new ModuleDocument() { Description = vm.Description, Name = vm.file.FileName, UploadTime = DateTime.Now, ModuleId = vm.EnitityId, }; if (newDocument.Description is null) { newDocument.Description = "none"; } newDocument.UserId = _userManager.GetUserId(User); using (var memoryStream = new MemoryStream()) { vm.file.CopyTo(memoryStream); newDocument.DocumentData = memoryStream.ToArray(); } _context.ModuleDocument.Add(newDocument); _context.SaveChanges(); TempData["AlertMsg"] = "Document added"; //Can't get it to accept nameof(Details) for some reason return(RedirectToAction("Details", nameof(Module), new { id = vm.EnitityId })); } else { ViewData["parentUrl"] = $"/Course/Details/{vm.Id}"; ViewData["Title"] = "Add Module Document"; return(View("_CreateDocumentPartial", vm)); } }
// GET: ModuleDocuments/Create public ActionResult Create(int DocumentId) { var alreadyExist = db.ModuleDocuments.Where(r => r.DocumentId == DocumentId); var document = db.Documents.Where(r => r.Id == DocumentId).SingleOrDefault(); if (alreadyExist.Count() > 0) { return(RedirectToAction("Index", "Documents")); } var viewModel = new ModuleDocument() { DocumentId = DocumentId, AssignedDocument = document }; //ViewBag.DocumentId = new SelectList(db.Documents, "Id", "DocumentName"); ViewBag.ModuleId = new SelectList(db.Modules, "Id", "ModuleName"); return(View(viewModel)); }
public ActionResult Create(DocumentViewModel document, HttpPostedFileBase upload) { var tempEntity = new DocumentEntity() { Id = document.assignedEntity.Id, returnTarget = document.assignedEntity.returnTarget, EntityName = document.assignedEntity.EntityName, returnId = document.assignedEntity.returnId, EntityType = document.assignedEntity.EntityType, DocumentTypeName = document.assignedEntity.DocumentTypeName }; document.assignedEntity = tempEntity; var addDocument = new Document() { //Id = document.Id, DocumentTypeId = document.DocumentTypeId, DocumentContent = document.DocumentContent, DocumentName = document.DocumentName, DueDate = document.DueDate, UploadDate = DateTime.Now }; if (upload != null && upload.ContentLength > 0) { try { if (ModelState.IsValid) { if (upload != null && upload.ContentLength > 0) { addDocument.DocumentName = System.IO.Path.GetFileName(upload.FileName); addDocument.FileType = upload.ContentType; using (var reader = new System.IO.BinaryReader(upload.InputStream)) { addDocument.Content = reader.ReadBytes(upload.ContentLength); } } db.Documents.Add(addDocument); db.SaveChanges(); var user = User.Identity.GetUserId(); if (document.assignedEntity.EntityType == "Course") { var courseDocument = new CourseDocument() { DocumentId = addDocument.Id, AssignDate = DateTime.Now, OwnerId = User.Identity.GetUserId(), CourseId = document.assignedEntity.Id }; db.CourseDocuments.Add(courseDocument); db.SaveChanges(); } else if (document.assignedEntity.EntityType == "Module") { var moduleDocument = new ModuleDocument() { DocumentId = addDocument.Id, AssignDate = DateTime.Now, OwnerId = User.Identity.GetUserId(), ModuleId = document.assignedEntity.Id }; db.ModuleDocuments.Add(moduleDocument); db.SaveChanges(); } else if (document.assignedEntity.EntityType == "Activity") { var activityDocument = new ActivityDocument() { DocumentId = addDocument.Id, AssignDate = DateTime.Now, OwnerId = User.Identity.GetUserId(), ActivityId = document.assignedEntity.Id }; db.ActivityDocuments.Add(activityDocument); db.SaveChanges(); } return(RedirectToAction("Details", "Courses", new { id = document.assignedEntity.returnId, redirect = document.assignedEntity.returnTarget })); } } catch { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } } ViewBag.DocumentTypeId = new SelectList(db.DocumentTypes, "Id", "DocumentTypeName", document.DocumentTypeId); return(View(document)); }
public async Task <Domain.Document.Document> GenerateRegistrationPDFDocument(INodeServices nodeServices, int maId, string statusCode, int userId, string Comment = null) { var letterHeading = await _letterHeadingService.GetAsync(1); var ma = await _maService.GetMA(maId); //check if agent-supplier relationship changes //TODO agent-supplier change var agentSupplier = await _agentSupplierService.GetAsync(ags => ags.SupplierID == ma.MA.SupplierID && ags.AgentLevel.AgentLevelCode == "F*G" && ags.IsActive); if (agentSupplier.AgentID != ma.MA.AgentID) { ma.MA.AgentID = agentSupplier.AgentID; ma.MA.Agent = agentSupplier.Agent; } string htmlFilePath = constructHtmlPath(ma.Product.ProductType.SubmoduleType.SubmoduleTypeCode); Letter letter = new Letter(); ModuleDocument moduleDocument = new ModuleDocument(); string moduleCode = null; RegistrationPDFData data = null; switch (statusCode) { case "RQST": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MACKL" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); var requestedStatus = await _maStatusService.GetMALogStatus(ma.MA.ID, "RQST"); data.applicationDate = requestedStatus?.CreatedDate.ToString("dd-MM-yyyy"); htmlFilePath = $"{htmlFilePath}acknowledgement.html"; break; case "FIR": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MAFIR" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); var review = await _maService.GetMAReview(ma.MA.ID, "TLD", "FIR"); var noOfFIR = (await _maStatusService.GetMALogStatuses(ma.MA.ID, "FIR")).Count(); data = new RegistrationPDFData(ma, letterHeading, letter, noOfFIR); data.review = review?.Comment; data.firGeneratedDate = review?.CreatedDate.ToString("dd-MM-yyyy"); data.firDueDate = review?.FIRDueDate?.ToString("dd-MM-yyyy"); htmlFilePath = $"{htmlFilePath}firRequest.html"; break; case "RTA": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MADFL" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); data.deficiency = (await _checklistService.GetPrescreeningDeficiency(ma.MA.ID)).ToList().Select(d => new Checklist(d)).ToList(); htmlFilePath = $"{htmlFilePath}deficiency.html"; break; case "APR": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MACRT" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); var approvedStatus = await _maStatusService.GetMALogStatus(ma.MA.ID, "APR"); data = new RegistrationPDFData(ma, letterHeading, letter); data.approvalDate = approvedStatus?.CreatedDate.ToString("dd-MM-yyyy"); data.certificateValidDate = ((DateTime)ma.MA.ExpiryDate).ToString("dd-MM-yyyy"); htmlFilePath = $"{htmlFilePath}registration.html"; break; case "NOTAPR": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "VANL" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); approvedStatus = await _maStatusService.GetMALogStatus(ma.MA.ID, "APR"); data = new RegistrationPDFData(ma, letterHeading, letter); data.approvalDate = approvedStatus?.CreatedDate.ToString("dd-MM-yyyy"); data.certificateValidDate = approvedStatus?.CreatedDate.ToString("dd-MM-yyyy"); data.variationChanges = ((await _maService.GetVariationChangesAsync(ma.MA.ID))?.Select(v => new VariationDifference(v))).ToList(); data.review = Comment; htmlFilePath = $"{htmlFilePath}notificationApprove.html"; break; case "REJ": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MAREJ" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); review = await _maService.GetMAReview(ma.MA.ID, "TLD", "SFR"); data = new RegistrationPDFData(ma, letterHeading, letter); data.review = review?.Comment; htmlFilePath = $"{htmlFilePath}rejection.html"; break; case "LABR": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "PMNL" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); data.applicationType = moduleDocument.Submodule.Module.Name; htmlFilePath = $"{htmlFilePath}sampleRequest.html"; break; case "CONL": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "CONL" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); data.applicationType = moduleDocument.Submodule.Module.Name; htmlFilePath = $"{htmlFilePath}notificationRequest.html"; break; case "FNT": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "FNT" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); data.applicationType = moduleDocument.Submodule.Module.Name; approvedStatus = await _maStatusService.GetMALogStatus(ma.MA.ID, "APR"); data.approvalDate = approvedStatus?.CreatedDate.ToString("dd-MM-yyyy"); data.certificateValidDate = ((DateTime)ma.MA.ExpiryDate).ToString("dd-MM-yyyy"); htmlFilePath = $"{htmlFilePath}foodNotificationType.html"; break; case "MDNT": letter = (await _letterService.GetAsync(x => x.ModuleDocument.DocumentType.DocumentTypeCode == "MDNT" && x.ModuleDocument.Submodule.SubmoduleCode == ma.MA.MAType.MATypeCode)); moduleDocument = await _moduleDocumentService.GetAsync(letter.ModuleDocumentID); data = new RegistrationPDFData(ma, letterHeading, letter); data.applicationType = moduleDocument.Submodule.Module.Name; approvedStatus = await _maStatusService.GetMALogStatus(ma.MA.ID, "APR"); data.approvalDate = approvedStatus?.CreatedDate.ToString("dd-MM-yyyy"); data.certificateValidDate = ((DateTime)ma.MA.ExpiryDate).ToString("dd-MM-yyyy"); htmlFilePath = $"{htmlFilePath}mdNotificationType.html"; break; default: break; } moduleCode = moduleDocument?.Submodule?.Module?.ModuleCode; return(moduleCode == null? null : await Generate(nodeServices, data, letter, htmlFilePath, moduleCode, userId)); }