public static UserDatasetDTO WriteDTO(UserDataset dataset) { return(new UserDatasetDTO() { Id = dataset.Id.ToString(), Description = dataset.Description, LastModified = dataset.LastModified, Name = dataset.Name, OwnerId = dataset.OwnerId, ProjectId = dataset.ProjectId, Type = dataset.Type, SubjectCount = dataset.SubjectCount, SampleCount = dataset.SampleCount, FileStatus = dataset.FileStatus, Filters = dataset.Filters.Select(f => new DataFilterDTO() { }).ToList(), //Fields = dataset.Fields.Select(f => new DataFieldDTO() //{ // Entity = f.Entity, // EntityId = f.EntityId, // Property = f.Property, // PropertyId = f.PropertyId, // DataType = f.DataType, // IsFiltered = f.IsFiltered, // FieldName = f.FieldName //}).ToList() }); }
private UserDataset CreateOrFindAssayPanelDataset(AssayPanelQuery assayPanelQuery, Guid combinedQueryId, string userId, int projectId) { var assayPanelDataset = _userDatasetRepository.FindSingle( d => d.ProjectId == projectId && d.QueryId == combinedQueryId && d.Type == "ASSAY" && d.OwnerId == userId); //TODO:should add AssayId??? if (assayPanelDataset != null) { return(assayPanelDataset); } assayPanelDataset = new UserDataset { Id = Guid.NewGuid(), OwnerId = userId, ProjectId = projectId, Type = "ASSAY", Name = assayPanelQuery.AssayName + " Data Matrix", QueryId = combinedQueryId, FileStatus = 0 }; var exportData = _queryService.GetQueryResult(combinedQueryId); assayPanelDataset.SubjectCount = exportData.Subjects.Count; assayPanelDataset.SampleCount = exportData.Samples.Count; _userDatasetRepository.Insert(assayPanelDataset); _dataContext.Save(); return(assayPanelDataset); }
private UserDataset CreateOrFindAssaySampleDataset(AssayPanelQuery assayPanelQuery, Guid combinedQueryId, string userId, int projectId) { var assaySampleDataset = _userDatasetRepository.FindSingle( d => d.ProjectId == projectId && d.QueryId == combinedQueryId && d.Type == "BIOSAMPLES" && d.OwnerId == userId); //TODO:should add AssayId??? if (assaySampleDataset != null) { return(assaySampleDataset); } // This is for the subject to sample mapping assaySampleDataset = new UserDataset { Id = Guid.NewGuid(), OwnerId = userId, ProjectId = projectId, Type = "BIOSAMPLES", Name = assayPanelQuery.AssayName + " Samples", QueryId = combinedQueryId, FileStatus = 0 }; //CREATE DATAFIELDS // 1. ADD SubjectId Field assaySampleDataset.Fields.Add(CreateSubjectIdField()); // 2.ADD sample Id Field assaySampleDataset.Fields.Add(CreateSampleIdField()); // 3. ADD Study Id assaySampleDataset.Fields.Add(CreateStudyIdField()); // 4. ADD Sample characteristics assaySampleDataset.Fields.AddRange(assayPanelQuery.SampleQueries.Select(qObj => new DatasetField() { QueryObjectType = nameof(SampleCharacteristic), QueryObject = qObj, ColumnHeader = qObj.QueryObjectName })); var exportData = _queryService.GetQueryResult(combinedQueryId); assaySampleDataset.SubjectCount = exportData.Subjects.Count; assaySampleDataset.SampleCount = exportData.Samples.Count; _userDatasetRepository.Insert(assaySampleDataset); _dataContext.Save(); return(assaySampleDataset); }
public void UpdateUserDataset(UserDataset dataset, string userId) { //check that the owner of this dataset is the caller //var dataset = ReadDTO(dto); var datasetToUpdate = _userDatasetRepository.FindSingle(d => d.Id == dataset.Id); //datasetToUpdate = ReadDTO(dto, datasetToUpdate); datasetToUpdate.IsSaved = true; datasetToUpdate.LastModified = DateTime.Today.ToString("f"); datasetToUpdate.Description = dataset.Description; datasetToUpdate.Name = dataset.Name; _userDatasetRepository.Update(datasetToUpdate); }
public IActionResult UpdateUserDataset(Guid datasetId, [FromBody] UserDataset dataset) { try { if (!User.Identity.IsAuthenticated) { return(null); } var userId = User.FindFirst(ClaimTypes.UserData).Value; _userDataService.UpdateUserDataset(dataset, userId); return(new AcceptedResult()); } catch (Exception e) { return(new BadRequestObjectResult(e.Message)); } }
private UserDataset ReadDTO(UserDatasetDTO dto, UserDataset copyInto = null) { UserDataset ds; ds = copyInto ?? new UserDataset(); ds.Name = dto.Name; ds.Description = dto.Description; ds.Tags = dto.Tags; //ds.OwnerId = dto.OwnerId; //ds.ProjectId = dto.ProjectId; ds.Type = dto.Type; ds.LastModified = DateTime.Now.ToString("d");// ToShortDateString(); ds.Filters = new List <DataFilter>(); //ds.Fields = new List<DataField>(); foreach (var filterDto in dto.Filters) { if (filterDto.IsNumeric) { var filter = new DataFilterRange(); filter.DataField = getDataField(filterDto.Field); filter.Lowerbound = filterDto.From; filter.Upperbound = filterDto.To; ds.Filters.Add(filter); } else { var filter = new DataFilterExact(); filter.DataField = getDataField(filterDto.Field); filter.Values = filterDto.FilterValues; ds.Filters.Add(filter); } } foreach (var fieldDto in dto.Fields) { // ds.Fields.Add(getDataField(fieldDto)); } return(ds); }
public SecurityToken CreateToken(UserDataset user) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.UserId.ToString()), new Claim(JwtRegisteredClaimNames.Email, user.Email), new Claim(ClaimTypes.Role, "user"), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), }; var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_appSettings.JwtSecret)); var jwtDescriptor = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature), Audience = _appSettings.Audience, Issuer = _appSettings.Issuer, Expires = DateTime.Now.AddDays(1), }; var toke = new JwtSecurityTokenHandler().CreateToken(jwtDescriptor); Console.WriteLine(toke); return(toke); }
private UserDataset CreateOrFindSubjectClinicalDataset(CombinedQuery query, string userId) { var phenoDataset = _userDatasetRepository.FindSingle( d => d.ProjectId == query.ProjectId && d.QueryId == query.Id && d.Type == "PHENO" && d.OwnerId == userId); if (phenoDataset != null) { return(phenoDataset); } phenoDataset = new UserDataset { Id = Guid.NewGuid(), OwnerId = userId, ProjectId = query.ProjectId, Type = "PHENO", Name = "Subjects", QueryId = query.Id, FileStatus = 0, }; //ADD SUBJECTID & STUDYID DATAFIELD phenoDataset.Fields.Add(CreateSubjectIdField()); phenoDataset.Fields.Add(CreateStudyIdField()); //ADD DESIGN ELEMENT FIELDS (STUDY, VISIT, ARM...etc) phenoDataset.Fields.AddRange(query.DesignElements.Select(qObj => new DatasetField() { QueryObject = qObj, QueryObjectType = qObj.QueryFor, ColumnHeader = qObj.QueryObjectName })); //ADD SUBJECT CHARACTERISTICS (AGE, RACE, SEX ...etc) phenoDataset.Fields.AddRange(query.SubjectCharacteristics.Select(qObj => new DatasetField() { QueryObject = qObj, QueryObjectType = nameof(SubjectCharacteristic), ColumnHeader = qObj.QueryObjectName//.ObservationName })); //ADD CLINICAL OBSERVATIONS foreach (var co in query.ClinicalObservations) { phenoDataset.Fields.Add(new DatasetField() { QueryObject = co, QueryObjectType = nameof(SdtmRow), ColumnHeader = co.ObservationName }); if (co.HasLongitudinalData) { phenoDataset.Fields.Add(new DatasetField() { QueryObject = new Query() { QueryFor = nameof(Visit), QueryFrom = nameof(SdtmRow), QuerySelectProperty = "Name" }, QueryObjectType = nameof(Visit), ColumnHeader = "visit" }); } if (co.HasTPT) { phenoDataset.Fields.Add(new DatasetField() { QueryObject = new Query() { QueryFor = nameof(SdtmRow.CollectionStudyTimePoint), QueryFrom = nameof(SdtmRow), QuerySelectProperty = "Name" }, QueryObjectType = nameof(RelativeTimePoint), ColumnHeader = "timepoint" }); } } //phenoDataset.Fields.AddRange(query.ClinicalObservations.Select(qObj => new DatasetField() //{ // QueryObject = qObj, // QueryObjectType = nameof(SdtmRow), // ColumnHeader = qObj.ObservationName //})); //ADD GROUPED CLINICAL OBSERVATIONS phenoDataset.Fields.AddRange(query.GroupedObservations.Select(gObs => new DatasetField() { QueryObject = gObs, QueryObjectType = nameof(SdtmRow), ColumnHeader = gObs.ObservationName })); var exportData = _queryService.GetQueryResult(query.Id); phenoDataset.SubjectCount = exportData.Subjects.Count; _userDatasetRepository.Insert(phenoDataset); _dataContext.Save(); return(phenoDataset); }