Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("TLMMaterialId,TLMMaterialCode,TLMMaterialName,Description,RefTLMMaterialTypeId,RefGradeLevelId,RefTLMLanguageId,RefTLMSubjectId,RefTLMGroupId,RefTLMMaterialSetId,RatioNumerator,RatioDenominator,Url,FileName,Barcode")] TLMMaterial tLMMaterial)
        {
            if (id != tLMMaterial.TLMMaterialId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(tLMMaterial);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TLMMaterialExists(tLMMaterial.TLMMaterialId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                TempData["messageType"]  = "success";
                TempData["messageTitle"] = "RECORD UPDATED";
                TempData["message"]      = "Record successfully updated";

                return(RedirectToAction(nameof(Index)));
                //return RedirectToAction(nameof(Index), new { id = tLMMaterial.ParentId });
            }
            ViewData["RefGradeLevelId"]      = new SelectList(_context.GradeLevels, "RefGradeLevelId", "GradeLevel", tLMMaterial.RefGradeLevelId);
            ViewData["RefTLMGroupId"]        = new SelectList(_context.TLMGroups, "RefTLMGroupId", "TLMGroup", tLMMaterial.RefTLMGroupId);
            ViewData["RefTLMLanguageId"]     = new SelectList(_context.TLMLanguages, "RefTLMLanguageId", "TLMLanguage", tLMMaterial.RefTLMLanguageId);
            ViewData["RefTLMMaterialSetId"]  = new SelectList(_context.TLMMaterialSets, "RefTLMMaterialSetId", "TLMMaterialSet", tLMMaterial.RefTLMMaterialSetId);
            ViewData["RefTLMMaterialTypeId"] = new SelectList(_context.TLMMaterialTypes, "RefTLMMaterialTypeId", "TLMMaterialType", tLMMaterial.RefTLMMaterialTypeId);
            ViewData["RefTLMSubjectId"]      = new SelectList(_context.TLMSubjects, "RefTLMSubjectId", "TLMSubject", tLMMaterial.RefTLMSubjectId);
            //ViewData["ParentId"] = tLMMaterial.ParentId;
            return(View(tLMMaterial));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Create([Bind("TLMMaterialId,TLMMaterialCode,TLMMaterialName,Description,RefTLMMaterialTypeId,RefGradeLevelId,RefTLMLanguageId,RefTLMSubjectId,RefTLMGroupId,RefTLMMaterialSetId,RatioNumerator,RatioDenominator,Url,FileName,Barcode")] TLMMaterial tLMMaterial)
        {
            if (ModelState.IsValid)
            {
                _context.Add(tLMMaterial);
                await _context.SaveChangesAsync();

                TempData["messageType"]  = "success";
                TempData["messageTitle"] = "RECORD CREATED";
                TempData["message"]      = "New record successfully created";

                return(RedirectToAction(nameof(Index)));
                //return RedirectToAction(nameof(Index), new { id = tLMMaterial.ParentId });
            }
            ViewData["RefGradeLevelId"]      = new SelectList(_context.GradeLevels, "RefGradeLevelId", "GradeLevel", tLMMaterial.RefGradeLevelId);
            ViewData["RefTLMGroupId"]        = new SelectList(_context.TLMGroups, "RefTLMGroupId", "TLMGroup", tLMMaterial.RefTLMGroupId);
            ViewData["RefTLMLanguageId"]     = new SelectList(_context.TLMLanguages, "RefTLMLanguageId", "TLMLanguage", tLMMaterial.RefTLMLanguageId);
            ViewData["RefTLMMaterialSetId"]  = new SelectList(_context.TLMMaterialSets, "RefTLMMaterialSetId", "TLMMaterialSet", tLMMaterial.RefTLMMaterialSetId);
            ViewData["RefTLMMaterialTypeId"] = new SelectList(_context.TLMMaterialTypes, "RefTLMMaterialTypeId", "TLMMaterialType", tLMMaterial.RefTLMMaterialTypeId);
            ViewData["RefTLMSubjectId"]      = new SelectList(_context.TLMSubjects, "RefTLMSubjectId", "TLMSubject", tLMMaterial.RefTLMSubjectId);
            //ViewData["ParentId"] = tLMMaterial.ParentId;
            return(View(tLMMaterial));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Upload(IFormFile file, int?id)
        {
            if (file == null)
            {
                return(NotFound());
            }

            if (id == null)
            {
                return(NotFound());
            }

            TLMMaterial tLMMaterial = await _context.TLMMaterials.FindAsync(id);

            if (tLMMaterial == null)
            {
                return(NotFound());
            }

            long size = file.Length;

            // Get folder path URL = ~/wwwroot/uploads
            var filePath = Path.Combine(_environment.WebRootPath, "uploads");

            if (size > 0)
            {
                // Limit file uploads to 50M
                if (size > 52428800)
                {
                    TempData["messageType"]  = "error";
                    TempData["messageTitle"] = "FILE NOT UPLOADED";
                    TempData["message"]      = "File size exceeded the maximum size permitted (50MB)";
                    return(RedirectToAction("Details", "TLMDistributions", new { id }));
                }

                // Limit file types to .jpg, .jpeg, .png, .doc, and .pdf only
                if (!CheckFileType(file.FileName))
                {
                    TempData["messageType"]  = "error";
                    TempData["messageTitle"] = "FILE NOT UPLOADED";
                    TempData["message"]      = "File type not valid. Upload PDF, Documents, or Images";
                    return(RedirectToAction("Details", "TLMDistributions", new { id }));
                }

                // Current file extension
                string extension = Path.GetExtension(file.FileName);

                // Set Filename format (i.e. Document-20190815141805-{id}{.pdf})
                var fileName = "Document" + DateTime.Now.ToString("-yyyyMMddHHmmss-") + id + extension;

                // Upload file to server
                using (var stream = new FileStream(Path.Combine(filePath, fileName), FileMode.Create))
                {
                    await file.CopyToAsync(stream);
                }

                // Build host URL and /uploads/ path
                var request    = HttpContext.Request;
                var uriBuilder = new UriBuilder
                {
                    Host   = request.Host.Host,
                    Scheme = request.Scheme,
                    Path   = "uploads/" + fileName
                };

                if (request.Host.Port.HasValue)
                {
                    uriBuilder.Port = request.Host.Port.Value;
                }

                var url = uriBuilder.ToString();

                // Update database with FileName and URL
                try
                {
                    tLMMaterial.FileName = fileName;
                    tLMMaterial.Url      = url;
                    _context.Update(tLMMaterial);

                    TempData["messageType"]  = "success";
                    TempData["messageTitle"] = "RECORDS UPDATED";
                    TempData["message"]      = "Records updated successfully";
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TLMMaterialExists(tLMMaterial.TLMMaterialId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Details), new { id = tLMMaterial.TLMMaterialId }));
            }

            TempData["messageType"]  = "error";
            TempData["messageTitle"] = "FILE NOT UPLOADED";
            TempData["message"]      = "A file could not be uploaded error";

            return(RedirectToAction("Details", "TLMMaterials", new { id }));
        }