public async Task <ShareConfigDTO> GetShareNameANdcode(string ShareName, string ShareCode, string ConnectionString)
        {
            ShareConfigDTO ShareConfigDTO = new ShareConfigDTO();
            await Task.Run(() =>
            {
                try
                {
                    using (NpgsqlDataReader dr = NPGSqlHelper.ExecuteReader(ConnectionString, CommandType.Text, "SELECT shareconfigid, sharename, sharecode, companycode, branchcode, series, serieslength, sharenamecode FROM tblmstshareconfig where upper(sharecode)='" + ManageQuote(ShareCode.ToUpper()) + "' and upper(sharename)='" + ManageQuote(ShareName.ToUpper()) + "' and statusid = " + Convert.ToInt32(Status.Active) + ";"))
                    {
                        while (dr.Read())
                        {
                            ShareConfigDTO.pshareconfigid = Convert.ToInt64(dr["shareconfigid"]);
                            ShareConfigDTO.psharename     = Convert.ToString(dr["sharename"]);
                            ShareConfigDTO.psharecode     = Convert.ToString(dr["sharecode"]);
                            ShareConfigDTO.pcompanycode   = Convert.ToString(dr["companycode"]);
                            ShareConfigDTO.pbranchcode    = Convert.ToString(dr["branchcode"]);
                            ShareConfigDTO.pseries        = Convert.ToString(dr["series"]);
                            ShareConfigDTO.pserieslength  = Convert.ToInt64(dr["serieslength"]);
                            ShareConfigDTO.psharenamecode = Convert.ToString(dr["sharenamecode"]);
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            });

            return(ShareConfigDTO);
        }
        public async Task <IActionResult> GetShareNameAndCodeDetails(string ShareName, string ShareCode)
        {
            ShareConfigDTO ShareConfigDTO = new ShareConfigDTO();

            try
            {
                ShareConfigDTO = await ObjShareConfig.GetShareNameANdcode(ShareName, ShareCode, Con);

                return(ShareConfigDTO != null?Ok(ShareConfigDTO) : (IActionResult)StatusCode(StatusCodes.Status204NoContent));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));

                throw;
            }
        }
        public IActionResult SaveShareNameAndCode([FromBody]  ShareConfigDTO ShareConfigDTO)
        {
            try
            {
                if (ObjShareConfig.SaveShareNameANdcode(ShareConfigDTO, Con))
                {
                    return(Ok(true));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status304NotModified));
                }
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));

                throw;
            }
        }
        public bool SaveShareNameANdcode(ShareConfigDTO ShareConfigDTO, string ConnectionString)
        {
            bool Issaved = false;

            StringBuilder SbInsert = new StringBuilder();

            try
            {
                con = new NpgsqlConnection(ConnectionString);
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                trans = con.BeginTransaction();
                if (ShareConfigDTO != null)
                {
                    if (string.IsNullOrEmpty(ShareConfigDTO.psharename))
                    {
                        ShareConfigDTO.psharename = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.psharecode))
                    {
                        ShareConfigDTO.psharecode = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.pcompanycode))
                    {
                        ShareConfigDTO.pcompanycode = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.pbranchcode))
                    {
                        ShareConfigDTO.pbranchcode = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.pseries))
                    {
                        ShareConfigDTO.pseries = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.psharenamecode))
                    {
                        ShareConfigDTO.psharenamecode = "";
                    }
                    if (string.IsNullOrEmpty(ShareConfigDTO.pshareconfigid.ToString()) || ShareConfigDTO.pshareconfigid == 0)
                    {
                        SbInsert.Append("INSERT INTO tblmstshareconfig(sharename, sharecode, companycode, branchcode,series, serieslength, sharenamecode, statusid, createdby, createddate) VALUES ('" + ManageQuote(ShareConfigDTO.psharename) + "','" + ManageQuote(ShareConfigDTO.psharecode) + "','" + ManageQuote(ShareConfigDTO.pcompanycode) + "','" + ManageQuote(ShareConfigDTO.pbranchcode) + "','" + ManageQuote(ShareConfigDTO.pseries) + "'," + ShareConfigDTO.pserieslength + ",'" + ManageQuote(ShareConfigDTO.psharenamecode) + "'," + Convert.ToInt32(Status.Active) + "," + ShareConfigDTO.pCreatedby + ",current_timestamp);");
                    }
                    else
                    {
                        SbInsert.Append("update tblmstshareconfig set sharename='" + ManageQuote(ShareConfigDTO.psharename) + "', sharecode='" + ManageQuote(ShareConfigDTO.psharecode) + "', companycode='" + ManageQuote(ShareConfigDTO.pcompanycode) + "', branchcode='" + ManageQuote(ShareConfigDTO.pbranchcode) + "',series='" + ManageQuote(ShareConfigDTO.pseries) + "', serieslength=" + ShareConfigDTO.pserieslength + ", sharenamecode='" + ManageQuote(ShareConfigDTO.psharenamecode) + "' where shareconfigid=" + ShareConfigDTO.pshareconfigid + ";");
                    }
                }
                if (Convert.ToString(SbInsert) != string.Empty)
                {
                    NPGSqlHelper.ExecuteNonQuery(trans, CommandType.Text, SbInsert.ToString());
                }
                trans.Commit();
                Issaved = true;
            }
            catch (Exception)
            {
                trans.Rollback();
                throw;
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Dispose();
                    con.Close();
                    con.ClearPool();
                    trans.Dispose();
                }
            }
            return(Issaved);
        }