Пример #1
0
        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());
        }
Пример #2
0
        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))));
            }
        }
Пример #3
0
        public IActionResult Delete(int id)
        {
            var header = new PgHeader()
            {
                Id = id
            };

            db.PgHeaders.Remove(header);
            db.SaveChanges();
            return(Ok());
        }
Пример #4
0
 public IActionResult CheckExistHeader([FromBody] PgHeader header)
 {
     return(checkExistHeader(header));
 }