Exemplo n.º 1
0
        public MaterialViewModel PrepareMaterialViewModel(BLL.Models.Material material)
        {
            ConfigureMaterialBreadcrumbs(material);

            var isFavorite = _userService.IsMaterialFavorite(material, User.FindFirstValue(ClaimTypes.NameIdentifier));

            return(new MaterialViewModel
            {
                MaterialId = material.MaterialId,
                CreatorUsername = material.Creator.Username,
                ApproverUsername = material.Approver?.Username,
                UpdaterUsername = material.Updater?.Username,
                Name = material.Name,
                Description = material.Description,
                UploadDate = material.UploadDate,
                ModificationDate = material.ModificationDate,
                State = material.State.Name,
                Files = material.Files.Select(f => new FileViewModel
                {
                    FileName = f.FileName,
                    RelativePath = f.RelativePath,
                    ContentType = f.ContentType
                }).ToList(),
                IsFavorite = isFavorite,
                IsAllowedToEditOrDelete = material.IsUserAllowedToEditOrDelete(User.FindFirstValue(ClaimTypes.NameIdentifier)) || !User.IsInRole(Roles.MemberRole)
            });
        }
Exemplo n.º 2
0
        private void ConfigureDeleteSuggestionBreadcrumbs(BLL.Models.Material material)
        {
            ConfigureMaterialsBreadcrumbs(material.Lesson);

            ViewBag.Breadcrumbs.Add(
                new Breadcrumb
            {
                Controller = "Materials",
                Action     = "CreateDeleteSuggestion",
                Title      = "Tworzenie sugestii usunięcia",
                Params     = new Dictionary <string, string>
                {
                    { "materialId", material.MaterialId.ToString() }
                }
            }
                );
        }
Exemplo n.º 3
0
        private void ConfigureDeleteMaterialBreadcrumbs(BLL.Models.Material material)
        {
            ConfigureMaterialsBreadcrumbs(material.Lesson);

            ViewBag.Breadcrumbs.Add(
                new Breadcrumb
            {
                Controller = "Materials",
                Action     = "Delete",
                Title      = "Usuwanie materiału",
                Params     = new Dictionary <string, string>
                {
                    { "materialId", material.MaterialId.ToString() }
                }
            }
                );
        }
Exemplo n.º 4
0
        [HttpPost] // AJAX request
        public IActionResult Add(AddMaterialViewModel vm)
        {
            var identityUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);

            var lesson = _traversalService.GetLesson(vm.LessonId);

            if (lesson == null)
            {
                return(BadRequest(new[] { "Przedmiot o podanym Id nie istnieje." }));
            }

            var creator = _userService.FindByIdentityUserId(identityUserId);
            var state   = _service.GetState(MaterialStateEnum.PENDING);

            var materialToAdd = new BLL.Models.Material(vm.Name, vm.Description, lesson, creator, state);

            _service.AddMaterial(materialToAdd);

            var guid = Guid.NewGuid();

            try
            {
                _filesManagement.SaveFilesToFileSystem(vm.FormFiles, materialToAdd.MaterialId, guid);
            }
            catch (Exception)
            {
                return(BadRequest(new[] { "Somethig went wrong while saving files to the file system. Try again." }));
            }

            // TODO splitted into two roundtrips to name folders with materialId (can be changed in the future)
            var filesToAdd = _filesManagement.ExtractFilesFromForm(vm.FormFiles, materialToAdd.MaterialId, guid);

            materialToAdd.AddFiles(filesToAdd);
            _service.UpdateMaterial(materialToAdd);

            return(Json(materialToAdd.MaterialId));
        }
Exemplo n.º 5
0
 private bool IsUserAllowedToEditOrDelete(string identityUserId, BLL.Models.Material materialToEdit)
 {
     return((identityUserId != materialToEdit.Creator.IdentityUserId) && User.IsInRole(Roles.MemberRole));
 }