コード例 #1
0
ファイル: HomeController.cs プロジェクト: Karabaev/TestTask
        public async Task <IActionResult> CreatePersonAsync([FromBody] CreatePersonViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { error = "На форме есть некорректные данные" }));
            }

            Organization organization = this.dataManager.FindOrganizationByName(model.OrganizationName);

            if (organization == null)
            {
                organization = new Organization {
                    Name = model.OrganizationName
                };
                await this.dataManager.AddOrganizationAsync(organization);
            }

            Position position = this.dataManager.FindPositionByName(model.PositionName);

            if (position == null)
            {
                position = new Position {
                    Name = model.PositionName
                };
                await this.dataManager.AddPositionAsync(position);
            }

            Person person = model.GetDomain(organization.Id, position.Id);
            bool   result = await this.dataManager.AddPersonAsync(person);

            if (result)
            {
                return(Ok(new { redirectUrl = Url.Action("Index") }));
            }
            else
            {
                return(Json(new { error = "Внутренняя ошибка сервера. Не удалось сохранить запись." }));;
            }
        }