public async Task <IActionResult> UploadImage(NewImageView formData) { try { if (ModelState.IsValid) { var img = await Base64StringHandler.GetFormFileBase64StringAsync(formData.Img); await _employeeServices.UpdateEmployeeAsync(new Employee { Id = formData.EmployeeID, EmployeeImage = img, UserAccount = User.Identity.Name }); TempData["Message"] = "Employee image successfully uploaded"; _logger.LogInformation($"Successfully updated employee image; user={@User.Identity.Name.Substring(4)}"); return(RedirectToAction("UploadImage")); } } catch (ApplicationException error) { _logger.LogError( error, $"FAIL: failed to update employee image. Internal Application Error.; user={@User.Identity.Name.Substring(4)}"); ModelState.AddModelError("Employee", $"Failed to update employee image. Contact IT ServiceDesk for support thank you."); } await LoadSelectListsAsync(); return(View(formData)); }
public async Task <IActionResult> Add(NewEmployeeViewModel formData) { try { if (DateTime.Parse(formData.DateOfBirth) >= DateTimeOffset.Now) { ModelState.AddModelError("Employees", $"Employee Date of Birth {formData.DateOfBirth} can't be greater or now, Please enter a valid birth date."); } else if (DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.DateOfBirth).Year <= 17) { int years = DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.DateOfBirth).Year; ModelState.AddModelError("Employees", $"Employee aged {years} years is below the required working age, Please enter a valid birth date in range of 18 - 54."); } else if (DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.DateOfBirth).Year >= 55) { int years = DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.DateOfBirth).Year; ModelState.AddModelError("Employees", $"Employee aged {years} years is at the retirement level, Please enter a valid birth date in range of 18 - 54."); } else if ((formData.SpouseDateOfBirth != null) && DateTime.Parse(formData.SpouseDateOfBirth) >= DateTimeOffset.Now) { ModelState.AddModelError("Employees", $"Employee Spouse Date of Birth {formData.SpouseDateOfBirth} can't be greater or now, Please enter a valid birth date."); } else if ((formData.SpouseDateOfBirth != null) && DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.SpouseDateOfBirth).Year <= 17) { int years = DateTimeOffset.Now.Date.Year - DateTime.Parse(formData.SpouseDateOfBirth).Year; ModelState.AddModelError("Employees", $"Employee Spouse aged {years} years is below the required required age, Please enter a valid birth date in range of 18 - 54."); } else { var img = await Base64StringHandler.GetFormFileBase64StringAsync(formData.Img); //var image = await Base64StringHandler.GetFormFileBase64StringAsync(formData.EmployeeBirthCertificate); if (ModelState.IsValid) { bool bIfExist = false; var emp = from c in _db.Employees where c.PersonnelFileNumber == formData.PFNumber || c.TINNumber == formData.TINNumber || c.NSSFNumber == formData.NSSFNumber || c.NationalIDNumber == formData.NINNumber || c.ContactPerson == formData.ContactPerson || c.ContactPersonTelphone == formData.ContactPersonTelephone || c.BankAccountNumber == formData.BankAccountNumber || c.WorkMobileNumber == formData.WorkMobileNumber || c.PersonalMobileNumber == formData.PersonalMobileNumber || c.AlternativeMobileNumber == formData.AlternativeMobileNumber || c.EmployeeImage == img select c; try { emp.ToList()[0].PersonnelFileNumber.ToString(); emp.ToList()[0].TINNumber.ToString(); emp.ToList()[0].NSSFNumber.ToString(); emp.ToList()[0].NationalIDNumber.ToString(); emp.ToList()[0].ContactPerson.ToString(); emp.ToList()[0].ContactPersonTelphone.ToString(); emp.ToList()[0].BankAccountNumber.ToString(); emp.ToList()[0].PersonalMobileNumber.ToString(); emp.ToList()[0].AlternativeMobileNumber.ToString(); emp.ToList()[0].WorkMobileNumber.ToString(); emp.ToList()[0].EmployeeImage.ToString(); bIfExist = true; } catch { } if (bIfExist == true) { ModelState.AddModelError("Employees", $"Employee PFNumber, TIN, NSSF, NIN Number already exists, PF, TIN, NSSF and NIN Number must be Unique"); } else { var SpouseDate = ""; if (formData.SpouseDateOfBirth != null) { SpouseDate = formData.SpouseDateOfBirth; } else { SpouseDate = DateTime.Now.ToString(); } //var img1 = await Base64StringHandler.GetFormFileBase64StringAsync(formData.EmployeeImg); await _employeeServices.AddEmployeeAsync(new Employee { PersonnelFileNumber = formData.PFNumber, Salutation = formData.Salutation, FirstName = formData.FirstName, MiddleName = formData.MiddleName, MaidenName = formData.MaidenName, LastName = formData.LastName, DateOfBirth = DateTime.Parse(formData.DateOfBirth), Gender = formData.Gender, NationalityId = formData.NationalityId, Religion = formData.Religion, MaritalStatus = formData.MaritalStatus, Address = formData.Address, NationalIDNumber = formData.NINNumber, TINNumber = formData.TINNumber, NSSFNumber = formData.NSSFNumber, DistrictBirthId = formData.DistrictBirthId, DistrictResidenceId = formData.DistrictResidenceId, SupervisorId = formData.SupervisorId, JobTitle = formData.JobTitle, ContactPerson = formData.ContactPerson, ContactPersonTelphone = formData.ContactPersonTelephone, IsActive = formData.IsActive, DepartmentId = formData.DepartmentId, BankId = formData.BankId, BankBranch = formData.BankBranch, BankAccountNumber = formData.BankAccountNumber, // BeneficiaryName = formData.BeneficiaryName, //BeneficiaryContact = formData.BeneficiaryContact, //RelationshipId = formData.RelationshipId, PersonalMobileNumber = formData.PersonalMobileNumber, AlternativeMobileNumber = formData.AlternativeMobileNumber, WorkMobileNumber = formData.WorkMobileNumber, DateTimeAdded = DateTimeOffset.Now, DateTimeModified = DateTimeOffset.Now, UserAccount = User.Identity.Name, SpouseName = formData.SpouseName, SpouseContactAddress = formData.SpouseContactAddress, SpouseDateOfBirth = DateTime.Parse(SpouseDate), SpouseTelephone = formData.SpouseTelephone, EmployeeImage = await Base64StringHandler.GetFormFileBase64StringAsync(formData.Img), OtherReligion = formData.OtherReligion, OtherMaritialStatus = formData.MaritalStatusOthers, JoinDate = DateTime.Parse(formData.DateOfJoin) //SpouseBirthCertificateImage = await Base64StringHandler.GetFormFileBase64StringAsync(formData.SpouseBirthCertificate), // EmployeeBirthCertificateImage = await Base64StringHandler.GetFormFileBase64StringAsync(formData.EmployeeBirthCertificate) }); _logger.LogInformation($"Successfully add new employee record with PFNumber: {formData.PFNumber}; user={@User.Identity.Name.Substring(4)}"); TempData["Message"] = "Employee added successfully"; return(RedirectToAction("add")); } } } } catch (ApplicationException error) { _logger.LogError( error, $"FAIL: failed to register employee {formData.FirstName + ' ' + formData.LastName}. Internal Application Error.; user={@User.Identity.Name.Substring(4)}"); ModelState.AddModelError("Employee", $"Failed to register employee {formData.FirstName + ' ' + formData.LastName}. Contact IT ServiceDesk for support thank you."); } await LoadSelectListsAsync(); return(View(formData)); }