public async Task <object> CreateStudy([FromBody] StudyData data) { var participation = user.ProtocolUsers.FirstOrDefault(x => x.Protocol.Id.Equals(data.ProtocolId)); if (participation == null) { return(Unauthorized("You don't have access to this protocol.")); } var subject = participation.Protocol.Subjects.FirstOrDefault(x => x.Id.Equals(data.SubjectId)); if (subject == null) { return(NotFound("The subject ID you provide is not found.")); } Study study = new Study { Id = Guid.NewGuid(), Filename = data.Filename, Name = data.Name, Condition = data.Condition, DateOfStudy = data.DateOfStudy, IChannel = data.IChannel, IHeadModel = data.IHeadModel, Subject = subject, LastUpdate = System.DateTime.Now, Protocol = protocol }; context.Studies.Add(study); history.HistoryEvent += $"create study {study.Id}"; await context.SaveChangesAsync(); return(new Uploadinfo { Uploadid = FileController.createStudyQueueItem(study, session, data.Md5).ToString(), Fid = study.Id.ToString() }); }
public async Task <object> createHeadModel([FromBody] HeadModelData data) { var study = protocol.Studies.FirstOrDefault(x => x.Id == data.StudyID); var obj = new HeadModel(data) { Study = study }; //set parent url obj.Parent.Url = mapUrl(protocol.Id.ToString(), study.Id.ToString(), obj.Parent.Id.ToString(), "data"); context.HeadModels.Add(obj); context.FunctionalFiles.Add(obj.Parent); history.HistoryEvent += $"create {obj.GetType().Name} {study.Id} {obj.Id}"; await context.SaveChangesAsync(); return(new Uploadinfo { Uploadid = FileController.createFunctionalFileQueueItem(obj, session, data.Md5, data.FileName).ToString(), Fid = obj.Parent.Id.ToString() }); }
public async Task <object> createChannel([FromBody] ChannelData data) { //create channel data var study = protocol.Studies.FirstOrDefault(x => x.Id == data.StudyID); var channel = new Channel(data) { Study = study }; //set parent url channel.Parent.Url = mapUrl(protocol.Id.ToString(), study.Id.ToString(), channel.Parent.Id.ToString(), "data"); //add channel and ff to database context.Channels.Add(channel); context.FunctionalFiles.Add(channel.Parent); history.HistoryEvent += $"create Channel {study.Id} {channel.Id}"; await context.SaveChangesAsync(); return(new Uploadinfo { Uploadid = FileController.createFunctionalFileQueueItem(channel, session, data.Md5, data.FileName).ToString(), Fid = channel.Parent.Id.ToString() }); }
public async Task <object> CreateSubject([FromBody] SubjectData data) { var participation = user.ProtocolUsers.FirstOrDefault(x => x.Protocol.Id.Equals(data.ProtocolId)); if (participation == null) { return(NotFound("You don't have access to this protocol.")); } Subject subject = new Subject { Id = Guid.NewGuid(), Comment = data.Comment, Filename = data.Filename, Name = data.Name, UseDefaultAnat = data.UseDefaultAnat, UseDefaultChannel = data.UseDefaultChannel, IAnatomy = data.IAnatomy, IScalp = data.IScalp, ICortex = data.ICortex, IInnerSkull = data.IInnerSkull, IOuterSkull = data.IOuterSkull, IOther = data.IOther, Protocol = participation.Protocol, LastUpdate = System.DateTime.Now }; context.Subjects.Add(subject); history.HistoryEvent += $"create Subject {subject.Id}"; await context.SaveChangesAsync(); return(new Uploadinfo { Uploadid = FileController.createSubjectQueueItem(subject, session, data.Md5).ToString(), Fid = subject.Id.ToString() }); }