public int ApplyTask(int taskId, string emailAddress, string statementOfPurpose) { try { var user = _commonService.GetCurrentUserContext(); var taskApplicant = new taskapplicant { APPLICANT_ID = user.UserId, TASK_ID = taskId, STATUS = ApplicantStatus.Active.ToString(), STATUS_DATE = DateTime.Now, STATEMENT_OF_PURPOSE = statementOfPurpose }; MapAuditFields(ActionType.Insert, taskApplicant); var result = _contributorRepository.ApplyForTask(taskApplicant); if (result > 0) { var task = _taskRepository.GetTaskById(taskId); if (string.IsNullOrWhiteSpace(emailAddress)) { emailAddress = user.ManagerEmailId; } var managerName = _commonService.GetNameFromEmailId(emailAddress); _userRepository.UpdateManager(user.UserId, managerName, emailAddress); var RMGroupEmailAddress = _commonService.GetRMGroupEmailAddress(user.Department); var offering = _commonService.GetOfferings().Where(x => x.Id == task.OFFERING_ID).Select(x => x.Description).FirstOrDefault(); var mailMessage = EmailHelper.ApplyNotification( managerName, $"{user.FirstName}{Constants.Space}{user.LastName}", task.TASK_NAME, task.PROJECT_NAME, $"{task.HOURS.ToString()}h", task.ONBOARDING_DATE.Value.ToShortDateString(), emailAddress, $"{user.EmailId};{RMGroupEmailAddress}", offering); var emailTracker = new EmailTracker { ToAddresses = emailAddress, Subject = mailMessage.Subject, Body = mailMessage.Body, TaskId = taskId, Source = ApplicationSource.WebApp.ToString() }; if (RMGroupEmailAddress != null) { emailTracker.CcAddresses.Add(RMGroupEmailAddress); } _emailTrackerService.InsertEmail(emailTracker); } return(result); } catch (Exception ex) { var logDetails = new DCode.Models.Common.Log { Description = ex.Message, Details = ex.ToString() }; _commonService.LogToDatabase(logDetails); return(-1); } }