public async Task <IActionResult> Create()
        {
            var companies = await _companyService.FindAllAsync();

            var viewModel = new PurveyorFormViewModel {
                Companies = companies
            };

            return(View(viewModel));
        }
        public async Task <IActionResult> Edit(int id, Purveyor purveyor)
        {
            DateTime timeNow = DateTime.Now;
            DateTime ageNow  = purveyor.BirthDate;

            if (timeNow.Year - ageNow.Year < 19 && purveyor.Uf == "PR" && ageNow.Month <= timeNow.Month && ageNow.Day < timeNow.Day)
            {
                return(RedirectToAction(nameof(Error), new { message = "You need have age 18 or more, in State PR." }));
            }

            if (!ModelState.IsValid)
            {
                return(View(purveyor));
            }

            if (!ModelState.IsValid)
            {
                var companies = await _companyService.FindAllAsync();

                var viewModel = new PurveyorFormViewModel {
                    Companies = companies
                };
                return(View(viewModel));
            }

            if (!ModelState.IsValid)
            {
                return(View(purveyor));
            }

            if (id != purveyor.Id)
            {
                return(RedirectToAction(nameof(Error), new { message = "Id mismatch" }));
            }
            try
            {
                await _purveyorService.UpdateAsync(purveyor);

                return(RedirectToAction(nameof(Index)));
            }
            catch (ApplicationException e)
            {
                return(RedirectToAction(nameof(Error), new { message = e.Message }));
            }
        }
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Error), new { message = "Id not provided" }));
            }

            var obj = await _purveyorService.FindByIdAsync(id.Value);

            if (obj == null)
            {
                return(RedirectToAction(nameof(Error), new { message = "Id not found" }));
            }

            List <Company> companies = await _companyService.FindAllAsync();

            PurveyorFormViewModel viewModal = new PurveyorFormViewModel {
                Purveyor = obj, Companies = companies
            };

            return(View(viewModal));
        }