public async Task <IActionResult> Create([FromBody] ResearchInitForm model) { if (model == null) { return(BadRequest(new ApiError("400", "Null model", $"{typeof(ResearchInitForm)} cannot be null"))); } try { model.CreatorId = Int32.Parse(User?.Claims?.FirstOrDefault(x => x.Type == ClaimTypes.PrimarySid)?.Value); var result = await _db.CreateResearchAsync(model); if (model.ExecutorId.HasValue) { result = await _db.AssignResearchToAsync(result.Id, model.ExecutorId.Value); } return(Ok()); } catch (Exception ex) { return(BadRequest(new ApiError(ex))); } }
public async Task <IActionResult> Edit([FromRoute] int id, [FromBody] ResearchInitForm model) { if (model == null) { return(BadRequest(new ApiError("400", "Null model", $"{typeof(ResearchInitForm)} cannot be null"))); } if ((await _db.GetResearchAsync(id)) == null) { return(NotFound(new ApiError("404", "Not Found", $"Исследование #{id} не найдено"))); } try { var result = await _db.UpdateResearchAsync(id, model); if (model.ExecutorId.HasValue) { result = await _db.AssignResearchToAsync(id, model.ExecutorId.Value); } return(Ok(result)); } catch (Exception ex) { return(BadRequest(new ApiError(ex))); } }
public async Task <Research> UpdateResearchAsync(int id, ResearchInitForm model) { var update = await GetResearchAsync(id, false); update.Name = model.Name; update.Description = model.Description; update.AlgorithmId = model.AlgorithmId; update.DataSetId = model.DataSetId; _db.Researches.Update(update); await _db.SaveChangesAsync(); return(update); }
public async Task <Research> CreateResearchAsync(ResearchInitForm model) { var create = new Research { Name = model.Name, Description = model.Description, AlgorithmId = model.AlgorithmId, DataSetId = model.DataSetId, CreatorId = model.CreatorId, CreatedAt = DateTime.Now, Status = ResearchStatus.OPENED, }; var result = _db.Researches.Add(create).Entity; await _db.SaveChangesAsync(); return(result); }