Пример #1
0
        public RemarkDto GetRemarkById(int MstRemarkId)
        {
            var data   = _remarkService.GetRemarkById(MstRemarkId);
            var redata = Mapper.Map <RemarkDto>(data);

            return(redata);
        }
Пример #2
0
        private TempMailNotification ProsesMailNotificationBody(TemporaryDto tempData, TempWorkflowDocumentInput input)
        {
            var bodyMail    = new StringBuilder();
            var rc          = new TempMailNotification();
            var settingData = _settingService.GetSetting().ToList();

            var vehTypeBenefit = settingData.Where(x => x.SETTING_GROUP == "VEHICLE_TYPE" && x.SETTING_NAME == "BENEFIT").FirstOrDefault().MST_SETTING_ID;
            var vendorData     = _vendorService.GetByShortName(tempData.VENDOR_NAME);
            var vendorEmail    = vendorData == null ? string.Empty : vendorData.EMAIL_ADDRESS;
            var vendorName     = vendorData == null ? "Vendor" : vendorData.VENDOR_NAME;

            var isBenefit = tempData.VEHICLE_TYPE == vehTypeBenefit.ToString() ? true : false;

            var webRootUrl        = ConfigurationManager.AppSettings["WebRootUrl"];
            var typeEnv           = ConfigurationManager.AppSettings["Environment"];
            var serverIntranet    = ConfigurationManager.AppSettings["ServerIntranet"];
            var employeeData      = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID);
            var creatorData       = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_CREATOR);
            var fleetApprovalData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_FLEET_APPROVAL);

            var employeeDataEmail      = employeeData == null ? string.Empty : employeeData.EMAIL_ADDRESS;
            var creatorDataEmail       = creatorData == null ? string.Empty : creatorData.EMAIL_ADDRESS;
            var fleetApprovalDataEmail = fleetApprovalData == null ? string.Empty : fleetApprovalData.EMAIL_ADDRESS;

            var employeeDataName      = employeeData == null ? string.Empty : employeeData.FORMAL_NAME;
            var creatorDataName       = creatorData == null ? string.Empty : creatorData.FORMAL_NAME;
            var fleetApprovalDataName = fleetApprovalData == null ? string.Empty : fleetApprovalData.FORMAL_NAME;

            var hrList    = string.Empty;
            var fleetList = string.Empty;

            var hrEmailList    = new List <string>();
            var fleetEmailList = new List <string>();

            var hrRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) &&
                                           x.SETTING_VALUE.Contains("HR")).FirstOrDefault().SETTING_VALUE;
            var fleetRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) &&
                                              x.SETTING_VALUE.Contains("FLEET")).FirstOrDefault().SETTING_VALUE;

            var hrQuery    = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + hrRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') ";
            var fleetQuery = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + fleetRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') ";

            if (typeEnv == "VTI")
            {
                hrQuery    = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + hrRole + "'";
                fleetQuery = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + fleetRole + "'";
            }

            EntityConnectionStringBuilder e = new EntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["FMSEntities"].ConnectionString);
            string        connectionString  = e.ProviderConnectionString;
            SqlConnection con = new SqlConnection(connectionString);

            con.Open();
            SqlCommand    query  = new SqlCommand(hrQuery, con);
            SqlDataReader reader = query.ExecuteReader();

            while (reader.Read())
            {
                var hrLogin = "******" + reader[0].ToString() + "',";
                hrList += hrLogin;
            }

            hrList = hrList.TrimEnd(',');

            query  = new SqlCommand(fleetQuery, con);
            reader = query.ExecuteReader();
            while (reader.Read())
            {
                var fleetLogin = "******" + reader[0].ToString() + "',";
                fleetList += fleetLogin;
            }

            fleetList = fleetList.TrimEnd(',');

            var hrQueryEmail    = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + hrList + ")";
            var fleetQueryEmail = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + fleetList + ")";

            if (typeEnv == "VTI")
            {
                hrQueryEmail    = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + hrList + ")";
                fleetQueryEmail = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + fleetList + ")";
            }

            query  = new SqlCommand(hrQueryEmail, con);
            reader = query.ExecuteReader();
            while (reader.Read())
            {
                hrEmailList.Add(reader[0].ToString());
            }

            query  = new SqlCommand(fleetQueryEmail, con);
            reader = query.ExecuteReader();
            while (reader.Read())
            {
                fleetEmailList.Add(reader[0].ToString());
            }

            reader.Close();
            con.Close();

            switch (input.ActionType)
            {
            case Enums.ActionType.Submit:
                //if submit from FLEET for wtc
                if (tempData.CREATED_BY == input.UserId && !isBenefit)
                {
                    rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car";

                    bodyMail.Append("Dear " + vendorName + ",<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("You have new car request. Please check attached file<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Thanks<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Regards,<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Fleet Team");
                    bodyMail.AppendLine();

                    //if vendor exists
                    if (!string.IsNullOrEmpty(vendorEmail))
                    {
                        foreach (var item in input.Attachments)
                        {
                            rc.Attachments.Add(item);
                        }

                        rc.To.Add(vendorEmail);
                    }

                    foreach (var item in fleetEmailList)
                    {
                        rc.CC.Add(item);
                    }

                    rc.CC.Add(employeeDataEmail);
                }
                //if submit from HR for benefit
                if (tempData.CREATED_BY == input.UserId && isBenefit)
                {
                    rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request";

                    bodyMail.Append("Dear Fleet Team,<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("new temporary car has been recorded as " + tempData.DOCUMENT_NUMBER_TEMP + "<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Please submit detail vehicle information <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("For any assistance please contact " + creatorDataName + "<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Thanks<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Regards,<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("HR Team");
                    bodyMail.AppendLine();

                    foreach (var item in fleetEmailList)
                    {
                        rc.To.Add(item);
                    }

                    foreach (var item in hrEmailList)
                    {
                        rc.CC.Add(item);
                    }

                    rc.CC.Add(employeeDataEmail);
                }
                rc.IsCCExist = true;
                break;

            case Enums.ActionType.Approve:
                //if Fleet Approve for benefit
                if (input.UserRole == Enums.UserRole.Fleet && isBenefit)
                {
                    rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car";

                    bodyMail.Append("Dear " + vendorName + ",<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("You have new car request. Please check attached file<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Thanks<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Regards,<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Fleet Team");
                    bodyMail.AppendLine();

                    //if vendor exists
                    if (!string.IsNullOrEmpty(vendorEmail))
                    {
                        foreach (var item in input.Attachments)
                        {
                            rc.Attachments.Add(item);
                        }

                        rc.To.Add(vendorEmail);
                    }

                    rc.To.Add(creatorDataEmail);

                    foreach (var item in fleetEmailList)
                    {
                        rc.CC.Add(item);
                    }

                    rc.CC.Add(employeeDataEmail);
                }
                rc.IsCCExist = true;
                break;

            case Enums.ActionType.Reject:
                //if Fleet Reject Benefit
                if (input.UserRole == Enums.UserRole.Fleet && isBenefit)
                {
                    rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request";

                    bodyMail.Append("Dear " + creatorDataName + ",<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been rejected by " + fleetApprovalDataName + " for below reason : " + _remarkService.GetRemarkById(input.Comment.Value).REMARK + "<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Please revised and re-submit your request <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Thanks<br /><br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Regards,<br />");
                    bodyMail.AppendLine();
                    bodyMail.Append("Fleet Team");
                    bodyMail.AppendLine();

                    rc.To.Add(creatorDataEmail);

                    foreach (var item in fleetEmailList)
                    {
                        rc.CC.Add(item);
                    }

                    rc.CC.Add(employeeDataEmail);
                }
                rc.IsCCExist = true;
                break;

            case Enums.ActionType.Completed:
                rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Completed Document";

                bodyMail.Append("Dear " + creatorDataName + ",<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been completed by system<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />");
                bodyMail.AppendLine();
                bodyMail.Append("Thanks<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Regards,<br />");
                bodyMail.AppendLine();
                bodyMail.Append("Fleet Team");
                bodyMail.AppendLine();

                rc.To.Add(creatorDataEmail);
                rc.CC.Add(employeeDataEmail);
                rc.CC.Add(fleetApprovalDataEmail);
                rc.IsCCExist = true;
                break;

            case Enums.ActionType.Cancel:
                rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Cancelled Document";

                bodyMail.Append("Dear " + employeeDataName + ",<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been cancelled by " + creatorDataName + "<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />");
                bodyMail.AppendLine();
                bodyMail.Append("Thanks<br /><br />");
                bodyMail.AppendLine();
                bodyMail.Append("Regards,<br />");
                bodyMail.AppendLine();
                bodyMail.Append("Fleet Team");
                bodyMail.AppendLine();

                rc.To.Add(employeeDataEmail);
                rc.CC.Add(creatorDataEmail);

                foreach (var item in fleetEmailList)
                {
                    rc.CC.Add(item);
                }

                rc.IsCCExist = true;
                break;
            }

            rc.Body = bodyMail.ToString();
            return(rc);
        }