public List <InsuranceRecomendationTransaction> GetInsuranceRecomendationByProjectId(int projectId)
        {
            List <InsuranceRecomendationTransaction> insuranceRecomendations = new List <InsuranceRecomendationTransaction>();

            try
            {
                Logger.LogInfo("Get: Insurance Recomendation information process start");

                DataTable dtfeesInvoice = DataBase.DBService.ExecuteCommand(string.Format(SELECT_INSURANCE_REC_BY_PLAN_ID, projectId));

                foreach (DataRow dr in dtfeesInvoice.Rows)
                {
                    DataTable dtFeesInvoiceDetails = DataBase.DBService.ExecuteCommand(string.Format(SELECT_INSURANCE_REC_DETAILS_BY, dr["Id"].ToString()));
                    InsuranceRecomendationTransaction insuranceRecomendation = convertToInsuranceRecomendationTransactionObject(dr, dtFeesInvoiceDetails);
                    insuranceRecomendations.Add(insuranceRecomendation);
                }
                Logger.LogInfo("Get: Insurance Recomendation details information process completed.");
                return(insuranceRecomendations);
            }
            catch (Exception ex)
            {
                StackTrace st = new StackTrace();
                StackFrame sf = st.GetFrame(0);
                MethodBase currentMethodName = sf.GetMethod();
                LogDebug(currentMethodName.Name, ex);
                return(null);
            }
        }
        private InsuranceRecomendationTransaction convertToInsuranceRecomendationTransactionObject(DataRow dr, DataTable dtFeesInvoiceDetails)
        {
            InsuranceRecomendationTransaction insuranceRecomendation = new InsuranceRecomendationTransaction();

            insuranceRecomendation.Id  = int.Parse(dr["Id"].ToString());
            insuranceRecomendation.PId = int.Parse(dr["PId"].ToString());
            if (dr["CId"] == DBNull.Value)
            {
                insuranceRecomendation.CId = null;
            }
            else if (dr["CId"].ToString() != "0")
            {
                insuranceRecomendation.CId  = int.Parse(dr["CId"].ToString());
                insuranceRecomendation.Name = DataBase.DBService.ExecuteCommandScalar(string.Format(GET_CLIENT_NAME_QUERY, insuranceRecomendation.CId));
            }
            else
            {
                insuranceRecomendation.CId = int.Parse(dr["CId"].ToString());
            }

            if (dr["SpouseId"] == DBNull.Value)
            {
                insuranceRecomendation.SpouseId = null;
            }
            else if (int.Parse(dr["SpouseId"].ToString()) > 0)
            {
                insuranceRecomendation.SpouseId = int.Parse(dr["SpouseId"].ToString());
                insuranceRecomendation.Name     = DataBase.DBService.ExecuteCommandScalar(string.Format(GET_SPOUSE_NAME_QUERY, insuranceRecomendation.SpouseId));
            }
            else
            {
                insuranceRecomendation.SpouseId = int.Parse(dr["SpouseId"].ToString());
            }


            insuranceRecomendation.SumAssured  = dr["SumAssured"] == DBNull.Value ? "" : dr["SumAssured"].ToString();
            insuranceRecomendation.Description = dr["Description"] == DBNull.Value ? "" : dr["Description"].ToString();

            insuranceRecomendation.InsuranceRecomendationDetails = new List <InsuranceRecomendationDetail>();
            foreach (DataRow dataRow in dtFeesInvoiceDetails.Rows)
            {
                InsuranceRecomendationDetail insuranceRecomendationDetail = new InsuranceRecomendationDetail();
                insuranceRecomendationDetail.InsRecMasterId = int.Parse(dataRow["InsuranceRecMasterId"].ToString());
                //insuranceRecomendationDetail.InsuranceCompayId = int.Parse(dataRow["InsuranceCompanyId"].ToString());
                insuranceRecomendationDetail.InsuranceCompanyName = dataRow.Field <string>("InsuranceCompanyName");

                insuranceRecomendationDetail.Term       = dataRow.Field <string>("Term");
                insuranceRecomendationDetail.SumAssured = dataRow.Field <string>("SumAssured");

                insuranceRecomendationDetail.Premium = dataRow["Premium"] == DBNull.Value ? 0 : double.Parse(dataRow["Premium"].ToString());

                insuranceRecomendation.InsuranceRecomendationDetails.Add(insuranceRecomendationDetail);
            }

            return(insuranceRecomendation);
        }
        public Result Update(InsuranceRecomendationTransaction transaction)
        {
            var result = new Result();

            try
            {
                InsuranceRecomendationService insuranceRecomendationService = new InsuranceRecomendationService();
                insuranceRecomendationService.Update(transaction);
                result.IsSuccess = true;
            }
            catch (Exception exception)
            {
                result.IsSuccess     = false;
                result.ExceptionInfo = exception;
            }
            return(result);
        }
        public void Update(InsuranceRecomendationTransaction transaction)
        {
            try
            {
                string clientName = DataBase.DBService.ExecuteCommandScalar(string.Format(GET_CLIENT_NAME_QUERY, 0));

                DataBase.DBService.BeginTransaction();
                DataBase.DBService.ExecuteCommandString(string.Format(UPDATE_INSURANCE_REC,
                                                                      (transaction.CId == null) ? 0 : transaction.CId,
                                                                      transaction.SpouseId == null ? 0 : transaction.SpouseId,
                                                                      transaction.SumAssured,
                                                                      transaction.Description,
                                                                      transaction.Id), true);



                foreach (InsuranceRecomendationDetail insuranceRecomendationDetail in transaction.InsuranceRecomendationDetails)
                {
                    DataBase.DBService.ExecuteCommandString(string.Format(DELETE_INSURANCE_REC_DETAIL_BY_NAME_ID, insuranceRecomendationDetail.InsuranceCompanyName, transaction.Id), true);

                    DataBase.DBService.ExecuteCommandString(string.Format(INSERT_INSURANCE_REC_DETAIL,
                                                                          transaction.Id,
                                                                          insuranceRecomendationDetail.InsuranceCompanyName,
                                                                          insuranceRecomendationDetail.Term,
                                                                          insuranceRecomendationDetail.SumAssured,
                                                                          insuranceRecomendationDetail.Premium), true);
                }

                DataBase.DBService.CommitTransaction();
                //return mid;
            }
            catch (Exception ex)
            {
                DataBase.DBService.RollbackTransaction();
                StackTrace st = new StackTrace();
                StackFrame sf = st.GetFrame(0);
                MethodBase currentMethodName = sf.GetMethod();
                LogDebug(currentMethodName.Name, ex);
                throw ex;
            }
        }
 private int getInsuraceRecMasterId(InsuranceRecomendationTransaction insuranceRecomendationTransaction)
 {
     return(int.Parse(DataBase.DBService.ExecuteCommandScalar(SELECT_INSURANCE_REC_MASTER_BY_INFORAMTION)));
 }