public async Task <IActionResult> AddAnApplier(ApplierViewModel applier) { var apply = new Applier { City = applier.City, Email = applier.Email, Experiences = applier.Experiences, Name = applier.Name, Phone = applier.Phone, Position = applier.Position, BirthDate = applier.BirthDate, EnglishGrade = applier.EnglishGrade, ZipCode = applier.ZipCode, ExpectedSalary = applier.ExpectedSalary, PreviousPlaces = applier.PreviousPlaces, GraduatingFaculty = applier.GraduatingFaculty, ApplyingDateTime = DateTime.Now, GraduatingGrade = applier.GraduatingGrade, MicrosoftOfficeGrade = applier.MicrosoftOfficeGrade, GraduatingYear = applier.GraduatingYear, }; var validation = new ValidateApplier(new List <IValidate <Applier> > { new ValidateDates(), new ValidateEmail(), new ValidatePhone(), new ValidateName(), }, apply); if (!validation.Validate()) { Console.WriteLine("invalid validation "); return(RedirectToAction("AddApplier")); } if (applier.Image != null) { var uploading = new UploadingFile(_environment, "images"); await uploading.Upload(applier.Image); apply.Image = uploading.FileKey; } if (await _repo.AddApplier(apply)) { return(RedirectToAction("SuccessActionResult")); } return(RedirectToAction("AddApplier")); }