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"));
        }