private void SendNotifReject(SrfRequest Srf, string Notes, string Roles) { var AppProfile = _userHelper.GetUserProfile(Srf.ApproveOneId.Value); if (AppProfile != null) { var AppUser = _userHelper.GetUser(AppProfile.ApplicationUserId); var callbackUrl = Url.Action("Edit", "Escalation", new { area = "Admin", id = Srf.Id }, _hostConfiguration.Protocol, _hostConfiguration.Name); _notif.Send( User, // User From "Service Request Form is rejected by " + Roles + " (Escalation)", // Subject AppProfile.Name, // User target name AppUser.Email, // User target email callbackUrl, // Link CallBack "Service Request Form is rejected by " + Roles + " (Escalation)", // Email content or descriptions Notes, // Description NotificationInboxStatus.Reject, // Notif Status Activities.SRF // Activity Status ); } }
protected override void AfterCreateData(Claim item) { var ClaimType = _claimCategory.GetById(item.ClaimCategoryId); var callbackUrl = Url.Action("Index", "Claim", new { area = "Admin" }, _hostConfiguration.Protocol, _hostConfiguration.Name); var AppProfile = _userHelper.GetUserProfile(item.ClaimApproverOneId.Value); var AppUser = _userHelper.GetUser(AppProfile.ApplicationUserId); _notif.Send( User, // User From "New Claim Request", // Subject AppProfile.Name, // User target name AppUser.Email, // User target email callbackUrl, // Link CallBack "New Claim Request " + ClaimType.Name, // Email content or descriptions item.Description, // Description NotificationInboxStatus.Request, // Notif Status Activities.Claim // Activity Status ); base.AfterCreateData(item); }
public async Task <IActionResult> Submit(CandidateInfoModelForm model) { if (ModelState.IsValid) { bool CheckEmail = false; bool CheckIdNumber = false; // Check Email if (!string.IsNullOrEmpty(model.Email)) { var CheckEmailInSystem = await _userManager.FindByEmailAsync(model.Email); if (CheckEmailInSystem == null) { var CheckEmailCandidate = _service.GetAll().Where(x => x.Email.Equals(model.Email) && x.VacancyId.Equals(model.VacancyId)).FirstOrDefault(); if (CheckEmailCandidate == null) { CheckEmail = true; } } else { var AppUser = _userManager.FindByEmailAsync(model.Email).Result; var UserProfile = _profile.GetByUserId(AppUser.Id); if (UserProfile.IsBlacklist == true && UserProfile.IsTerminate == false) { TempData["Error"] = "Email " + model.Email + " is blacklist"; return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId })); } if (UserProfile.IsBlacklist == false && UserProfile.IsTerminate == true) { CheckEmail = true; } } } // Check Id Number if (!string.IsNullOrEmpty(model.IdNumber)) { var Candidate = Service.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber.Equals(model.IdNumber) && x.IsUser == true).FirstOrDefault(); if (Candidate != null) { // Candidate is User var UserProfile = _profile.GetById(Candidate.AccountId); if (UserProfile.IsBlacklist == true && UserProfile.IsTerminate == false) { TempData["Error"] = "Id Number " + model.IdNumber + " is blacklist !!"; return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId })); } if (UserProfile.IsBlacklist == false && UserProfile.IsTerminate == true) { CheckIdNumber = true; } } else { Candidate = Service.GetAll().Where(x => !string.IsNullOrWhiteSpace(x.IdNumber) && x.IdNumber.Equals(model.IdNumber) && x.VacancyId.Equals(model.VacancyId)).FirstOrDefault(); if (Candidate != null) { TempData["Error"] = "Id Number " + model.IdNumber + " is already exist !!"; return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId })); } else { CheckIdNumber = true; } } } if (CheckEmail == true && CheckIdNumber == true) { if (!string.IsNullOrWhiteSpace(model.Attachments)) { string fileDestination = "uploads/candidate"; var AttachmentUpload = model.Attachments.Split('|'); var listSaveAttachment = new List <string>(); if (AttachmentUpload != null) { foreach (var file in AttachmentUpload) { if (!string.IsNullOrWhiteSpace(file)) { string FileName = Path.GetFileNameWithoutExtension(file).ToSlug(); string MovedFiles = _fileHelper.FileMove(file, fileDestination, FileName, true); if (!string.IsNullOrEmpty(MovedFiles)) { listSaveAttachment.Add(MovedFiles); } } } if (listSaveAttachment != null) { model.Attachments = JsonConvert.SerializeObject(listSaveAttachment); } } } var item = Mapper.Map <CandidateInfo>(model); item.RequestById = _userHelper.GetLoginUser(User).Id; item.AgencyId = _userHelper.GetLoginUser(User).Id; item.IsCandidate = true; item.IsContractor = false; item.IsUser = false; item.HomeBaseId = null; item.CreatedBy = _userHelper.GetUserId(User); item.CreatedAt = DateTime.Now; Service.Add(item); // Send Notif To Line Manager var Vacancy = _vacancy.GetById(model.VacancyId); var LineManager = _user.GetById(Vacancy.ApproverOneId); var LmUser = _userService.GetById(LineManager.ApplicationUserId); var callbackUrl = Url.Action("Details", "Vacancy", new { area = "Admin", id = model.VacancyId }, _hostConfiguration.Protocol, _hostConfiguration.Name); _notif.Send( User, // User From "New CV is submitted by " + _userHelper.GetLoginUser(User).Name, // Subject LineManager.Name, // User target name LmUser.Email, // User target email callbackUrl, // Link CallBack "New CV is submitted by " + _userHelper.GetLoginUser(User).Name, // Email content or descriptions item.Description, // Description NotificationInboxStatus.Request, // Notif Status Activities.Vacant // Activity Status ); TempData["Success"] = "Candidate with name " + model.Name + " have been added !!"; return(RedirectToAction("Details", "Vacancy", new { id = model.VacancyId })); } } TempData["Error"] = string.Join(",", ModelState.Values.Where(E => E.Errors.Count > 0).SelectMany(E => E.Errors).Select(E => E.ErrorMessage).ToArray()); return(RedirectToAction("Submit", "Candidate", new { id = model.VacancyId })); }
protected override void AfterUpdateData(AttendaceExceptionList before, AttendaceExceptionList after) { int ProfileId = 0; bool Send = false; if (after.StatusOne == StatusOne.Reject) { ProfileId = after.ApproverOneId.Value; Send = true; } if (after.StatusTwo == StatusTwo.Rejected) { ProfileId = after.ApproverTwoId.Value; Send = true; } if (Send == true) { var callbackUrl = Url.Action("Index", "Registration", new { area = "Admin" }, _hostConfiguration.Protocol, _hostConfiguration.Name); var AppProfile = _profile.GetById(ProfileId); var AppUser = _userHelper.GetUser(AppProfile.ApplicationUserId); _notif.Send( User, // User From "Activity Request Correction", // Subject AppProfile.Name, // User target name AppUser.Email, // User target email callbackUrl, // Link CallBack "Activity request has been correction please confirm.", // Email content or descriptions after.Description, // Description NotificationInboxStatus.Request, // Notif Status Activities.Request // Activity Status ); // Update Status var item = Service.GetById(after.Id); if (after.StatusOne == StatusOne.Reject) { item.StatusOne = StatusOne.Waiting; item.RequestStatus = ActiveStatus.Active; } if (after.StatusTwo == StatusTwo.Rejected) { item.StatusTwo = StatusTwo.Waiting; item.RequestStatus = ActiveStatus.Active; } Service.Update(item); } var TimeSheetType = _timesheet.GetById(after.TimeSheetTypeId); if (TimeSheetType.Type.ToLower().Trim().Equals("Annual leave".ToLower().Trim())) { var ContratorSrf = _userHelper.GetCurrentSrfByLogin(User); if (ContratorSrf != null) { var srf = _srf.GetById(ContratorSrf.Id); var Annual = (after.DateEnd.Month - after.DateStart.Month) <= 0 ? 0 : (after.DateEnd.Month - after.DateStart.Month); srf.AnnualLeave = srf.AnnualLeave - Annual; _srf.Update(srf); } } }