public IActionResult Edit([Bind] VacancyResponse vacancyData)
        {
            if (!ModelState.IsValid)
            {
                var vacancy = VacancyService.Get(vacancyData.Id);
                vacancyData.Organization = vacancy.Organization.ToResponse();
                return(View(vacancyData));
            }

            var storedModel   = VacancyService.Get(vacancyData.Id);
            var updateRequest = storedModel.ToUpdateCommandBy(vacancyData);

            var updated = VacancyService.Update(vacancyData.Id, updateRequest);

            var expectedUpdated = vacancyData.ToModel();
            var success         = updated.IsIdenticTo(expectedUpdated);

            var model = new IndexPageStatusModel
            {
                StatusId  = $"{nameof(Edit)}:{success}",
                VacancyId = vacancyData.Id
            };

            return(RedirectToAction(nameof(Index), model));
        }
 protected void AssertContentAs200(VacancyResponse expected, VacancyResponse actual)
 {
     AssertGuid(actual.Id);
     Assert.NotNull(actual.Title);
     Assert.NotNull(actual.Organization);
     Assert.NotNull(actual.Description);
     Assert.NotNull(actual.EmploymentType);
 }
 protected void AssertContentAs200(VacancyResponse expected, VacancyResponse actual)
 {
     AssertGuid(actual.Id);
     Assert.Equal(expected.Title, actual.Title);
     Assert.Equal(expected.Description, actual.Description);
     Assert.Equal(expected.Salary, actual.Salary);
     Assert.Equal(expected.ContactPhone, actual.ContactPhone);
     AssertPerson(expected.ContactPerson, actual.ContactPerson);
 }
示例#4
0
        public static VacancyUpdateModel ToUpdateCommandBy(
            this VacancyModel origin,
            VacancyResponse updated)
        {
            var updateModel = new VacancyUpdateModel();

            updateModel.Title          = GenerateUpdate(origin.Title, updated.Title);
            updateModel.Description    = GenerateUpdate(origin.Description, updated.Description);
            updateModel.Salary         = GenerateUpdate(origin.Salary, updated.Salary);
            updateModel.ContactPerson  = GenerateUpdate(origin.ContactPerson, updated.ContactPerson);
            updateModel.ContactPhone   = GenerateUpdate(origin.ContactPhone, updated.ContactPhone);
            updateModel.EmploymentType = GenerateUpdate(
                origin.EmploymentType?.ToList()?.ToStringName(),
                updated.EmploymentType?.ToList());

            return(updateModel);
        }