public async Task <IActionResult> Create([FromBody] LaboratoryWorkDTO model) { var laboratoryWork = new LaboratoryWork { TemplateLaboratoryWorkId = model.TemplateLaboratoryWorkId == -1 ? null : model.TemplateLaboratoryWorkId, ThemeId = model.ThemeId, Name = model.Name, Description = model.Description, Evaluation = model.Evaluation, DisciplineCipher = model.DisciplineCipher, UserId = model.UserId, Constraints = model.Constraints }; // тема ЛР будет перезаписывать тему шаблона /*if (laboratoryWork.TemplateLaboratoryWorkId != null && * laboratoryWork.ThemeId != _db.TemplateLaboratoryWorks.FirstOrDefault(x => x.TemplateLaboratoryWorkId == laboratoryWork.TemplateLaboratoryWorkId).ThemeId) * { * return BadRequest("Темы лабораторный работы не принадлежит теме шаблона"); * }*/ try { await _db.LaboratoryWorks.AddAsync(laboratoryWork); await _db.SaveChangesAsync(); } catch (DbUpdateException e) { await Response.WriteAsync(e.InnerException.Message); return(BadRequest(e.InnerException.Message)); } return(Ok(model)); }
public async Task <IActionResult> PutLaboratoryWork(Guid id, LaboratoryWorkDTO laboratoryWorkDto) { if (id != laboratoryWorkDto.Id) { return(BadRequest()); } var find = await _context.LaboratoryWorks.FindAsync(id); _context.Entry(find).State = EntityState.Modified; find.Name = laboratoryWorkDto.Name; find.DisciplineId = laboratoryWorkDto.DisciplineId; find.OwnerId = laboratoryWorkDto.OwnerId; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) { if (!LaboratoryWorkExists(id)) { return(NotFound()); } else { _logger.LogError(ex.Message); return(StatusCode(500)); } } return(NoContent()); }
public async Task <IActionResult> Update([FromBody] LaboratoryWorkDTO model, [FromHeader] int laboratoryWorkId) { if (model.TemplateLaboratoryWorkId == -1) { model.TemplateLaboratoryWorkId = null; // надо что-то сделать с этим } var laboratoryWorkUpdate = await _db.LaboratoryWorks.FirstOrDefaultAsync(laboratoryWork => laboratoryWork.LaboratoryWorkId == laboratoryWorkId); var curUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); if (laboratoryWorkUpdate != null) { // тема ЛР будет перезаписывать тему шаблона /*if (model.TemplateLaboratoryWorkId != null && * model.ThemeId != _db.TemplateLaboratoryWorks.FirstOrDefault(x => x.TemplateLaboratoryWorkId == model.TemplateLaboratoryWorkId).ThemeId) * { * return BadRequest("Theme of laboratory work not equal theme TemplateLaboratoryWork"); * }*/ try { if (curUserId != laboratoryWorkUpdate.UserId) { throw new Exception("No access to edit this lab"); } laboratoryWorkUpdate.TemplateLaboratoryWorkId = model.TemplateLaboratoryWorkId; laboratoryWorkUpdate.ThemeId = model.ThemeId; laboratoryWorkUpdate.Name = model.Name; laboratoryWorkUpdate.DisciplineCipher = model.DisciplineCipher; laboratoryWorkUpdate.Description = model.Description; laboratoryWorkUpdate.Evaluation = model.Evaluation; laboratoryWorkUpdate.UserId = model.UserId; laboratoryWorkUpdate.Constraints = model.Constraints; _db.LaboratoryWorks.Update(laboratoryWorkUpdate); await _db.SaveChangesAsync(); } catch (Exception e) { await Response.WriteAsync(e.Message); } return(Ok("successfully")); } return(NotFound()); }