Exemplo n.º 1
0
        public async Task <ActionResult> UpdateSupportMaterial(SupportMaterial supportMaterial)
        {
            try
            {
                await Task.Run(() => { Context.Update(supportMaterial); });

                await Context.SaveChangesAsync();

                return(new OkResult());
            }
            catch (Exception e)
            {
                return(new BadRequestResult());
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> InsertSupportMaterial(SupportMaterial supportMaterial)
        {
            try
            {
                await Context.AddAsync(supportMaterial);

                await Context.SaveChangesAsync();

                return(new OkResult());
            }
            catch (Exception _)
            {
                return(new BadRequestResult());
            }
        }
Exemplo n.º 3
0
        private List <SupportMaterial> ReaderToList(SQLiteDataReader sqliteDataReader)
        {
            List <SupportMaterial> supportMaterials = new List <SupportMaterial>();

            while (sqliteDataReader.Read())
            {
                SupportMaterial supportMaterial = new SupportMaterial();

                supportMaterial.id   = dataReader["SUPPORT_MAT_ID"].ToString();
                supportMaterial.name = dataReader["SUPPORT_MAT_NAME"].ToString();


                supportMaterials.Add(supportMaterial);
            }
            return(supportMaterials);
        }
Exemplo n.º 4
0
        public async Task <bool> AddMaterial()
        {
            var path = @"/home/zututukulipa/Desktop/barcode.txt";
            var file = File.Open(path, FileMode.Open);
            var data = new byte[file.Length];

            file.Read(data, 0, (int)file.Length);
            file.Close();
            SupportMaterial sm = new SupportMaterial
            {
                BinaryData      = data,
                MaterialName    = "TEST FILE",
                MaterialCreated = DateTime.Now,
                SubjectId       = 59,
                PageCount       = 1
            };

            return(await _service.AddMaterial(sm));
        }
Exemplo n.º 5
0
            public async Task <Result <bool> > Handle(Contract request, CancellationToken cancellationToken)
            {
                if (request.UserRole == "Secretary")
                {
                    return(Result.Fail <bool>("Acesso Negado"));
                }

                var mId    = ObjectId.Parse(request.ModuleId);
                var module = await(await _db
                                   .Database
                                   .GetCollection <Module>("Modules")
                                   .FindAsync(x => x.Id == mId, cancellationToken: cancellationToken))
                             .FirstOrDefaultAsync(cancellationToken: cancellationToken);

                if (module == null)
                {
                    return(Result.Fail <bool>("Módulo não Encontrado"));
                }

                if (request.UserRole == "Student")
                {
                    var userId = ObjectId.Parse(request.UserId);

                    if (!Module.IsInstructor(module, userId).Data)
                    {
                        return(Result.Fail <bool>("Acesso Negado"));
                    }
                }

                if (request.DeleteNonExistent)
                {
                    var existingIds = from o in request.SupportMaterials
                                      where !string.IsNullOrEmpty(o.Id)
                                      select ObjectId.Parse(o.Id);

                    // deixando apenas os subjects que vieram na coleção
                    var include = from c in module.SupportMaterials
                                  where existingIds.Contains(c.Id)
                                  select c;
                    module.SupportMaterials = include.ToList();
                }
                //Criando os assuntos
                foreach (var requestObj in request.SupportMaterials)
                {
                    SupportMaterial newObject = null;
                    if (string.IsNullOrEmpty(requestObj.Id))
                    {
                        var result = SupportMaterial.Create(
                            requestObj.Title,
                            requestObj.Description,
                            requestObj.DownloadLink,
                            (SupportMaterialTypeEnum)requestObj.Type
                            );

                        if (result.IsFailure)
                        {
                            return(Result.Fail <bool>(result.Error));
                        }

                        newObject           = result.Data;
                        newObject.UpdatedAt = DateTimeOffset.UtcNow;
                        module.SupportMaterials.Add(newObject);
                    }
                    else
                    {
                        newObject = module.SupportMaterials.FirstOrDefault(x => x.Id == ObjectId.Parse(requestObj.Id));
                        if (newObject == null)
                        {
                            return(Result.Fail <bool>($"Material de suporte não encontrado ({requestObj.Id} - {requestObj.Title})"));
                        }

                        newObject.Title        = requestObj.Title;
                        newObject.Description  = requestObj.Description;
                        newObject.DownloadLink = requestObj.DownloadLink;
                    }
                }

                await _db.ModuleCollection.ReplaceOneAsync(t =>
                                                           t.Id == module.Id, module,
                                                           cancellationToken : cancellationToken
                                                           );

                return(Result.Ok(true));
            }
Exemplo n.º 6
0
            public async Task <Result> Handle(Contract request, CancellationToken cancellationToken)
            {
                if (request.UserRole == "Secretary")
                {
                    return(Result.Fail("Acesso Negado"));
                }

                var userId = ObjectId.Parse(request.UserId);
                var modId  = ObjectId.Parse(request.ModuleId);

                var module = await _db.ModuleDraftCollection.AsQueryable()
                             .Where(x => (
                                        x.DeletedAt == null || x.DeletedAt == DateTimeOffset.MinValue
                                        ) && !x.DraftPublished && (
                                        x.Id == modId || x.ModuleId == modId
                                        )
                                    )
                             .FirstOrDefaultAsync(cancellationToken: cancellationToken);

                if (module == null)
                {
                    var originalModule = await GetModule(request.ModuleId);

                    if (originalModule == null)
                    {
                        return(Result.Fail("Módulo não existe"));
                    }

                    module = await CreateModuleDraft(
                        request, originalModule, cancellationToken
                        );
                }

                var oldValues = JsonConvert.SerializeObject(new List <ModuleDraft>
                {
                    module
                });

                if (request.DeleteNonExistent)
                {
                    var existingIds = from o in request.SupportMaterials
                                      where !string.IsNullOrEmpty(o.Id)
                                      select ObjectId.Parse(o.Id);

                    var include = from c in module.SupportMaterials
                                  where existingIds.Contains(c.Id)
                                  select c;

                    module.SupportMaterials = include.ToList();
                }

                foreach (var requestObj in request.SupportMaterials)
                {
                    SupportMaterial newObject = null;
                    if (string.IsNullOrEmpty(requestObj.Id))
                    {
                        var result = Create(
                            requestObj.Title,
                            requestObj.Description,
                            requestObj.DownloadLink,
                            (SupportMaterialTypeEnum)requestObj.Type
                            );

                        if (result.IsFailure)
                        {
                            return(Result.Fail(result.Error));
                        }

                        newObject           = result.Data;
                        newObject.UpdatedAt = DateTimeOffset.UtcNow;
                        module.SupportMaterials.Add(newObject);
                    }
                    else
                    {
                        newObject = module.SupportMaterials.FirstOrDefault(x => x.Id == ObjectId.Parse(requestObj.Id));
                        if (newObject == null)
                        {
                            return(Result.Fail($"Material de suporte não encontrado"));
                        }

                        newObject.Title        = requestObj.Title;
                        newObject.Description  = requestObj.Description;
                        newObject.DownloadLink = requestObj.DownloadLink;
                    }
                }

                await _db.ModuleDraftCollection.ReplaceOneAsync(t =>
                                                                t.Id == module.Id, module,
                                                                cancellationToken : cancellationToken
                                                                );

                var newDraftList = new List <ModuleDraft>
                {
                    module
                };

                var changeLog = AuditLog.Create(userId, module.Id, module.GetType().ToString(),
                                                JsonConvert.SerializeObject(newDraftList), EntityAction.Update, oldValues);

                await _db.AuditLogCollection.InsertOneAsync(changeLog);

                return(Result.Ok());
            }
Exemplo n.º 7
0
        public async Task <bool> AddMaterial(SupportMaterial material)
        {
            var responseMessage = await _http.PostAsJsonAsync("api/supportMaterial/add", material);

            return(responseMessage.IsSuccessStatusCode);
        }