Esempio n. 1
0
        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 }));
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
        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"));
        }
Esempio n. 4
0
 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));
 }
Esempio n. 5
0
        // 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));
        }
Esempio n. 6
0
        // 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));
        }
Esempio n. 7
0
        // 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));
        }
Esempio n. 8
0
        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);
     }
 }
Esempio n. 10
0
        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));
            }
        }
Esempio n. 11
0
        // 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));
        }
Esempio n. 12
0
        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));
        }
Esempio n. 13
0
        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));
        }