Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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));
     }
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        /**
         * 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);
        }
Exemplo n.º 5
0
        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());
        }