public static void updateJobDetail(JobDetailInfo info)
        {
            //MySqlDataReader reader = getJobById(Convert.ToUInt32(info.JobId));

            string sql = "update jobdetail set locationID=?locationID,typeID=?typeID,salaryMin=?salaryMin,salaryMax=?salaryMax,ReferenceNo=?ReferenceNo,title=?title,subHeading=?subHeading,searchTitle=?searchTitle,bullet1=?bullet1" +
                ",bullet2=?bullet2,bullet3=?bullet3,summary=?summary,jobContent=?jobContent,websiteURL=?websiteURL,adFooter=?adFooter,isResidency=?isResidency,status=?status,clientId=?clientId,jobIndustryId=?jobIndustryId" +
                ",jobIndustrySubId=?jobIndustrySubId,modifiedDate=?modifiedDate,modifiedBy=?modifiedBy,hotJob=?hotJob,salaryCurrency=?salaryCurrency,salaryFrequency=?salaryFrequency,published=?published, isco08id=?isco08id,isicrev4id=?isicrev4id where JobDetailID=?jobId";

            MySqlParameter[] param ={
             new MySqlParameter("locationID",info.LocationId),
             new MySqlParameter("typeID", info.TypeId),
             new MySqlParameter("salaryMin", info.SalaryMin),
             new MySqlParameter("salaryMax",info.SalaryMax),
             new MySqlParameter("ReferenceNo",info.ReferenceNo),
             new MySqlParameter("title",info.Title),
             new MySqlParameter("subHeading",info.SubHeading),
             new MySqlParameter("searchTitle",info.SearchTitle),
             new MySqlParameter("bullet1",info.Bullet1),
             new MySqlParameter("bullet2",info.Bullet2),
             new MySqlParameter("bullet3",info.Bullet3),
             new MySqlParameter("summary",info.Summary),
             new MySqlParameter("jobContent",info.JobContent),
             new MySqlParameter("websiteURL",info.WebsiteURL),
             new MySqlParameter("adFooter",info.AdFooter),
             new MySqlParameter("isResidency",info.IsResidency),
             new MySqlParameter("status",info.Status),
             new MySqlParameter("clientId",info.ClientId),
             new MySqlParameter("jobIndustryId",info.JobIndustryId),
             new MySqlParameter("jobIndustrySubId",info.JobIndustrySubId),
             new MySqlParameter("modifiedDate",info.ModifiedDate),
             new MySqlParameter("modifiedBy",info.ModifiedBy),
             new MySqlParameter("hotJob",info.HotJob),
             new MySqlParameter("salaryCurrency",info.SalaryCurrency),
             new MySqlParameter("salaryFrequency",info.SalaryFrequency),
             new MySqlParameter("published",info.Published),
             new MySqlParameter("jobId",info.JobId),
             new MySqlParameter("isco08id",info.ISCO08Id),
             new MySqlParameter("isicrev4id",info.ISICRev4Id)
            };

            DAO.ExecuteScalar(sql, param);

            #region History
            //if (reader.HasRows)
            //{
            //    reader.Read();
            //    HistoryDataProvider history = new HistoryDataProvider();
            //    HistoryInfo historyInfo = new HistoryInfo();
            //    historyInfo.UserId = GPSession.UserId;
            //    historyInfo.ModuleId = (int)HistoryInfo.Module.Job;
            //    historyInfo.TypeId = (int)HistoryInfo.ActionType.Edit;
            //    historyInfo.RecordId = Convert.ToUInt32(info.JobId);
            //    historyInfo.ModifiedDate = DateTime.Now;
            //    historyInfo.Details = new List<HistoryDetailInfo>();

            //    if (DAO.getInt(reader, "locationid") != info.LocationId)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "locationid", OldValue = DAO.getInt(reader, "locationid").ToString(), NewValue = info.LocationId.ToString() });
            //    }
            //    if (DAO.getInt(reader, "typeid") != info.TypeId)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "typeid", OldValue = DAO.getInt(reader, "typeid").ToString(), NewValue = info.TypeId.ToString() });
            //    }
            //    if (DAO.getString(reader, "salaryMax").ToString() != info.SalaryMax)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryMax", OldValue = DAO.getString(reader, "salaryMax"), NewValue = info.SalaryMax });
            //    }
            //    if (DAO.getString(reader, "salaryMin").ToString() != info.SalaryMin)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryMin", OldValue = DAO.getString(reader, "salaryMin"), NewValue = info.SalaryMin });
            //    }
            //    if (DAO.getString(reader, "ReferenceNo").ToString() != info.ReferenceNo)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "ReferenceNo", OldValue = DAO.getString(reader, "ReferenceNo"), NewValue = info.ReferenceNo });
            //    }
            //    if (DAO.getString(reader, "title").ToString() != info.Title)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "title", OldValue = DAO.getString(reader, "title"), NewValue = info.Title });
            //    }
            //    if (DAO.getString(reader, "subHeading").ToString() != info.SubHeading)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "subHeading", OldValue = DAO.getString(reader, "subHeading"), NewValue = info.SubHeading });
            //    }
            //    if (DAO.getString(reader, "searchTitle").ToString() != info.SubHeading)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "searchTitle", OldValue = DAO.getString(reader, "searchTitle"), NewValue = info.SearchTitle });
            //    }
            //    if (DAO.getString(reader, "bullet1").ToString() != info.Bullet1)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet1", OldValue = DAO.getString(reader, "bullet1"), NewValue = info.Bullet1 });
            //    }
            //    if (DAO.getString(reader, "bullet2").ToString() != info.Bullet2)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet2", OldValue = DAO.getString(reader, "bullet2"), NewValue = info.Bullet2 });
            //    }
            //    if (DAO.getString(reader, "bullet3").ToString() != info.Bullet3)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet3", OldValue = DAO.getString(reader, "bullet3"), NewValue = info.Bullet3 });
            //    }
            //    if (DAO.getString(reader, "summary").ToString() != info.Summary)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "summary", OldValue = DAO.getString(reader, "summary"), NewValue = info.Summary });
            //    }
            //    if (DAO.getString(reader, "jobContent").ToString() != info.JobContent)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobContent", OldValue = DAO.getString(reader, "jobContent"), NewValue = info.JobContent });
            //    }
            //    if (DAO.getString(reader, "websiteURL").ToString() != info.WebsiteURL)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "websiteURL", OldValue = DAO.getString(reader, "websiteURL"), NewValue = info.WebsiteURL });
            //    }
            //    if (DAO.getString(reader, "adFooter").ToString() != info.AdFooter)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "adFooter", OldValue = DAO.getString(reader, "adFooter"), NewValue = info.AdFooter });
            //    }
            //    if (DAO.getInt(reader, "status") != info.Status)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "status", OldValue = DAO.getInt(reader, "status").ToString(), NewValue = info.Status.ToString() });
            //    }
            //    if (DAO.getInt(reader, "clientId") != info.ClientId)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "clientId", OldValue = DAO.getInt(reader, "clientId").ToString(), NewValue = info.ClientId.ToString() });
            //    }
            //    if (DAO.getInt(reader, "jobIndustryId") != info.JobIndustryId)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobIndustryId", OldValue = DAO.getInt(reader, "jobIndustryId").ToString(), NewValue = info.JobIndustryId.ToString() });
            //    }
            //    if (DAO.getInt(reader, "jobIndustrySubId") != info.JobIndustrySubId)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobIndustrySubId", OldValue = DAO.getInt(reader, "jobIndustrySubId").ToString(), NewValue = info.JobIndustrySubId.ToString() });
            //    }
            //    if (DAO.getBool(reader, "hotJob") != info.HotJob)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "hotJob", OldValue = DAO.getBool(reader, "hotJob").ToString(), NewValue = info.HotJob.ToString() });
            //    }
            //    if (DAO.getString(reader, "salaryCurrency").ToString() != info.SalaryCurrency)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryCurrency", OldValue = DAO.getString(reader, "salaryCurrency"), NewValue = info.SalaryCurrency });
            //    }
            //    if (DAO.getInt(reader, "salaryFrequency") != info.SalaryFrequency)
            //    {
            //        historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryFrequency", OldValue = DAO.getInt(reader, "salaryFrequency").ToString(), NewValue = info.SalaryFrequency.ToString() });
            //    }

            //    if (historyInfo.Details.Count > 0)
            //    {
            //        history.insertHistory(historyInfo);
            //    }
            //}
            //reader.Close();
            //reader.Dispose();
            #endregion

            JobEssentialCriteriaDataProvider.deleteEssentialCriteria(info.JobId);
            JobDesirableCriteriaDataProvider.deleteDesirableCriteria(info.JobId);
            JobConsultantDataProvider.deleteJobConsultant(info.JobId);
            JobLocationDataProvider.deleteJobLocation(info.JobId);

            uint jobId = Convert.ToUInt32(info.JobId);

            foreach (EssentialCriteriaInfo essInfo in info.EssentialCriteriaList)
            {
                JobEssentialCriteriaDataProvider.insertEssentialCriteria(jobId, essInfo.Description, essInfo.AnswerLength, essInfo.SortOrder);
            }

            foreach (DesirableCriteriaInfo desiInfo in info.DesirableCriteriaList)
            {
                JobDesirableCriteriaDataProvider.insertDesirableCriteria(jobId, desiInfo.Description, desiInfo.AnswerLength, desiInfo.SortOrder);
            }

            foreach (JobConsultantInfo consult in info.ConsultantList)
            {
                JobConsultantDataProvider.insertJobConsultant(jobId, consult.ConsultantId);
            }

            foreach (JobLocation location in info.LocationList)
            {
                JobLocationDataProvider.insertJobLocation(jobId, location.LocationId, location.Locationtype);
            }
        }
        public static uint insertJobDetail(JobDetailInfo info)
        {
            string sql = "insert into jobdetail (locationID, typeID,salaryMin,salaryMax,ReferenceNo,title,subHeading,searchTitle,bullet1,bullet2,bullet3,summary,jobContent,websiteURL,adFooter,isResidency,status,isApprove,clientId,jobIndustryId,jobIndustrySubId, createdDate,createdBy,hotJob,salaryCurrency,salaryFrequency,published,ismodified,isco08id,isicrev4id)";
            sql += "values (?locationID, ?typeID,?salaryMin,?salaryMax,?ReferenceNo,?title,?subHeading,?searchTitle,?bullet1,?bullet2,?bullet3,?summary,?jobContent,?websiteURL,?adFooter,?isResidency,?status,?isApprove,?clientId,?jobIndustryId,?jobIndustrySubId,?createdDate,?createdBy,?hotJob,?salaryCurrency,?salaryFrequency,1,1,?isco08id,?isicrev4id); select last_insert_id()";
            MySqlParameter[] param ={
             new MySqlParameter("locationID",info.LocationId),
             new MySqlParameter("typeID", info.TypeId),
             new MySqlParameter("salaryMin", info.SalaryMin),
             new MySqlParameter("salaryMax",info.SalaryMax),
             new MySqlParameter("ReferenceNo",info.ReferenceNo),
             new MySqlParameter("title",info.Title),
             new MySqlParameter("subHeading",info.SubHeading),
             new MySqlParameter("searchTitle",info.SearchTitle),
             new MySqlParameter("bullet1",info.Bullet1),
             new MySqlParameter("bullet2",info.Bullet2),
             new MySqlParameter("bullet3",info.Bullet3),
             new MySqlParameter("summary",info.Summary),
             new MySqlParameter("jobContent",info.JobContent),
             new MySqlParameter("websiteURL",info.WebsiteURL),
             new MySqlParameter("adFooter",info.AdFooter),
             new MySqlParameter("isResidency",info.IsResidency),
             new MySqlParameter("status",info.Status),
             new MySqlParameter("isApprove",info.IsApprove),
             new MySqlParameter("clientId",info.ClientId),
             new MySqlParameter("jobIndustryId",info.JobIndustryId),
             new MySqlParameter("jobIndustrySubId",info.JobIndustrySubId),
             new MySqlParameter("createdDate",info.CreatedDate),
              new MySqlParameter("createdBy",info.CreatedBy),
              new MySqlParameter("hotJob",info.HotJob),
              new MySqlParameter("salaryCurrency",info.SalaryCurrency),
              new MySqlParameter("salaryFrequency",info.SalaryFrequency),
              new MySqlParameter("isco08id",info.ISCO08Id),
              new MySqlParameter("isicrev4id",info.ISICRev4Id)
            };
            uint jobId = Convert.ToUInt32(DAO.ExecuteScalar(sql, param));

            HistoryDataProvider history = new HistoryDataProvider();
            HistoryInfo historyInfo = new HistoryInfo();
            historyInfo.UserId = GPSession.UserId;
            historyInfo.ModuleId = (int)HistoryInfo.Module.Job;
            historyInfo.TypeId = (int)HistoryInfo.ActionType.Add;
            historyInfo.RecordId = jobId;
            historyInfo.ModifiedDate = DateTime.Now;
            historyInfo.Details = new List<HistoryDetailInfo>();
            historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "All", NewValue = "title:" + info.Title + " ,referenceno:" + info.ReferenceNo });
            history.insertHistory(historyInfo);

            uint essid;
            foreach (EssentialCriteriaInfo essInfo in info.EssentialCriteriaList)
            {
                essid = JobEssentialCriteriaDataProvider.insertEssentialCriteria(jobId, essInfo.Description, essInfo.AnswerLength, essInfo.SortOrder);
                historyInfo = new HistoryInfo();
                historyInfo.UserId = GPSession.UserId;
                historyInfo.ModuleId = (int)HistoryInfo.Module.Essentialcriteria;
                historyInfo.TypeId = (int)HistoryInfo.ActionType.Add;
                historyInfo.RecordId = essid;
                historyInfo.ModifiedDate = DateTime.Now;
                historyInfo.Details = new List<HistoryDetailInfo>();
                historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "All", NewValue = "Description:" + essInfo.Description + " ,AnswerLength:" + essInfo.AnswerLength });
                history.insertHistory(historyInfo);
            }
            uint dessid;
            foreach (DesirableCriteriaInfo desiInfo in info.DesirableCriteriaList)
            {
                dessid = JobDesirableCriteriaDataProvider.insertDesirableCriteria(jobId, desiInfo.Description, desiInfo.AnswerLength, desiInfo.SortOrder);
                historyInfo = new HistoryInfo();
                historyInfo.UserId = GPSession.UserId;
                historyInfo.ModuleId = (int)HistoryInfo.Module.Desirablecriteria;
                historyInfo.TypeId = (int)HistoryInfo.ActionType.Add;
                historyInfo.RecordId = dessid;
                historyInfo.ModifiedDate = DateTime.Now;
                historyInfo.Details = new List<HistoryDetailInfo>();
                historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "All", NewValue = "Description:" + desiInfo.Description + " ,AnswerLength:" + desiInfo.AnswerLength });
                history.insertHistory(historyInfo);
            }

            foreach (JobConsultantInfo consult in info.ConsultantList)
            {
                JobConsultantDataProvider.insertJobConsultant(jobId, consult.ConsultantId);
            }

            foreach (JobLocation location in info.LocationList)
            {
                JobLocationDataProvider.insertJobLocation(jobId, location.LocationId, location.Locationtype);
            }

            return jobId;
        }
        public static uint insertJobDetailEdit(JobDetailInfo info, bool isnew)
        {
            MySqlDataReader reader = JobDetailDataProvider.getJobById(Convert.ToUInt32(info.JobId));

            string sql = "insert into jobdetail_edit (jobdetailId,locationID, typeID,salaryMin,salaryMax,ReferenceNo,title,subHeading,searchTitle,bullet1,bullet2,bullet3,summary,jobContent,websiteURL,adFooter,isResidency,status,isApprove,clientId," +
                          "jobIndustryId,jobIndustrySubId, createdDate,createdBy,modifieddate,modifiedby,hotJob,salaryCurrency,salaryFrequency,published,internalchange,active,version,versionstatus,versiondate,versionuser,isco08id,isicrev4id)" +
                          "values (?jobdetailid,?locationID, ?typeID,?salaryMin,?salaryMax,?ReferenceNo,?title,?subHeading,?searchTitle,?bullet1,?bullet2,?bullet3,?summary,?jobContent,?websiteURL,?adFooter,?isResidency,?status,?isApprove,?clientId," +
                          "?jobIndustryId,?jobIndustrySubId,?createdDate,?createdBy,?modifieddate,?modifiedby,?hotJob,?salaryCurrency,?salaryFrequency,?published,?internalchange,?active,?version,?versionstatus,?vdate,?vuser,?isco08id,?isicrev4id); select last_insert_id()";
            if (isnew)
            {
                info.Status = 1;
                info.Published = true;
            }

            MySqlParameter[] param ={
             new MySqlParameter("jobdetailid",info.JobId),
             new MySqlParameter("locationID",info.LocationId),
             new MySqlParameter("typeID", info.TypeId),
             new MySqlParameter("salaryMin", info.SalaryMin),
             new MySqlParameter("salaryMax",info.SalaryMax),
             new MySqlParameter("ReferenceNo",info.ReferenceNo),
             new MySqlParameter("title",info.Title),
             new MySqlParameter("subHeading",info.SubHeading),
             new MySqlParameter("searchTitle",info.SearchTitle),
             new MySqlParameter("bullet1",info.Bullet1),
             new MySqlParameter("bullet2",info.Bullet2),
             new MySqlParameter("bullet3",info.Bullet3),
             new MySqlParameter("summary",info.Summary),
             new MySqlParameter("jobContent",info.JobContent),
             new MySqlParameter("websiteURL",info.WebsiteURL),
             new MySqlParameter("adFooter",info.AdFooter),
             new MySqlParameter("isResidency",info.IsResidency),
             new MySqlParameter("status", info.Status),
             new MySqlParameter("isApprove",info.IsApprove),
             new MySqlParameter("clientId",info.ClientId),
             new MySqlParameter("jobIndustryId",info.JobIndustryId),
             new MySqlParameter("jobIndustrySubId",info.JobIndustrySubId),
             new MySqlParameter("createdDate",info.CreatedDate),
              new MySqlParameter("createdBy",info.CreatedBy),
              info.IsApprove?
                new MySqlParameter("modifieddate", info.ModifiedDate):new MySqlParameter("modifieddate", DBNull.Value),
                isnew? new MySqlParameter("modifiedBy",DBNull.Value): new MySqlParameter("modifiedBy",info.ModifiedBy),
              new MySqlParameter("hotJob",info.HotJob),
              new MySqlParameter("salaryCurrency",info.SalaryCurrency),
              new MySqlParameter("salaryFrequency",info.SalaryFrequency),
              new MySqlParameter("published",info.Published),
              new MySqlParameter("internalchange",info.InternalChange),
              new MySqlParameter("active",1),
              new MySqlParameter("version",info.Version),
              new MySqlParameter("versionstatus",1),
              new MySqlParameter("vdate",DateTime.UtcNow),
              new MySqlParameter("vuser",GPSession.UserId),
               new MySqlParameter("isco08id",info.ISCO08Id),
               new MySqlParameter("isicrev4id",info.ISICRev4Id)
            };
            uint jobeditId = Convert.ToUInt32(DAO.ExecuteScalar(sql, param));
            uint jobId = Convert.ToUInt32(info.JobId);

            uint essid;
            foreach (EssentialCriteriaInfo essInfo in info.EssentialCriteriaList)
            {
                essid = insertEssentialCriteria(jobId, jobeditId, essInfo.Description, essInfo.AnswerLength, essInfo.SortOrder);

            }
            uint dessid;
            foreach (DesirableCriteriaInfo desiInfo in info.DesirableCriteriaList)
            {
                dessid = insertDesirableCriteria(jobId, jobeditId, desiInfo.Description, desiInfo.AnswerLength, desiInfo.SortOrder);

            }

            foreach (JobConsultantInfo consult in info.ConsultantList)
            {
                insertJobConsultant(jobId, jobeditId, consult.ConsultantId);
            }

            foreach (JobLocation location in info.LocationList)
            {
                insertJobLocation(jobId, location.LocationId, location.Locationtype, jobeditId);
            }

            if (!isnew)
                JobDetailDataProvider.updateIsmodified(info.JobId);
            #region History

            if (reader.HasRows)
            {
                reader.Read();
                HistoryDataProvider history = new HistoryDataProvider();
                HistoryInfo historyInfo = new HistoryInfo();
                historyInfo.UserId = GPSession.UserId;
                historyInfo.ModuleId = (int)HistoryInfo.Module.Job;
                historyInfo.TypeId = (int)HistoryInfo.ActionType.Edit;
                historyInfo.RecordId = Convert.ToUInt32(info.JobId);
                historyInfo.ModifiedDate = DateTime.Now;
                historyInfo.Details = new List<HistoryDetailInfo>();

                if (DAO.getInt(reader, "locationid") != info.LocationId)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "locationid", OldValue = DAO.getInt(reader, "locationid").ToString(), NewValue = info.LocationId.ToString() });
                }
                if (DAO.getInt(reader, "typeid") != info.TypeId)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "typeid", OldValue = DAO.getInt(reader, "typeid").ToString(), NewValue = info.TypeId.ToString() });
                }
                if (DAO.getString(reader, "salaryMax").ToString() != info.SalaryMax)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryMax", OldValue = DAO.getString(reader, "salaryMax"), NewValue = info.SalaryMax });
                }
                if (DAO.getString(reader, "salaryMin").ToString() != info.SalaryMin)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryMin", OldValue = DAO.getString(reader, "salaryMin"), NewValue = info.SalaryMin });
                }
                if (DAO.getString(reader, "ReferenceNo").ToString() != info.ReferenceNo)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "ReferenceNo", OldValue = DAO.getString(reader, "ReferenceNo"), NewValue = info.ReferenceNo });
                }
                if (DAO.getString(reader, "title").ToString() != info.Title)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "title", OldValue = DAO.getString(reader, "title"), NewValue = info.Title });
                }
                //if (DAO.getString(reader, "subHeading").ToString() != info.SubHeading)
                //{
                //    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "subHeading", OldValue = DAO.getString(reader, "subHeading"), NewValue = info.SubHeading });
                //}
                //if (DAO.getString(reader, "searchTitle").ToString() != info.SubHeading)
                //{
                //    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "searchTitle", OldValue = DAO.getString(reader, "searchTitle"), NewValue = info.SearchTitle });
                //}
                if (DAO.getString(reader, "bullet1").ToString() != info.Bullet1)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet1", OldValue = DAO.getString(reader, "bullet1"), NewValue = info.Bullet1 });
                }
                if (DAO.getString(reader, "bullet2").ToString() != info.Bullet2)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet2", OldValue = DAO.getString(reader, "bullet2"), NewValue = info.Bullet2 });
                }
                if (DAO.getString(reader, "bullet3").ToString() != info.Bullet3)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "bullet3", OldValue = DAO.getString(reader, "bullet3"), NewValue = info.Bullet3 });
                }
                if (DAO.getString(reader, "summary").ToString() != info.Summary)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "summary", OldValue = DAO.getString(reader, "summary"), NewValue = info.Summary });
                }
                if (DAO.getString(reader, "jobContent").ToString() != info.JobContent)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobContent", OldValue = DAO.getString(reader, "jobContent"), NewValue = info.JobContent });
                }
                if ((string.IsNullOrEmpty(DAO.getString(reader, "websiteURL")) ? string.Empty : DAO.getString(reader, "websiteURL").ToString()) != info.WebsiteURL)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "websiteURL", OldValue = DAO.getString(reader, "websiteURL"), NewValue = info.WebsiteURL });
                }
                if (DAO.getString(reader, "adFooter") != info.AdFooter)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "adFooter", OldValue = DAO.getString(reader, "adFooter"), NewValue = info.AdFooter });
                }
                if (DAO.getInt(reader, "status") != info.Status)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "status", OldValue = DAO.getInt(reader, "status").ToString(), NewValue = info.Status.ToString() });
                }
                if (DAO.getInt(reader, "clientId") != info.ClientId)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "clientId", OldValue = DAO.getInt(reader, "clientId").ToString(), NewValue = info.ClientId.ToString() });
                }
                if (DAO.getInt(reader, "jobIndustryId") != info.JobIndustryId)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobIndustryId", OldValue = DAO.getInt(reader, "jobIndustryId").ToString(), NewValue = info.JobIndustryId.ToString() });
                }
                if (DAO.getInt(reader, "jobIndustrySubId") != info.JobIndustrySubId)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "jobIndustrySubId", OldValue = DAO.getInt(reader, "jobIndustrySubId").ToString(), NewValue = info.JobIndustrySubId.ToString() });
                }
                if (DAO.getBool(reader, "hotJob") != info.HotJob)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "hotJob", OldValue = DAO.getBool(reader, "hotJob").ToString(), NewValue = info.HotJob.ToString() });
                }

                if ((string.IsNullOrEmpty(DAO.getString(reader, "salaryCurrency")) ? string.Empty : DAO.getString(reader, "salaryCurrency").ToString()) != info.SalaryCurrency)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryCurrency", OldValue = DAO.getString(reader, "salaryCurrency"), NewValue = info.SalaryCurrency });
                }
                if (DAO.getInt(reader, "salaryFrequency") != info.SalaryFrequency)
                {
                    historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "salaryFrequency", OldValue = DAO.getInt(reader, "salaryFrequency").ToString(), NewValue = info.SalaryFrequency.ToString() });
                }

                if (historyInfo.Details.Count > 0)
                {
                    history.insertHistory(historyInfo);
                }
            }
            reader.Close();
            reader.Dispose();
            #endregion

            return jobeditId;
        }
        private int Save(JobDetailInfo model)
        {
            int jobId = 0;

            if (!JobDetailDataProvider.jobReferenceExist(model.ReferenceNo.Trim(), 0))
            {
                JobDetailInfo jobInfo = new JobDetailInfo();
                jobInfo.TypeId = Convert.ToInt32(model.TypeId);
                jobInfo.SalaryMin = model.SalaryMin;
                jobInfo.SalaryMax = model.SalaryMax;
                jobInfo.ReferenceNo = model.ReferenceNo.Trim().ToUpper();
                jobInfo.Title = !string.IsNullOrEmpty(model.Title) ? model.Title.ToUpper() : "";
                jobInfo.Bullet1 = !string.IsNullOrEmpty(model.Bullet1) ? model.Bullet1.ToUpper() : "";
                jobInfo.Bullet2 = !string.IsNullOrEmpty(model.Bullet2) ? model.Bullet2.ToUpper() : "";
                jobInfo.Bullet3 = !string.IsNullOrEmpty(model.Bullet3) ? model.Bullet3.ToUpper() : "";
                jobInfo.Summary = !string.IsNullOrEmpty(model.Summary) ? model.Summary.ToUpper() : "";
                jobInfo.JobContent = !string.IsNullOrEmpty(model.JobContent) ? model.JobContent.ToUpper() : "";
                jobInfo.AdFooter = !string.IsNullOrEmpty(model.AdFooter) ? model.AdFooter.ToUpper() : "";
                jobInfo.Status = 1;
                jobInfo.IsApprove = false;
                jobInfo.WebsiteURL = !string.IsNullOrEmpty(model.WebsiteURL) ? model.WebsiteURL.ToUpper() : "";
                jobInfo.ClientId = Convert.ToInt32(model.ClientId);
                jobInfo.CreatedDate = DateTime.UtcNow;
                jobInfo.HotJob = model.HotJob;
                jobInfo.SalaryCurrency = !string.IsNullOrEmpty(model.SalaryCurrency) ? model.SalaryCurrency.ToUpper() : "";
                //jobInfo.ISCO08Id = Convert.ToInt32(string.IsNullOrEmpty(hdfOccupationId.Value) ? "-1" : hdfOccupationId.Value);
                //jobInfo.ISICRev4Id = Convert.ToInt32(string.IsNullOrEmpty(hdfIndustryId.Value) ? "-1" : hdfIndustryId.Value);
                if (model.SalaryFrequency.HasValue && model.SalaryFrequency.Value > 0)
                    jobInfo.SalaryFrequency = Convert.ToInt32(model.SalaryFrequency.Value);

                List<EssentialCriteriaInfo> lst = new List<EssentialCriteriaInfo>();
                List<DesirableCriteriaInfo> lstDesi = new List<DesirableCriteriaInfo>();
                List<JobConsultantInfo> lstConsultant = new List<JobConsultantInfo>();
                List<JobLocation> locationlist = new List<JobLocation>();

                jobInfo.EssentialCriteriaList = lst;
                jobInfo.DesirableCriteriaList = lstDesi;
                jobInfo.ConsultantList = lstConsultant;
                jobInfo.LocationList = locationlist;

                jobInfo.JobId = Convert.ToInt32(JobDetailDataProvider.insertJobDetail(jobInfo));
                jobInfo.Version = 1;
                jobId = jobInfo.JobId;
                JobDetailEditDataProvider.insertJobDetailEdit(jobInfo, true);
            }
            else
            {
            }

            return jobId;
        }
 public ActionResult Reset(JobDetailInfo model, string returnUrl)
 {
     if (model != null)
     {
         model.TypeId = 0;
         model.SalaryMin = "";
         model.SalaryMax = "";
         model.ReferenceNo = "";
         model.Title = "";
         model.Bullet1 = "";
         model.Bullet2 = "";
         model.Bullet3 = "";
         model.Summary = "";
         model.JobContent = "";
         model.AdFooter = "";
         model.IsApprove = false;
         model.WebsiteURL = "";
         model.ClientId = 0;
         model.CreatedDate = DateTime.UtcNow;
         model.HotJob = false;
         model.SalaryCurrency = "";
         //model.ISCO08Id = Convert.ToInt32(string.IsNullOrEmpty(hdfOccupationId.Value) ? "-1" : hdfOccupationId.Value);
         //model.ISICRev4Id = Convert.ToInt32(string.IsNullOrEmpty(hdfIndustryId.Value) ? "-1" : hdfIndustryId.Value);
         model.SalaryFrequency = 0;
     }
     return View("postjob", model);
 }
 public ActionResult PostJob(JobDetailInfo model, string returnUrl)
 {
     if (model != null)
     {
         if (!string.IsNullOrEmpty(model.ReferenceNo))
         {
             int jobId = Save(model);
             if (jobId > 0)
             {
                 JobDetailDataProvider.updateJobApprove(jobId);
                 string referenceNo = model.ReferenceNo;
                 HistoryDataProvider history = new HistoryDataProvider();
                 HistoryInfo historyInfo = new HistoryInfo();
                 historyInfo.UserId = (Session["userID"] != null ? Convert.ToUInt32(Session["userID"]) : 0);
                 historyInfo.ModuleId = (int)HistoryInfo.Module.Job;
                 historyInfo.TypeId = (int)HistoryInfo.ActionType.Edit;
                 historyInfo.RecordId = Convert.ToUInt32(jobId);
                 historyInfo.Details = new List<HistoryDetailInfo>();
                 historyInfo.Details.Add(new HistoryDetailInfo { ColumnName = "approve", NewValue = referenceNo });
                 history.insertHistory(historyInfo);
                 return View("PostJob");
             }
         }
         else
         {
             return View("PostJob");
         }
     }
     return View("PostJob");
 }