private IActionResult checkExistHeader(PgHeader header) { if (header == null) { return(BadRequest()); } bool exists; if (header.GroupId > 0) { exists = db.PgHeaders.Any(x => x.Id != header.Id && x.GroupId == header.GroupId ); } else { exists = db.PgHeaders.Any(x => x.Id != header.Id && x.SpecialityId == header.SpecialityId && x.EntraceYear == header.EntraceYear && x.EduFormId == header.EduFormId && x.SpecializationId == header.SpecializationId ); } if (exists) { return(BadRequest("Документ с текущей специальностью, годом обучения, формой обучения и образовательной программой уже существует. " + "Пожалуйста вносите изменения в уже созданный документ, данный документ не будет сохранен.")); } return(Ok()); }
public IActionResult Post([FromBody] PgHeader header) { var res = checkExistHeader(header); if (res is BadRequestObjectResult) { return(res); } if (ModelState.IsValid) { var existingHeader = db.PgHeaders .Include(x => x.PgContractStuffs) .FirstOrDefault(x => x.Id == header.Id); if (existingHeader == null) { db.Add(header); } else { db.Entry(existingHeader).CurrentValues.SetValues(header); foreach (var stuff in header.PgContractStuffs) { stuff.Student = null; PgContractStuff existingStuff = null; if (stuff?.Id > 0) { existingStuff = existingHeader.PgContractStuffs .FirstOrDefault(x => x.Id == stuff.Id); } if (existingStuff == null) { existingHeader.PgContractStuffs.Add(stuff); } else { db.Entry(existingStuff).CurrentValues.SetValues(stuff); } } foreach (var stuff in existingHeader.PgContractStuffs) { if (!header.PgContractStuffs.Any(x => x.Id == stuff.Id)) { db.Remove(stuff); } } } db.SaveChanges(); return(Ok(header)); } else { return(BadRequest(ModelState.Values.Select(a => a.Errors.Select(z => z.ErrorMessage)))); } }
public IActionResult Delete(int id) { var header = new PgHeader() { Id = id }; db.PgHeaders.Remove(header); db.SaveChanges(); return(Ok()); }
public IActionResult CheckExistHeader([FromBody] PgHeader header) { return(checkExistHeader(header)); }