예제 #1
0
        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));
        }
예제 #2
0
        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());
        }
예제 #3
0
        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());
        }