public AssayDTO AddAssay(AssayDTO assayDto) { var assay = new Assay(); //var project = _projectRepository.FindSingle(d => d.Accession // .Equals(assayDto.ProjectAcc)); assay.Name = assayDto.Name; assay.ProjectId = assayDto.ProjectId; assay.TechnologyPlatformId = assayDto.Platform; assay.TechnologyTypeId = assayDto.Technology; //assay.DesignType = getCVterm(assayDto.AssayDesignType); assay.MeasurementTypeId = assayDto.Type; if (assayDto.SamplesDataset != null) { assayDto.SamplesDataset.ProjectId = assayDto.ProjectId; } if (assayDto.FeaturesDataset != null) { assayDto.FeaturesDataset.ProjectId = assayDto.ProjectId; } if (assayDto.ObservationsDataset != null) { assayDto.ObservationsDataset.ProjectId = assayDto.ProjectId; } var BSdataset = _datasetService.CreateDataset(assayDto.SamplesDataset); if (BSdataset != null) { assay.Datasets.Add(BSdataset); } var FEdataset = _datasetService.CreateDataset(assayDto.FeaturesDataset); if (FEdataset != null) { assay.Datasets.Add(FEdataset); } var OBdataset = _datasetService.CreateDataset(assayDto.ObservationsDataset); if (OBdataset != null) { assay.Datasets.Add(OBdataset); } assay = _assayRepository.Insert(assay); if (_dataContext.Save().Equals("CREATED")) { assayDto.Id = assay.Id; return(assayDto); } return(null); }
public IActionResult UpdateAssay(int assayId, [FromBody] AssayDTO assayDTO) { try { _assayService.UpdateAssay(assayDTO, assayId); return(new AcceptedAtRouteResult("GetAssayById", new { assayId = assayDTO.Id }, assayDTO)); } catch (Exception e) { return(new BadRequestObjectResult(e.Message)); } }
public IActionResult AddAssay([FromBody] AssayDTO assayDTO) { if (!ModelState.IsValid) { return(BadRequest()); } var addedAssay = _assayService.AddAssay(assayDTO); if (addedAssay != null) { return(new CreatedAtRouteResult("GetAssayById", new { assayId = addedAssay.Id }, addedAssay)); } return(new StatusCodeResult(StatusCodes.Status409Conflict)); }
/** * Assay Methods * */ public AssayDTO GetAssay(int assayId) { var assay = _assayRepository.FindSingle( d => d.Id.Equals(assayId), new List <string>() { "Datasets.Template", "TechnologyType", "TechnologyPlatform", "MeasurementType", "DesignType" } ); var assayDTO = new AssayDTO(); assayDTO.Name = assay.Name; assayDTO.Id = assay.Id; assayDTO.ProjectId = assay.ProjectId; assayDTO.Type = assay.MeasurementType?.Id; assayDTO.Technology = assay.TechnologyType?.Id; assayDTO.Platform = assay.TechnologyPlatform?.Id; assayDTO.Design = assay.DesignType?.Id; foreach (var dst in assay.Datasets.Select(ds => _datasetService.GetActivityDatasetDTO(ds.Id))) { //TODO: convert to enums or CVterms if (dst.Class == "Assay Samples") { assayDTO.SamplesDataset = dst; } if (dst.Class == "Assay Observations") { assayDTO.ObservationsDataset = dst; } if (dst.Class == "Assay Features") { assayDTO.FeaturesDataset = dst; } } return(assayDTO); }
public string UpdateAssay(AssayDTO assayDTO, int assayId) { Assay assayToUpdate = _assayRepository.Get(assayId); assayToUpdate.Name = assayDTO.Name; assayToUpdate.TechnologyPlatformId = assayDTO.Platform; assayToUpdate.TechnologyTypeId = assayDTO.Technology; //assay.DesignType = getCVterm(assayDto.AssayDesignType); assayToUpdate.MeasurementTypeId = assayDTO.Type; assayDTO.Datasets.Clear(); assayDTO.Datasets.Add(assayDTO.FeaturesDataset); assayDTO.Datasets.Add(assayDTO.SamplesDataset); assayDTO.Datasets.Add(assayDTO.ObservationsDataset); foreach (var datasetDto in assayDTO.Datasets) { if (datasetDto == null) { continue; } datasetDto.ProjectId = assayDTO.ProjectId; if (datasetDto.IsNew) { var dataset = _datasetService.CreateDataset(datasetDto); assayToUpdate.Datasets.Add(dataset); _assayRepository.Update(assayToUpdate); } else { _datasetService.UpdateDataset(datasetDto); } } return(_dataContext.Save()); }