Esempio n. 1
0
        //Constructor por defecto
        public clsMainPageVM()
        {
            //SignalR();
            //Relleno la lista de las casillas
            clsUtil listaCasillasConTopo = new clsUtil();

            //this.ListaTopos = listaCasillasConTopo.listaConPosicionTopoAsignada();
            this.ListaTopos = listaCasillasConTopo.listaCasillasTopoInicial();
            comandoResult   = new DelegateCommand(Result);
        }
Esempio n. 2
0
 public static string[] AC_GetVendorPN(string term)
 {
     try
     {
         clsUtil  u = new clsUtil();
         string[] x = u.GetJSONFromDB(DBK.SP.spAC_OTSVENDORPN, "%" + term + "%", DBK.strVENDORPARTNUMBER);
         return(x);
     }
     catch (Exception ex)
     {
         string strErr = ex.Message + ex.StackTrace;
         return(new string[0]);
     }
 }
Esempio n. 3
0
 public static string[] AC_GetProduct(string term)
 {
     try
     {
         clsUtil  u = new clsUtil();
         string[] x = u.GetJSONFromDB(DBK.SP.spAC_OTSPRODUCT, "%" + term + "%", DBK.strPRODUCT);
         return(x);
     }
     catch (Exception ex)
     {
         string strErr = ex.Message + ex.StackTrace;
         return(new string[0]);
     }
 }
Esempio n. 4
0
        public static string[] GetAssyNames(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_ASYNAMES, "%" + term + "%", DBK.strNAME);
                return(x);
            } catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 5
0
        public static string[] GetStateProvince(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_LOCSTATEPROVINCE, "%" + term + "%", DBK.strSTATEPROVINCE);
                return(x);
            }
            catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 6
0
        public static string[] GetStreetAddress(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_LOCADDRESS, "%" + term + "%", DBK.strADDRESS);
                return(x);
            }
            catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 7
0
        public static string[] GetCountry(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_LOCCOUNTRY, "%" + term + "%", DBK.strCOUNTRY);
                return(x);
            }
            catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 8
0
        public static string[] GetPostalCode(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_LOCPOSTALCODE, "%" + term + "%", DBK.strPOSTALCODE);
                return(x);
            }
            catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 9
0
        public static string[] GetSubInventory(string term)
        {
            try
            {
                clsUtil             u  = new clsUtil();
                List <SqlParameter> ps = new List <SqlParameter>();

                string[] x = u.GetJSONFromDB(DBK.SP.spAC_INVSUBINVENTORY, "%" + term + "%", DBK.strSUBINV);
                return(x);
            }
            catch (Exception ex)
            {
                string strErr = ex.Message + ex.StackTrace;
                return(new string[0]);
            }
        }
Esempio n. 10
0
 public static string[] GetAssyBOMRevs(string term)
 {
     try
     {
         string[]            strSpl   = { AAAK.DELIM };
         string[]            arrTerms = term.Split(strSpl, StringSplitOptions.None);
         List <SqlParameter> sqlPs    = new List <SqlParameter>();
         sqlPs.Add(new SqlParameter("@strName", arrTerms[0]));
         sqlPs.Add(new SqlParameter("@strRevision", arrTerms[1]));
         clsUtil  u = new clsUtil();
         string[] x = u.GetJSONFromDB(DBK.SP.spAC_ASYBOMREVSFORGIVENASYNAMEANDREV, "", DBK.intBOMREV, ps: sqlPs);
         return(x);
     }
     catch (Exception ex)
     {
         string strErr = ex.Message + ex.StackTrace;
         return(new string[0]);
     }
 }
Esempio n. 11
0
        // POST api/<controller>

        public HttpResponseMessage Post(HttpRequestMessage xmlreq)//(HttpRequestMessage xmlreq)
        {
            //HttpRequestMessage xmlreq = null;
            // Reading data as XML string to log to files - In case message structure is changed
            string EchoToken = "";
            var    xmlDoc    = new XmlDocument();

            try
            {
                string smlResult = xmlreq.Content.ReadAsStringAsync().Result;
                smlResult = smlResult.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "").Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", "");

                //smlResult ="<OTA_HotelRatePlanRQ xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" SummaryOnly=\"true\" Version=\"1\" EchoToken=\"a9b04a84-edc2-4639-8a55-829ec506b884\" xmlns=\"http://www.opentravel.org/OTA/2003/05\"><RatePlans><RatePlan><HotelRef HotelCode=\"44718\" /></RatePlan></RatePlans></OTA_HotelRatePlanRQ>";
                MemoryStream stream = new MemoryStream();
                StreamWriter writer = new StreamWriter(stream);
                writer.Write(smlResult);
                writer.Flush();
                stream.Position = 0;
                //smlResult = smlResult.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", "");
                xmlDoc.Load(stream);
                //xmlDoc.Load(xmlreq.Content.ReadAsStreamAsync().Result);
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage()
                {
                    Content = new StringContent("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"a9b04a84-edc2-4639-8a55-829ec506b884\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"" + ex.Message + "\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelRatePlanRS>", Encoding.UTF8, "application/xml")
                });
            }
            var str = xmlDoc.InnerXml;

            clsUtil objUtil = new clsUtil();
            Int64   iID     = objUtil.UpdateChannelMgrTracker(0, 2, str);

            if (str == null)
            {
                return(null);
            }

            #region "OTA_HotelRatePlan -- Fetch Room Rate Plan information"
            else if (str.IndexOf("OTA_HotelRatePlanRQ") > 0)
            {
                try
                {
                    int    i = 0, iTotalRows = 0;
                    string SummaryOnly = xmlDoc.GetElementsByTagName("OTA_HotelRatePlanRQ")[0].Attributes["SummaryOnly"].Value;
                    EchoToken = xmlDoc.GetElementsByTagName("OTA_HotelRatePlanRQ")[0].Attributes["EchoToken"] != null?xmlDoc.GetElementsByTagName("OTA_HotelRatePlanRQ")[0].Attributes["EchoToken"].Value : "";

                    string sStartDate = "", sEndDate = "", HotelCode = "";

                    if (SummaryOnly == "false") //If SummaryOnly =true means requesting only for room rateplan information. If SummaryOnly=false means requesting for rates
                    {
                        sStartDate = xmlDoc.GetElementsByTagName("DateRange")[0].Attributes["Start"].Value;
                        sEndDate   = xmlDoc.GetElementsByTagName("DateRange")[0].Attributes["End"].Value;
                    }

                    HotelCode = xmlDoc.GetElementsByTagName("HotelRef")[0].Attributes["HotelCode"].Value;

                    SqlParameter[] MyParam = new SqlParameter[4];
                    MyParam[0] = new SqlParameter("@HotelCode", HotelCode);
                    MyParam[1] = new SqlParameter("@Rates", SummaryOnly);
                    MyParam[2] = new SqlParameter("@Start", sStartDate);
                    MyParam[3] = new SqlParameter("@End", sEndDate);

                    DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.AppSettings["ConnectionString"].ToString(), CommandType.StoredProcedure, "uspGetOFRHotelRPForMaximojoChannelMgr", MyParam);

                    StringBuilder sb = new StringBuilder();
                    sb.Append("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\">");

                    if (ds != null && ds.Tables.Count > 3 && ds.Tables[1] != null && ds.Tables[1].Rows.Count > 0)
                    {
                        sb.Append("<Success/>");
                        sb.Append("<RatePlans HotelCode=\"" + HotelCode + "\">");

                        if (SummaryOnly == "true") //If SummaryOnly =true means requesting only for room rateplan information. If SummaryOnly=false means requesting for rates
                        {
                            foreach (DataRow dr in ds.Tables[1].Rows)
                            {
                                sb.Append("<RatePlan CurrencyCode=\"" + ds.Tables[0].Rows[0]["sCurrencyCode"].ToString() + "\" RatePlanCode=\"" + dr["iRPId"].ToString() + "\" RatePlanStatusType=\"" + dr["cStatus"].ToString() + "\" >");

                                if (ds != null && ds.Tables[2] != null && ds.Tables[2].Rows.Count > 0)
                                {
                                    sb.Append("<Rates>");
                                    foreach (DataRow dr1 in ds.Tables[2].Rows)
                                    {
                                        if (dr["iRPId"].ToString() == dr1["iRPId"].ToString())
                                        {
                                            sb.Append("<Rate InvCode=\"" + dr1["sRoomName"].ToString() + "\" InvTypeCode=\"" + dr1["iRoomId"].ToString() + "\"/>");
                                        }
                                    }
                                    sb.Append("</Rates>");
                                }
                                sb.Append("<Description Name=\"" + dr["sRatePlan"].ToString() + "\">");
                                sb.Append("<Text Language=\"USENGLISH\">" + dr["sRatePlan"].ToString() + "</Text>");
                                sb.Append("</Description>");
                                sb.Append("</RatePlan>");
                            }
                        }
                        else
                        {
                            foreach (DataRow dr in ds.Tables[1].Rows)
                            {
                                sb.Append("<RatePlan CurrencyCode=\"" + ds.Tables[0].Rows[0]["sCurrencyCode"].ToString() + "\" End=\"" + dr["dtStayDayEnd"].ToString() + "\" RatePlanCode=\"" + dr["iRPPromoId"].ToString() + "\" RatePlanStatusType=\"" + dr["cStatus"].ToString() + "\" Start=\"" + dr["dtStayDayStart"].ToString() + "\">");

                                if (ds != null && ds.Tables[2] != null && ds.Tables[2].Rows.Count > 0)
                                {
                                    sb.Append("<Rates>");
                                    i = 1;
                                    foreach (DataRow dr1 in ds.Tables[2].Rows)
                                    {
                                        if (dr["iRPPromoId"].ToString() == dr1["iRPPromoId"].ToString() && dr["dtStayDayStart"].ToString() == dr1["dtStayDayStart"].ToString())
                                        {
                                            iTotalRows = Convert.ToInt16(dr1["Cnt"].ToString());

                                            foreach (DataRow dr2 in ds.Tables[3].Rows)
                                            {
                                                if (dr1["iRPPromoId"].ToString() == dr2["iRPPromoId"].ToString() && dr1["iRoomId"].ToString() == dr2["iRoomId"].ToString() && dr1["dtStayDayStart"].ToString() == dr2["dtStayDayStart"].ToString())
                                                {
                                                    if (i == 1)
                                                    {
                                                        sb.Append("<Rate InvTypeCode=\"" + dr1["iRoomId"].ToString() + "\" End=\"" + dr["dtStayDayEnd"].ToString() + "\" Start=\"" + dr1["dtStayDayStart"].ToString() + "\">");
                                                        sb.Append("<BaseByGuestAmts>");
                                                        sb.Append("<BaseByGuestAmt AmountBeforeTax=\"" + dr2["BeforeTax"].ToString() + "\" NumberOfGuests=\"" + dr2["iOccupancy"].ToString() + "\"/>");
                                                    }
                                                    if (i == iTotalRows)
                                                    {
                                                        if (i > 1)
                                                        {
                                                            sb.Append("<BaseByGuestAmt AmountBeforeTax=\"" + dr2["BeforeTax"].ToString() + "\" NumberOfGuests=\"" + dr2["iOccupancy"].ToString() + "\"/>");
                                                        }
                                                        sb.Append("</BaseByGuestAmts>");
                                                        sb.Append("<AdditionalGuestAmounts>");
                                                        sb.Append("<AdditionalGuestAmount AgeQualifyingCode=\"10\" Amount=\"" + ds.Tables[0].Rows[0]["dExtraBedCharges"].ToString() + "\"/>");
                                                        sb.Append("<AdditionalGuestAmount AgeQualifyingCode=\"8\" Amount=\"" + ds.Tables[0].Rows[0]["dExtraBedChargesChild"].ToString() + "\"/>");
                                                        sb.Append("</AdditionalGuestAmounts>");
                                                        sb.Append("</Rate>");
                                                        i = 1;
                                                        break;
                                                    }
                                                    if (i > 1)
                                                    {
                                                        sb.Append("<BaseByGuestAmt AmountBeforeTax=\"" + dr2["BeforeTax"].ToString() + "\" NumberOfGuests=\"" + dr2["iOccupancy"].ToString() + "\"/>");
                                                    }
                                                    i++;
                                                }
                                            }
                                        }
                                    }
                                    sb.Append("</Rates>");
                                }

                                sb.Append("</RatePlan>");
                            }
                        }
                        sb.Append("</RatePlans>");
                        sb.Append("</OTA_HotelRatePlanRS>");

                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/xml")
                        });
                    }
                    else if (ds != null && ds.Tables.Count == 1)
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"" + ds.Tables[0].Rows[0]["ErrDesc"].ToString() + "\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelRatePlanRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                    else
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"Invalid details\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelRatePlanRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                }
                catch (Exception ex)
                {
                    return(new HttpResponseMessage()
                    {
                        Content = new StringContent("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"" + ex.Message + "\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelRatePlanRS>", Encoding.UTF8, "application/xml")
                    });
                }
            }
            #endregion

            #region "OTA_HotelAvailGet -- Fetch the availability, stop sell status and minimum stays for one or more room rate plans for a single hotel."
            else if (str.IndexOf("OTA_HotelAvailGetRQ") > 0)
            {
                try
                {
                    string TransactionIdentifier = "";
                    if (xmlDoc.GetElementsByTagName("OTA_HotelAvailGetRQ")[0].Attributes["TransactionIdentifier"] != null)
                    {
                        TransactionIdentifier = xmlDoc.GetElementsByTagName("OTA_HotelAvailGetRQ")[0].Attributes["TransactionIdentifier"].Value;
                    }


                    EchoToken = xmlDoc.GetElementsByTagName("OTA_HotelAvailGetRQ")[0].Attributes["EchoToken"] != null?xmlDoc.GetElementsByTagName("OTA_HotelAvailGetRQ")[0].Attributes["EchoToken"].Value : "";

                    string sStartDate = "", sEndDate = "", HotelCode = "";

                    sStartDate = xmlDoc.GetElementsByTagName("DateRange")[0].Attributes["Start"].Value;
                    sEndDate   = xmlDoc.GetElementsByTagName("DateRange")[0].Attributes["End"].Value;

                    HotelCode = xmlDoc.GetElementsByTagName("HotelRef")[0].Attributes["HotelCode"].Value;

                    SqlParameter[] MyParam = new SqlParameter[3];
                    MyParam[0] = new SqlParameter("@HotelCode", HotelCode);
                    MyParam[1] = new SqlParameter("@Start", sStartDate);
                    MyParam[2] = new SqlParameter("@End", sEndDate);

                    DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.AppSettings["ConnectionString"].ToString(), CommandType.StoredProcedure, "uspGetOFRHotelARIForMaximojoChannelMgr", MyParam);

                    StringBuilder sb = new StringBuilder();
                    sb.Append("<OTA_HotelAvailGetRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\">");

                    if (ds != null && ds.Tables.Count == 1 && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0]["cStatus"] == "0")
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelAvailGetRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"" + ds.Tables[0].Rows[0]["ErrDesc"].ToString() + "\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelAvailGetRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                    else if (ds != null && ds.Tables.Count > 1 && ds.Tables[1].Rows.Count > 0 && ds.Tables[0].Rows[0]["cStatus"].ToString() == "1")
                    {
                        sb.Append("<Success/>");
                        sb.Append("<AvailStatusMessages HotelCode=\"" + HotelCode + "\">");


                        foreach (DataRow dr in ds.Tables[1].Rows)
                        {
                            sb.Append("<AvailStatusMessage BookingLimit=\"" + dr["iAvailableInventory"].ToString() + "\" >");

                            sb.Append("<StatusApplicationControl End=\"" + dr["dtStayDayEnd"].ToString() + "\" Start=\"" + dr["dtStayDayStart"].ToString() + "\" InvTypeCode=\"" + dr["iRoomID"].ToString() + "\" RatePlanCode=\"" + dr["iRPPromoId"].ToString() + "\" />");

                            sb.Append("<RestrictionStatus Restriction=\"Master\" Status=\"" + dr["CloseOut"].ToString() + "\" />");

                            if (dr["iMinLengthStayRP"].ToString() != "0")
                            {
                                sb.Append("<LengthsOfStay>");
                                sb.Append("<LengthOfStay MinMaxMessageType=\"SetMinLOS\" Time=\"" + dr["iMinLengthStayRP"].ToString() + "\" /> ");

                                if (dr["iMinLengthStayRP"].ToString() != "0")
                                {
                                    sb.Append("<LengthOfStay MinMaxMessageType=\"SetMaxLOS\" Time=\"" + dr["iMaxLengthStayRP"].ToString() + "\" /> ");
                                }

                                sb.Append("</LengthsOfStay>");
                            }

                            sb.Append("</AvailStatusMessage>");
                        }


                        sb.Append("</AvailStatusMessages>");
                        sb.Append("</OTA_HotelAvailGetRS>");

                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/xml")
                        });
                    }
                    else
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelAvailGetRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"No records found.\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelAvailGetRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                }
                catch (Exception ex)
                {
                    objUtil.UpdateChannelMgrTracker(iID, 2, null);
                    return(new HttpResponseMessage()
                    {
                        Content = new StringContent("<OTA_HotelAvailGetRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"" + ex.Message + "\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelAvailGetRS>", Encoding.UTF8, "application/xml")
                    });
                }
            }
            #endregion

            #region "OTA_HotelAvailGet -- Update the availability, stop sell status and minimum stays for one or more room types for a single hotel."
            else if (str.IndexOf("OTA_HotelAvailNotif") > 0)
            {
                try
                {
                    string        sStartDate = "", sEndDate = "", HotelCode = "", InvTypeCode = "-1", RatePlanCode = "-1", ErrDesc = "";
                    Int16         Mon = 1, Tue = 1, Wed = 1, Thu = 1, Fri = 1, Sat = 1, Sun = 1;
                    bool          StopSell = false, status = true;
                    int           BookingLimit = -1, SetMinLOS = -1, SetMaxLOS = -1;
                    StringBuilder sb = new StringBuilder();

                    XmlNodeList xmlnode;
                    HotelCode = xmlDoc.GetElementsByTagName("AvailStatusMessages")[0].Attributes["HotelCode"].Value;
                    xmlnode   = xmlDoc.GetElementsByTagName("AvailStatusMessage");

                    for (int i = 0; i <= xmlnode.Count - 1; i++)
                    {
                        BookingLimit = (xmlnode[i].Attributes["BookingLimit"] != null) ? Convert.ToInt16(xmlnode[i].Attributes["BookingLimit"].Value) : 0;

                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Start"] != null)
                        {
                            sStartDate = xmlnode[i].ChildNodes.Item(0).Attributes["Start"].Value;
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["End"] != null)
                        {
                            sEndDate = xmlnode[i].ChildNodes.Item(0).Attributes["End"].Value;
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["InvTypeCode"] != null)
                        {
                            InvTypeCode = xmlnode[i].ChildNodes.Item(0).Attributes["InvTypeCode"].Value;
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["RatePlanCode"] != null)
                        {
                            RatePlanCode = xmlnode[i].ChildNodes.Item(0).Attributes["RatePlanCode"].Value;
                        }

                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Mon"] != null)
                        {
                            Mon = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Mon"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Tue"] != null)
                        {
                            Tue = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Tue"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Weds"] != null)
                        {
                            Wed = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Weds"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Thur"] != null)
                        {
                            Thu = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Thur"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Fri"] != null)
                        {
                            Fri = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Fri"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Sat"] != null)
                        {
                            Sat = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Sat"].Value);
                        }
                        if (xmlnode[i].ChildNodes.Item(0).Attributes["Sun"] != null)
                        {
                            Sun = Convert.ToInt16(xmlnode[i].ChildNodes.Item(0).Attributes["Sun"].Value);
                        }

                        if (xmlnode[i].ChildNodes.Count > 1)
                        {
                            for (int j = 0; j < xmlnode[i].ChildNodes.Count; j++)
                            {
                                if (xmlnode[i].ChildNodes[j].Name == "LengthsOfStay")
                                {
                                    if (xmlnode[i].ChildNodes[j].HasChildNodes)
                                    {
                                        for (int k = 0; k < xmlnode[i].ChildNodes[j].ChildNodes.Count; k++)
                                        {
                                            if (xmlnode[i].ChildNodes[j].ChildNodes[k].Attributes["MinMaxMessageType"] != null)
                                            {
                                                if (xmlnode[i].ChildNodes[j].ChildNodes[k].Attributes["MinMaxMessageType"].Value == "SetMinLOS")
                                                {
                                                    SetMinLOS = Convert.ToInt16(xmlnode[i].ChildNodes.Item(1).ChildNodes.Item(0).Attributes["Time"].Value);
                                                }
                                                else if (xmlnode[i].ChildNodes[j].ChildNodes[k].Attributes["MinMaxMessageType"].Value == "SetMaxLOS")
                                                {
                                                    SetMaxLOS = Convert.ToInt16(xmlnode[i].ChildNodes.Item(1).ChildNodes.Item(0).Attributes["Time"].Value);
                                                }
                                            }
                                        }
                                    }
                                }
                                if (xmlnode[i].ChildNodes[j].Name == "RestrictionStatus")
                                {
                                    StopSell = (xmlnode[i].ChildNodes[j].Attributes["Status"].Value == "Close") ? true : false;
                                }
                            }
                        }

                        SqlParameter[] MyParam = new SqlParameter[16];
                        MyParam[0]  = new SqlParameter("@HotelCode", HotelCode);
                        MyParam[1]  = new SqlParameter("@BookingLimit", BookingLimit);
                        MyParam[2]  = new SqlParameter("@iRoomId", InvTypeCode);
                        MyParam[3]  = new SqlParameter("@iRPId", RatePlanCode);
                        MyParam[4]  = new SqlParameter("@Start", sStartDate);
                        MyParam[5]  = new SqlParameter("@End", sEndDate);
                        MyParam[6]  = new SqlParameter("@MinLOS", SetMinLOS);
                        MyParam[7]  = new SqlParameter("@MaxLOS", SetMaxLOS);
                        MyParam[8]  = new SqlParameter("@StopSell", StopSell);
                        MyParam[9]  = new SqlParameter("@Mon", Mon);
                        MyParam[10] = new SqlParameter("@Tue", Tue);
                        MyParam[11] = new SqlParameter("@Wed", Wed);
                        MyParam[12] = new SqlParameter("@Thu", Thu);
                        MyParam[13] = new SqlParameter("@Fri", Fri);
                        MyParam[14] = new SqlParameter("@Sat", Sat);
                        MyParam[15] = new SqlParameter("@Sun", Sun);

                        DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.AppSettings["ConnectionString"].ToString(), CommandType.StoredProcedure, "uspUpdateHotelASSForMaximojoChannelMgr", MyParam);

                        if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                        {
                            if (ds.Tables[0].Rows[0][0].ToString() == "0")
                            {
                                status  = false;
                                ErrDesc = ds.Tables[0].Rows[0]["ErrDesc"].ToString();
                                break;
                            }
                            else
                            {
                                status = true;
                            }
                        }
                        else
                        {
                            status  = false;
                            ErrDesc = "No record found.";
                            break;
                        }
                    }

                    if (!status)
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelAvailNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"><Errors xmlns=\"http://www.opentravel.org/OTA/2003/05\"><Error Type=\"3\" ShortText=\"" + ErrDesc + "\" Code=\"448\" Status=\"NotProcessed\" /></Errors></OTA_HotelAvailNotifRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                    else
                    {
                        sb.Append("<OTA_HotelAvailNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\">");
                        sb.Append("<Success/>");
                        sb.Append("</OTA_HotelAvailNotifRS>");

                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/xml")
                        });
                    }
                }
                catch (Exception ex)
                {
                    objUtil.UpdateChannelMgrTracker(iID, 2, null);
                    return(new HttpResponseMessage()
                    {
                        Content = new StringContent("<OTA_HotelAvailNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"><Errors xmlns=\"http://www.opentravel.org/OTA/2003/05\"><Error Type=\"3\" ShortText=\"" + ex.Message + "\" Code=\"448\" Status=\"NotProcessed\" /></Errors></OTA_HotelAvailNotifRS>", Encoding.UTF8, "application/xml")
                    });
                }
            }
            #endregion

            #region "OTA_HotelRateAmountNotifRQ -- Update rates and inclusions for one or more room types for a single hotel."
            else if (str.IndexOf("OTA_HotelRateAmountNotif") > 0)
            {
                try
                {
                    string        sStartDate = "", sEndDate = "", HotelCode = "", InvTypeCode = "-1", RatePlanCode = "-1";
                    bool          Mon = true, Tue = true, Wed = true, Thu = true, Fri = true, Sat = true, Sun = true, status = false;
                    string        AgeQualifyingCode = "10", AgeQualifyingCodeAdult = "10", CurrencyCode = "INR", ErrDesc = "";
                    decimal       AmountBeforeTax = 0, AmountAfterTax = 0, AdditionalGuestAmount = 0, AdditionalGuestAmountAdult = 0;
                    int           NoofGuests = -1;
                    StringBuilder sb = new StringBuilder();

                    XmlNodeList xmlnode;
                    HotelCode = xmlDoc.GetElementsByTagName("RateAmountMessages")[0].Attributes["HotelCode"].Value;
                    xmlnode   = xmlDoc.GetElementsByTagName("RateAmountMessage");

                    DataTable  OccAmount = new DataTable();
                    DataColumn col       = null;
                    col = new DataColumn("RatePlan", typeof(int));
                    OccAmount.Columns.Add(col);
                    col = new DataColumn("dPrice", typeof(double));
                    OccAmount.Columns.Add(col);
                    col = new DataColumn("bIsPromo", typeof(bool));
                    OccAmount.Columns.Add(col);

                    for (int i = 0; i <= xmlnode.Count - 1; i++)
                    {
                        if (xmlnode[i].ChildNodes.Count > 1)
                        {
                            //StatusApplicationControl TAG
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["InvTypeCode"] != null)
                            {
                                InvTypeCode = xmlnode[i].ChildNodes.Item(0).Attributes["InvTypeCode"].Value;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["RatePlanCode"] != null)
                            {
                                RatePlanCode = xmlnode[i].ChildNodes.Item(0).Attributes["RatePlanCode"].Value;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Start"] != null)
                            {
                                sStartDate = xmlnode[i].ChildNodes.Item(0).Attributes["Start"].Value;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["End"] != null)
                            {
                                sEndDate = xmlnode[i].ChildNodes.Item(0).Attributes["End"].Value;
                            }


                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Mon"] != null)
                            {
                                Mon = xmlnode[i].ChildNodes.Item(0).Attributes["Mon"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Tue"] != null)
                            {
                                Tue = xmlnode[i].ChildNodes.Item(0).Attributes["Tue"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Weds"] != null)
                            {
                                Wed = xmlnode[i].ChildNodes.Item(0).Attributes["Weds"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Thur"] != null)
                            {
                                Thu = xmlnode[i].ChildNodes.Item(0).Attributes["Thur"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Fri"] != null)
                            {
                                Fri = xmlnode[i].ChildNodes.Item(0).Attributes["Fri"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Sat"] != null)
                            {
                                Sat = xmlnode[i].ChildNodes.Item(0).Attributes["Sat"].Value == "true" ? true : false;
                            }
                            if (xmlnode[i].ChildNodes.Item(0).Attributes["Sun"] != null)
                            {
                                Sun = xmlnode[i].ChildNodes.Item(0).Attributes["Sun"].Value == "true" ? true : false;
                            }

                            //Rates TAG
                            if (xmlnode[i].ChildNodes.Item(1).HasChildNodes)
                            {
                                for (int j = 0; j <= xmlnode[i].ChildNodes.Item(1).ChildNodes.Count - 1; j++)
                                {
                                    ////RATES
                                    DataRow drOccAmount;
                                    if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].HasChildNodes)
                                    {
                                        for (int k = 0; k <= xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes.Count - 1; k++)
                                        {
                                            if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].Attributes["CurrencyCode"] != null)
                                            {
                                                CurrencyCode = xmlnode[i].ChildNodes.Item(1).ChildNodes[j].Attributes["CurrencyCode"].Value;
                                            }
                                            if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].HasChildNodes)
                                            {
                                                for (int l = 0; l <= xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes.Count - 1; l++)
                                                {
                                                    if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Name == "AdditionalGuestAmount")
                                                    {
                                                        AgeQualifyingCode     = xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["AgeQualifyingCode"].Value;
                                                        AdditionalGuestAmount = Convert.ToDecimal(xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["Amount"].Value);
                                                        if (AgeQualifyingCode == "10")
                                                        {
                                                            AgeQualifyingCodeAdult     = AgeQualifyingCode;
                                                            AdditionalGuestAmountAdult = AdditionalGuestAmount;
                                                        }
                                                    }
                                                    if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Name == "BaseByGuestAmt")
                                                    {
                                                        NoofGuests = Convert.ToInt16(xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["NumberOfGuests"].Value);
                                                        if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["AmountAfterTax"] != null)
                                                        {
                                                            AmountAfterTax = Convert.ToDecimal(xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["AmountAfterTax"].Value);
                                                        }
                                                        if (xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["AmountBeforeTax"] != null)
                                                        {
                                                            AmountBeforeTax = Convert.ToDecimal(xmlnode[i].ChildNodes.Item(1).ChildNodes[j].ChildNodes[k].ChildNodes[l].Attributes["AmountBeforeTax"].Value);
                                                        }

                                                        drOccAmount             = OccAmount.NewRow();
                                                        drOccAmount["RatePlan"] = NoofGuests;
                                                        drOccAmount["dPrice"]   = AmountBeforeTax;
                                                        drOccAmount["bIsPromo"] = false;
                                                        OccAmount.Rows.Add(drOccAmount);
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    //////////UPDATE DATABASE
                                    if (AgeQualifyingCodeAdult == "8")
                                    {
                                        AgeQualifyingCodeAdult     = "10";
                                        AdditionalGuestAmountAdult = AdditionalGuestAmount;
                                    }

                                    SqlParameter[] MyParam = new SqlParameter[15];
                                    MyParam[0]  = new SqlParameter("@HotelCode", HotelCode);
                                    MyParam[1]  = new SqlParameter("@iRoomId", InvTypeCode);
                                    MyParam[2]  = new SqlParameter("@iRPId", RatePlanCode);
                                    MyParam[3]  = new SqlParameter("@Start", sStartDate);
                                    MyParam[4]  = new SqlParameter("@End", sEndDate);
                                    MyParam[5]  = new SqlParameter("@Mon", Mon);
                                    MyParam[6]  = new SqlParameter("@Tue", Tue);
                                    MyParam[7]  = new SqlParameter("@Wed", Wed);
                                    MyParam[8]  = new SqlParameter("@Thu", Thu);
                                    MyParam[9]  = new SqlParameter("@Fri", Fri);
                                    MyParam[10] = new SqlParameter("@Sat", Sat);
                                    MyParam[11] = new SqlParameter("@Sun", Sun);
                                    MyParam[12] = new SqlParameter("@AdditionalGuestAmount", AdditionalGuestAmountAdult);
                                    MyParam[13] = new SqlParameter("@OccAmount", OccAmount);
                                    MyParam[14] = new SqlParameter("@CurrencyCode", CurrencyCode);
                                    DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.AppSettings["ConnectionString"].ToString(), CommandType.StoredProcedure, "uspUpdateHotelAmountPerOccForMaximojoChannelMgr", MyParam);

                                    OccAmount.Clear();
                                    if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                                    {
                                        if (ds.Tables[0].Rows[0][0].ToString() == "0")
                                        {
                                            status  = false;
                                            ErrDesc = ds.Tables[0].Rows[0]["ErrDesc"].ToString();
                                            break;
                                        }
                                        else
                                        {
                                            status = true;
                                        }
                                    }
                                    else
                                    {
                                        status  = false;
                                        ErrDesc = "No record found.";
                                        break;
                                    }
                                }
                            }
                        }
                    }

                    if (!status)
                    {
                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent("<OTA_HotelRateAmountNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"><Errors xmlns=\"http://www.opentravel.org/OTA/2003/05\"><Error Type=\"3\" ShortText=\"" + ErrDesc + "\" Code=\"448\" Status=\"NotProcessed\" /></Errors></OTA_HotelRateAmountNotifRS>", Encoding.UTF8, "application/xml")
                        });
                    }
                    else
                    {
                        sb.Append("<OTA_HotelRateAmountNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\">");
                        sb.Append("<Success/>");
                        sb.Append("</OTA_HotelRateAmountNotifRS>");

                        objUtil.UpdateChannelMgrTracker(iID, 2, null);
                        return(new HttpResponseMessage()
                        {
                            Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/xml")
                        });
                    }
                }
                catch (Exception ex)
                {
                    objUtil.UpdateChannelMgrTracker(iID, 2, null);
                    return(new HttpResponseMessage()
                    {
                        Content = new StringContent("<OTA_HotelRateAmountNotifRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"><Errors xmlns=\"http://www.opentravel.org/OTA/2003/05\"><Error Type=\"3\" ShortText=\"" + ex.Message + "\" Code=\"448\" Status=\"NotProcessed\" /></Errors></OTA_HotelRateAmountNotifRS>", Encoding.UTF8, "application/xml")
                    });
                }
            }
            #endregion
            else
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("<OTA_HotelRatePlanRS xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"" + EchoToken + "\" TimeStamp=\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'") + "\"  Version=\"1.0\"> <Error Type=\"3\" ShortText=\"Invalid deatils\" Code=\"448\" Status=\"NotProcessed\" /> </OTA_HotelRatePlanRS>");

                return(new HttpResponseMessage()
                {
                    Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/xml")
                });
            }
        }