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)));
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }