public static void SendMail(TblApproverHeader ApproverHdr, RecommendRequestObj data, string ProcessType, string to)
        {
            try
            {
                using (var context = new SalesReturndbEntities())
                {
                    TblMailTemplate EmailTemplate = new TblMailTemplate();
                    string          subject       = string.Empty;

                    if (ProcessType == "reject")
                    {
                        if (data.Active_Role == 2)//ch
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 5).FirstOrDefault();
                        }
                        else if (data.Active_Role == 3)//cm
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 8).FirstOrDefault();
                        }
                        else if (data.Active_Role == 4)//lm
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 11).FirstOrDefault();
                        }
                        else if (data.Active_Role == 5)//ISC/Vp
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 14).FirstOrDefault();
                        }
                        else if (data.Active_Role == 8)//sh
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 21).FirstOrDefault();
                        }
                        else if (data.Active_Role == 7)//Regionl Head
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 18).FirstOrDefault();
                        }
                        else if (data.Active_Role == 5)//Vp Head
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 24).FirstOrDefault();
                        }
                        else if (data.Active_Role == 6)//President
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 27).FirstOrDefault();
                        }
                        //   subject = EmailTemplate.Subject.Replace("<RequestNo.>", "S" + "-" + data.Request_Id);
                    }
                    if (ProcessType == "reconsider")
                    {
                        if (data.Active_Role == 2) //ch
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 6).FirstOrDefault();
                        }
                        else if (data.Active_Role == 3) //cm
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 9).FirstOrDefault();
                        }
                        else if (data.Active_Role == 4) //lm
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 12).FirstOrDefault();
                        }
                        else if (data.Active_Role == 5) //isc Vp
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 15).FirstOrDefault();
                        }
                        else if (data.Active_Role == 7) //regional head
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 19).FirstOrDefault();
                        }
                        else if (data.Active_Role == 8) //Segment head
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 22).FirstOrDefault();
                        }
                        else if (data.Active_Role == 5) //isc Vp
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 25).FirstOrDefault();
                        }
                        else if (data.Active_Role == 6) //presdient
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 28).FirstOrDefault();
                        }
                        // subject = EmailTemplate.Subject.Replace("<RequestNo.>", "S" + "-" + data.Request_Id);
                    }

                    if (ProcessType == "recommended")
                    {
                        if (data.Active_Role == 2)
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 4).FirstOrDefault();
                        }
                        else if (data.Active_Role == 4)
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 10).FirstOrDefault();
                        }
                        else if (data.Active_Role == 7)
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 17).FirstOrDefault();
                        }

                        //subject = EmailTemplate.Subject.Replace("<RequestNo.>", data.Request_Id.ToString());
                    }
                    if (ProcessType == "approve")
                    {
                        if (data.Active_Role == 5)
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 13).FirstOrDefault();
                        }

                        else if (data.Active_Role == 3)//cm
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 7).FirstOrDefault();
                        }
                        else if (data.Active_Role == 7)//rh
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 26).FirstOrDefault();
                        }
                        else if (data.Active_Role == 9)//sh
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 20).FirstOrDefault();
                        }
                        else if (data.Active_Role == 6) //president
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 26).FirstOrDefault();
                        }
                        else if (data.Active_Role == 7) //RegionalHead
                        {
                            EmailTemplate = context.TblMailTemplates.Where(x => x.Id == 16).FirstOrDefault();
                        }
                        // subject = EmailTemplate.Subject.Replace("<RequestNo.>", data.Request_Id.ToString());
                    }
                    subject = EmailTemplate.Subject;
                    subject = GetSubject(subject, data);
                    string Body = GetHtml(EmailTemplate.MailBody, data);
                    //var CCMails = GetCC(data);
                    MailAddressCollection CCMails = new MailAddressCollection();
                    //CCMails.Add("*****@*****.**");
                    CCMails.Add("*****@*****.**");
                    int RequestType = data.RequestType_Id;
                    var UserDetail  = context.SP_LFGDetails(to).FirstOrDefault();
                    var FromEmail   = context.SP_LFGDetails(data.EmployeeCode).FirstOrDefault();
                    Body = Body.Replace("Requestor Name", FromEmail.Emp_First_name);
                    MailAddressCollection toMail   = new MailAddressCollection();
                    MailAddressCollection fromMail = new MailAddressCollection();
                    subject = subject.Replace("<EmployeeName>", FromEmail.Emp_First_name);
                    // toMail.Add(UserDetail.email_id);
                    // toMail.Add("*****@*****.**");
                    toMail.Add("*****@*****.**");

                    fromMail.Add(FromEmail.email_id);
                    Email.sendEmail(subject, "*****@*****.**", toMail, CCMails, Body);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static void UpdateRequestStatus(bool isNew, int Request_Id, string CreatedBy, string AssignedTo, int Active_Role, int Requested_Role, int CurrentStatus_Id, int FutureStatus_Id, string Remark)
        {
            using (var context = new SalesReturndbEntities())
            {
                using (TransactionScope T2 = new TransactionScope())
                {
                    int Approver_Id = 0;

                    if (isNew == true)
                    {
                        TblApproverHeader header = new TblApproverHeader()
                        {
                            Active_Role = Active_Role,
                            AssignedTo = AssignedTo,
                            Requested_Role = Requested_Role,
                            Request_Id = Request_Id ,
                            Status_Id = CurrentStatus_Id,
                            IsActive = true,
                            CreatedBy = CreatedBy,
                            CreatedDate = DateTime.Now,
                        };

                        context.Entry(header).State = EntityState.Added;
                        context.SaveChanges();

                        Approver_Id = header.Approver_Id;
                    }
                    else
                    {
                        var detail = context.TblApproverHeaders.Where(x => x.Request_Id == Request_Id).FirstOrDefault();

                        detail.Active_Role = Active_Role;
                        detail.AssignedTo = AssignedTo;
                        detail.Status_Id = CurrentStatus_Id;
                        detail.Requested_Role = Requested_Role;

                        detail.ModifiedBy = CreatedBy;
                        detail.ModifiedDate = DateTime.Now;
                        detail.IsActive = true;

                        context.Entry(detail).State = EntityState.Modified;
                        context.SaveChanges();

                        Approver_Id = detail.Approver_Id;
                    }

                    TblApproverDetail Appdetail = new TblApproverDetail()
                    {
                        Approver_Id = Approver_Id,
                        AssignedTo = AssignedTo,
                        Remark = Remark,
                        Role_Id = Active_Role,
                        Status_Id = CurrentStatus_Id,
                        CreatedBy = CreatedBy,
                        CreatedDate = DateTime.Now,
                        IsActive = true
                    };
                    context.Entry(Appdetail).State = EntityState.Added;
                    context.SaveChanges();

                    TblFutureStatu statu = new TblFutureStatu()
                    {
                        Request_ID = Request_Id,
                        EmployeeCode = AssignedTo,
                        Role = Requested_Role,
                        Status = FutureStatus_Id,
                        CreatedBy = CreatedBy,
                        CreatedDate = DateTime.Now,
                        IsActive = true
                    };

                    context.Entry(statu).State = EntityState.Added;
                    context.SaveChanges();

                    T2.Complete();
                    T2.Dispose();
                }
            }
        }