コード例 #1
0
        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
                    );
            }
        }
コード例 #2
0
ファイル: ClaimController.cs プロジェクト: feblaw/ebast
        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);
        }
コード例 #3
0
ファイル: CandidateController.cs プロジェクト: feblaw/ebast
        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 }));
        }
コード例 #4
0
        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);
                }
            }
        }