locked
C# Web Service handle multiple elements RRS feed

  • Question

  • Hi, May i know that anyone know how to handle multiple elements in SOAP xml?

    I am able to create web service that add single record from SOAP xml. But my problems now is when submit multiple elements from SOAP, it only able add in single record. How my web service can read all elements in SOAP xml and add in all? Please help

      [WebMethod]
            public int Asset(string AssetNo, string SubNumber, string AssetNo2, string SubNumber2, string Category, string Category2, string CompanyCode, string Description1, string Description2, string SerialNo, string InventoryNo, string UOM, string StartDate, string AcqDate,
                string LifeSpan, string BusinessEntity, string CostCenter, string PlatNumber, string BuildingCode, string DepartmentCode, string LevelCode, string UnitCode, string Owner, string Email, string VendorCode, string Manufacturer,
                string Decommissioned, string Cost, string TransType, string TransType2,string Reversal)
            {
                          

                var con = new SqlConnection(ConnectionState());

                con.Open();

                string strSQL = "";
                int row = 0;

                //SPLIT BY '/'
               string[] arrBuilding = BuildingCode.Split('/');
               string[] arrDepartment = DepartmentCode.Split('/');
               string[] arrLevel = LevelCode.Split('/');
               string[] arrUnit = UnitCode.Split('/');
               string[] arrOwner = Owner.Split('/');
               string[] arrVendor = VendorCode.Split('/');

               string[] arrAcqDate;
               int intAcqYear = 0;// IsDateYear(AcqDate);
               int intAcqMonth = 0;// IsDateMonth(AcqDate);

               if (AcqDate != string.Empty)
               {
                   arrAcqDate = AcqDate.Split('/');
                   intAcqYear = Convert.ToInt16(arrAcqDate[0]);
                   intAcqMonth = Convert.ToInt16(arrAcqDate[1]);

               }
                //CHECK TRANSACTION TYPE - NEW ACQUISITION OR RETIREMENT OR TRANSFER
                string ActionFor = "";

                strSQL = "SELECT ActionFor FROM TransType WHERE TransTypeCode=@TransType";
                var cmd = new SqlCommand(strSQL, con);
                cmd.Parameters.Add(new SqlParameter("@TransType", TransType));
                ActionFor = cmd.ExecuteScalar().ToString();
                cmd.Dispose();

              
                if (TransType2 == string.Empty)
                {

                    //NEW,TRANSFER,RETIREMENT
                    if (ActionFor == "NEW")
                    {

                        if (Reversal == string.Empty)
                        {

                            strSQL = "INSERT INTO Asset(AssetNo,SubNumber,CategoryCode,CompanyCode,Description1,Description2,SerialNo,InventoryNo,UOM,StartDate,AcqYear,AcqMonth,LifeSpan," +
                            "BusinessEntity,CostCenter,PlatNumber,BuildingCode,DepartmentCode,LevelCode,UnitCode,OwnerCode,VendorCode,Manufacturer,Cost," +
                            "TransType,InService,BookValue,Remarks,IsFixedAsset,StatusCode,DisposeValue,blnInService,blnDecommission,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted,blnLVA) " +
                            "VALUES(@AssetNo,@SubNumber,@CategoryCode,@CompanyCode,@Description1,@Description2,@SerialNo,@InventoryNo,@UOM,@StartDate,@AcqYear,@AcqMonth,@LifeSpan," +
                            "@BusinessEntity,@CostCenter,@PlatNumber,@BuildingCode,@DepartmentCode,@LevelCode,@UnitCode,@OwnerCode,@VendorCode,@Manufacturer,@Cost," +
                            "@TransType,@InService,0,@Remarks,@IsFixedAsset,@StatusCode,0,@blnInService,@blnDecommission,GetDate(),'SAP',GetDate(),'SAP',0,0) ";

                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                            int intSubnumber = 0;
                            if (SubNumber != string.Empty)
                            {
                                intSubnumber = Convert.ToInt16(SubNumber);
                            }
                            cmd.Parameters.Add(new SqlParameter("@SubNumber", intSubnumber));
                            cmd.Parameters.Add(new SqlParameter("@CategoryCode", Category));
                            cmd.Parameters.Add(new SqlParameter("@CompanyCode", CompanyCode));
                            cmd.Parameters.Add(new SqlParameter("@Description1", Description1));
                            cmd.Parameters.Add(new SqlParameter("@Description2", Description2));
                            cmd.Parameters.Add(new SqlParameter("@SerialNo", SerialNo));
                            cmd.Parameters.Add(new SqlParameter("@InventoryNo", InventoryNo));
                            cmd.Parameters.Add(new SqlParameter("@UOM", UOM));
                            cmd.Parameters.Add(new SqlParameter("@StartDate", StartDate));
                            cmd.Parameters.Add(new SqlParameter("@AcqYear", intAcqYear));
                            cmd.Parameters.Add(new SqlParameter("@AcqMonth", intAcqMonth));

                            cmd.Parameters.Add(new SqlParameter("@LifeSpan", LifeSpan));
                            cmd.Parameters.Add(new SqlParameter("@BusinessEntity", BusinessEntity));
                            cmd.Parameters.Add(new SqlParameter("@CostCenter", CostCenter));
                            cmd.Parameters.Add(new SqlParameter("@PlatNumber", PlatNumber));

                            cmd.Parameters.Add(new SqlParameter("@BuildingCode", arrBuilding[0]));
                            cmd.Parameters.Add(new SqlParameter("@DepartmentCode", arrDepartment[0]));
                            cmd.Parameters.Add(new SqlParameter("@LevelCode", arrLevel[0]));
                            cmd.Parameters.Add(new SqlParameter("@UnitCode", arrUnit[0]));
                            cmd.Parameters.Add(new SqlParameter("@OwnerCode", arrOwner[0]));
                            cmd.Parameters.Add(new SqlParameter("@VendorCode", arrVendor[0]));
                            cmd.Parameters.Add(new SqlParameter("@Manufacturer", Manufacturer));

                            //cmd.Parameters.Add(new SqlParameter("@Decommissioned", DBNull));
                            decimal decCost = 0;
                            if (Cost != string.Empty)
                            {
                                decCost = Convert.ToDecimal(Cost);
                            }
                            cmd.Parameters.Add(new SqlParameter("@Cost", decCost));
                            cmd.Parameters.Add(new SqlParameter("@TransType", TransType));
                            cmd.Parameters.Add(new SqlParameter("@InService", StartDate));
                            // cmd.Parameters.Add(new SqlParameter("@BookValue",1));
                            cmd.Parameters.Add(new SqlParameter("@Remarks", ""));
                            cmd.Parameters.Add(new SqlParameter("@IsFixedAsset", false));
                            cmd.Parameters.Add(new SqlParameter("@StatusCode", ""));
                            //cmd.Parameters.Add(new SqlParameter("@DisposeValue",1));
                            cmd.Parameters.Add(new SqlParameter("@blnInService", true));
                            cmd.Parameters.Add(new SqlParameter("@blnDecommission", false));

                            row = cmd.ExecuteNonQuery();
                            cmd.Dispose();
                        }

                        else
                        {
                            //REVERSAL - DELETE ASSET
                            strSQL = "DELETE FROM Asset WHERE AssetNo=@AssetNo";
                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                            row = cmd.ExecuteNonQuery();
                            cmd.Dispose();

                        }
                    }

                    else if (ActionFor == "RETIREMENT")
                        {
                            if (Reversal == string.Empty)
                            {
                                //RETIREMENT
                                strSQL = "UPDATE Asset SET blnDecommission=1,Decommissioned=@Decommissioned WHERE AssetNo=@AssetNo";
                                cmd = new SqlCommand(strSQL, con);
                                cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                                cmd.Parameters.Add(new SqlParameter("@Decommissioned", Decommissioned));
                                row = cmd.ExecuteNonQuery();
                                cmd.Dispose();
                            }
                            else
                            {
                                //RETIREMENT REVERSAL
                                strSQL = "UPDATE Asset SET blnDecommission=0,Decommissioned=NULL WHERE AssetNo=@AssetNo";
                                cmd = new SqlCommand(strSQL, con);
                                cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                                row = cmd.ExecuteNonQuery();
                                cmd.Dispose();
                            }

                        }

                    
                    //else  if (ActionFor == "DELETE")
                    //    {
                    //        //DELETE
                    //        strSQL = "DELETE FROM Asset WHERE AssetNo=@AssetNo";
                    //        cmd = new SqlCommand(strSQL, con);
                    //        cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                    //        cmd.ExecuteNonQuery();
                    //        cmd.Dispose();
                    //    }

                    //else if (ActionFor == "REVERSE RETIREMENT")
                    //{
                    //    //DELETE
                    //    strSQL = "UPDATE Asset SET blnDecommission=0, Decommissioned=NULL WHERE AssetNo=@AssetNo";
                    //    cmd = new SqlCommand(strSQL, con);
                    //    cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                    //    cmd.ExecuteNonQuery();
                    //    cmd.Dispose();
                    //}
                }
                else
                {
                    if (ActionFor == "TRANSFER")
                    {
                        if (Reversal == string.Empty)
                        {
                            //RETIREMENT
                            strSQL = "UPDATE Asset SET blnDecommission=1,Decommissioned=@Decommissioned WHERE AssetNo=@AssetNo";
                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                            cmd.Parameters.Add(new SqlParameter("@Decommissioned", Decommissioned));
                            cmd.ExecuteNonQuery();
                            cmd.Dispose();


                            if (AcqDate != string.Empty)
                            {
                                arrAcqDate = AcqDate.Split('/');
                                intAcqYear = Convert.ToInt16(arrAcqDate[0]);
                                intAcqMonth = Convert.ToInt16(arrAcqDate[1]);

                            }

                            //NEW ACQUISITION
                            strSQL = "INSERT INTO Asset(AssetNo,SubNumber,CategoryCode,CompanyCode,Description1,Description2,SerialNo,InventoryNo,UOM,StartDate,AcqYear,AcqMonth,LifeSpan," +
                            "BusinessEntity,CostCenter,PlatNumber,BuildingCode,DepartmentCode,LevelCode,UnitCode,OwnerCode,VendorCode,Manufacturer,Decommissioned,Cost," +
                            "TransType,InService,BookValue,Remarks,IsFixedAsset,StatusCode,DisposeValue,blnInService,blnDecommission,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted,blnLVA) " +
                            "VALUES(@AssetNo,@SubNumber,@CategoryCode,@CompanyCode,@Description1,@Description2,@SerialNo,@InventoryNo,@UOM,@StartDate,@AcqYear,@AcqMonth,@LifeSpan," +
                            "@BusinessEntity,@CostCenter,@PlatNumber,@BuildingCode,@DepartmentCode,@LevelCode,@UnitCode,@OwnerCode,@VendorCode,@Manufacturer,@Decommissioned,@Cost," +
                            "@TransType,@InService,0,@Remarks,@IsFixedAsset,@StatusCode,0,@blnInService,@blnDecommission,GetDate(),'SAP',GetDate(),'SAP',0,0) ";

                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo2));
                            int intSubnumber2 = 0;
                            if (SubNumber2 != string.Empty)
                            {
                                intSubnumber2 = Convert.ToInt16(SubNumber2);
                            }
                            cmd.Parameters.Add(new SqlParameter("@SubNumber", intSubnumber2));
                            cmd.Parameters.Add(new SqlParameter("@CategoryCode", Category2));
                            cmd.Parameters.Add(new SqlParameter("@CompanyCode", CompanyCode));
                            cmd.Parameters.Add(new SqlParameter("@Description1", Description1));
                            cmd.Parameters.Add(new SqlParameter("@Description2", Description2));
                            cmd.Parameters.Add(new SqlParameter("@SerialNo", SerialNo));
                            cmd.Parameters.Add(new SqlParameter("@InventoryNo", InventoryNo));
                            cmd.Parameters.Add(new SqlParameter("@UOM", UOM));
                            cmd.Parameters.Add(new SqlParameter("@StartDate", StartDate));
                            cmd.Parameters.Add(new SqlParameter("@AcqYear", intAcqYear));
                            cmd.Parameters.Add(new SqlParameter("@AcqMonth", intAcqMonth));

                            cmd.Parameters.Add(new SqlParameter("@LifeSpan", LifeSpan));
                            cmd.Parameters.Add(new SqlParameter("@BusinessEntity", BusinessEntity));
                            cmd.Parameters.Add(new SqlParameter("@CostCenter", CostCenter));
                            cmd.Parameters.Add(new SqlParameter("@PlatNumber", PlatNumber));

                            cmd.Parameters.Add(new SqlParameter("@BuildingCode", arrBuilding[0]));
                            cmd.Parameters.Add(new SqlParameter("@DepartmentCode", arrDepartment[0]));
                            cmd.Parameters.Add(new SqlParameter("@LevelCode", arrLevel[0]));
                            cmd.Parameters.Add(new SqlParameter("@UnitCode", arrUnit[0]));
                            cmd.Parameters.Add(new SqlParameter("@OwnerCode", arrOwner[0]));
                            cmd.Parameters.Add(new SqlParameter("@VendorCode", arrVendor[0]));

                            cmd.Parameters.Add(new SqlParameter("@Manufacturer", Manufacturer));
                            cmd.Parameters.Add(new SqlParameter("@Decommissioned", Decommissioned));
                            decimal decCost = 0;
                            if (Cost != string.Empty)
                            {
                                decCost = Convert.ToDecimal(Cost);
                            }
                            cmd.Parameters.Add(new SqlParameter("@Cost", decCost));
                            cmd.Parameters.Add(new SqlParameter("@TransType", TransType2));
                            cmd.Parameters.Add(new SqlParameter("@InService", StartDate));
                            // cmd.Parameters.Add(new SqlParameter("@BookValue",1));
                            cmd.Parameters.Add(new SqlParameter("@Remarks", ""));
                            cmd.Parameters.Add(new SqlParameter("@IsFixedAsset", false));
                            cmd.Parameters.Add(new SqlParameter("@StatusCode", ""));
                            //cmd.Parameters.Add(new SqlParameter("@DisposeValue",1));
                            cmd.Parameters.Add(new SqlParameter("@blnInService", true));
                            cmd.Parameters.Add(new SqlParameter("@blnDecommission", false));
                            row = cmd.ExecuteNonQuery();
                            cmd.Dispose();
                        }

                        else
                        {
                            //REVERSE ASSETNO 1
                            strSQL = "UPDATE Asset SET blnDecommission=0,Decommissioned=NULL WHERE AssetNo=@AssetNo";
                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo));
                            row = cmd.ExecuteNonQuery();
                            cmd.Dispose();

                            //DELETE ASSETNO 2
                            strSQL = "DELETE FROM Asset WHERE AssetNo=@AssetNo";
                            cmd = new SqlCommand(strSQL, con);
                            cmd.Parameters.Add(new SqlParameter("@AssetNo", AssetNo2));
                            row = cmd.ExecuteNonQuery();
                            cmd.Dispose();
                        }
                    }

                 }


                if (row > 0)
                {
                    String strUser = "SAP";

                    //IF NOT EXISTS THEN ADD IN

                    //if (CompanyCode != String.Empty)
                    //{
                    //    //COMPANY
                    //    strSQL = "IF NOT EXISTS (SELECT * FROM Company WHERE CompanyCode = @CompanyCode) " +
                    //    "BEGIN " +
                    //    "INSERT INTO Company(CompanyCode, CompanyName,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@CompanyCode, @CompanyCode,GetDate(),@User,GetDate(),@User,0) " +
                    //    "END ";
                    //    cmd = new SqlCommand(strSQL, con);
                    //    cmd.Parameters.Add(new SqlParameter("@CompanyCode", CompanyCode));
                    //    cmd.Parameters.Add(new SqlParameter("@User", strUser));
                    //    cmd.ExecuteNonQuery();
                    //    cmd.Dispose();
                    //}

                    if (arrBuilding[0] != String.Empty)
                    {
                        //BUILDING
                        strSQL = "IF NOT EXISTS (SELECT * FROM Building WHERE BuildingCode = @BuildingCode) " +
                        "BEGIN " +
                        "INSERT INTO Building(BuildingCode, Description,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@BuildingCode, @Description,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@BuildingCode", arrBuilding[0]));
                        cmd.Parameters.Add(new SqlParameter("@Description", arrBuilding[1]));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                    if (arrDepartment[0] != String.Empty)
                    {
                        //DEPARTMENT
                        strSQL = "IF NOT EXISTS (SELECT * FROM Department WHERE DepartmentCode = @DepartmentCode) " +
                        "BEGIN " +
                        "INSERT INTO Department(DepartmentCode, Description,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@DepartmentCode, @Description,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@DepartmentCode", arrDepartment[0]));
                        cmd.Parameters.Add(new SqlParameter("@Description", arrDepartment[1]));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                    if (arrLevel[0] != String.Empty)
                    {
                        //LEVEL
                        strSQL = "IF NOT EXISTS (SELECT * FROM Level WHERE LevelCode = @LevelCode) " +
                        "BEGIN " +
                        "INSERT INTO Level(LevelCode, Description,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@LevelCode, @Description,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@LevelCode", arrLevel[0]));
                        cmd.Parameters.Add(new SqlParameter("@Description", arrLevel[1]));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                    if (arrUnit[0] != String.Empty)
                    {
                        //UNIT
                        strSQL = "IF NOT EXISTS (SELECT * FROM Unit WHERE UnitCode = @UnitCode) " +
                        "BEGIN " +
                        "INSERT INTO Unit(UnitCode, Description,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@UnitCode, @Description,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@UnitCode", arrUnit[0]));
                        cmd.Parameters.Add(new SqlParameter("@Description", arrUnit[1]));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                    if (arrOwner[0] != String.Empty)
                    {
                        //OWNER
                        strSQL = "IF NOT EXISTS (SELECT * FROM Owner WHERE OwnerCode = @OwnerCode) " +
                        "BEGIN " +
                        "INSERT INTO Owner(OwnerCode, Name,Email,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@OwnerCode, @Name, @Email,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@OwnerCode", arrOwner[0]));
                        cmd.Parameters.Add(new SqlParameter("@Name", arrOwner[1]));
                        cmd.Parameters.Add(new SqlParameter("@Email", Email));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                    if (arrVendor[0] != String.Empty)
                    {
                        //VENDOR
                        strSQL = "IF NOT EXISTS (SELECT * FROM Vendor WHERE VendorCode = @VendorCode) " +
                        "BEGIN " +
                        "INSERT INTO Vendor(VendorCode, Description,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,IsDeleted) VALUES(@VendorCode, @Description,GetDate(),@User,GetDate(),@User,0) " +
                        "END ";
                        cmd = new SqlCommand(strSQL, con);
                        cmd.Parameters.Add(new SqlParameter("@VendorCode", arrVendor[0]));
                        cmd.Parameters.Add(new SqlParameter("@Description", arrVendor[1]));
                        cmd.Parameters.Add(new SqlParameter("@User", strUser));
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }

                }

                con.Close();

                return row;

            }


    chew

    • Moved by CoolDadTx Friday, April 13, 2018 6:40 PM ASP.NET related
    Friday, April 13, 2018 4:12 PM

All replies

  • Please post questions related to web development in the ASP.NET forums.

    Michael Taylor http://www.michaeltaylorp3.net

    Friday, April 13, 2018 6:40 PM