コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objValidateSKURequest"></param>
        /// <param name="objValidateSKUResponse"></param>
        /// <returns></returns>
        public bool ValidateRequest(ValidateSKURequest objValidateSKURequest, ValidateSKUResponse objValidateSKUResponse)
        {
            bool  ValidationStatus = true;
            Int64 countSN          = Convert.ToInt64((ConfigurationSettings.AppSettings["countSN"]));

            if (!objValidateSKURequest.RequestID.IsValidString() && ValidationStatus)
            {
                objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.InvalidParameter;
                objValidateSKUResponse.ResponseMessage = Constants.ResponseStatus.InvalidParameter.ToString();
                ValidationStatus = false;
            }
            if (!objValidateSKURequest.RequestingSystem.IsValidString() && ValidationStatus)
            {
                objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.InvalidParameter;
                objValidateSKUResponse.ResponseMessage = Constants.ResponseStatus.InvalidParameter.ToString();
                ValidationStatus = false;
            }
            if (objCommonValidationBL.DupCheckRequestId(objValidateSKURequest.RequestID, objValidateSKURequest.RequestingSystem) && ValidationStatus)
            {
                objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.AmbigousRequest;
                objValidateSKUResponse.ResponseMessage = Constants.ResponseMessage[3].ToString();
                ValidationStatus = false;
            }
            if ((objValidateSKURequest.SKUID == null || objValidateSKURequest.SKUID.Length < 1 || objValidateSKURequest.SKUID.Length > countSN) && ValidationStatus)  //VALIDATE SNUM UNIT (MAX 100)
            {
                objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.InvalidParameter;
                objValidateSKUResponse.ResponseMessage = "Invalid SKU Details";
                ValidationStatus = false;
            }
            if (objValidateSKURequest.SKUID != null && ValidationStatus)
            {
                for (int j = 0; j < objValidateSKURequest.SKUID.Length; j++)
                {
                    if (!objValidateSKURequest.SKUID[j].SKUID.IsValidString() && ValidationStatus)
                    {
                        objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.InvalidParameter;
                        objValidateSKUResponse.ResponseMessage = "Invalid SKU Format";
                        ValidationStatus = false;
                    }
                }
            }

            return(ValidationStatus);
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objValidateSKURequest"></param>
        /// <returns></returns>
        public ValidateSKUResponse ValidateSKUVersions(ValidateSKURequest objValidateSKURequest)
        {
            var objValidateSKUResponse = new ValidateSKUResponse();

            objValidateSKUResponse.RequestID        = objValidateSKURequest.RequestID;
            objValidateSKUResponse.ResponseID       = objValidateSKURequest.RequestID;
            objValidateSKUResponse.ResponseDateTime = DateTime.UtcNow;
            objValidateSKUResponse.ResponseStatus   = (int)Constants.ResponseStatus.Success;
            objValidateSKUResponse.ResponseMessage  = Constants.ResponseStatus.Success.ToString();
            objValidateSKUResponse.SKUID            = new Response_SKUVersionInfo[objValidateSKURequest.SKUID.Length];

            for (int i = 0; i < objValidateSKURequest.SKUID.Length; i++)
            {
                objValidateSKUResponse.SKUID[i] = CreateResponseInfo(objValidateSKURequest.SKUID[i].SKUID);
            }
            //Start ValidateSKU Process

            try
            {
                //ASSIGNING ID'S
                objValidateSKUResponse.RequestID  = objValidateSKURequest.RequestID;
                objValidateSKUResponse.ResponseID = objValidateSKURequest.RequestID;

                //INPUT DATA VALIDATION
                if (objValidateSKUBL.ValidateRequest(objValidateSKURequest, objValidateSKUResponse))
                {
                    //PROCESS DATA & RETURN RESPONSE
                    objValidateSKUBL.ProcessRequest(objValidateSKURequest, objValidateSKUResponse);
                }
            }
            catch (Exception ex)
            {
                //SET FAILURE STATUS
                objValidateSKUResponse.ResponseStatus  = (int)Constants.ResponseStatus.ServiceUnavailable;
                objValidateSKUResponse.ResponseMessage = Constants.ResponseMessage[1000].ToString();

                //LOG EXCEPTION
                objEventLogger.WriteLog(ex.Message + Environment.NewLine + ex.StackTrace, objValidateSKURequest.RequestingSystem, DateTime.UtcNow, objValidateSKURequest.RequestID);
            }
            finally
            {
                objValidateSKUResponse.ResponseDateTime = DateTime.UtcNow;


                //SERIALIZE REQUEST/RESPONSE
                string request  = "GetValidateSKURequest";
                string response = "GetValidateSKUResponse";

                try
                {
                    request  = Util.SerializeObject(objValidateSKURequest);
                    response = Util.SerializeObject(objValidateSKUResponse);
                }
                catch (Exception ex)
                {
                    objEventLogger.WriteLog("Request/Response Object Serialization Error: " + ex.Message + Environment.NewLine + ex.StackTrace, objValidateSKURequest.RequestingSystem, DateTime.UtcNow, objValidateSKURequest.RequestID);
                }

                if (!request.IsValidString())
                {
                    request = "GetValidateSKURequest";
                }
                if (!response.IsValidString())
                {
                    response = "GetValidateSKUResponse";
                }


                //LOG REQUEST/RESPONSE
                objTransactionLogger.LogTransaction(objValidateSKURequest.RequestID, objValidateSKURequest.RequestDateTime, objValidateSKURequest.RequestingSystem,
                                                    request, objValidateSKUResponse.ResponseID, objValidateSKUResponse.ResponseDateTime, response,
                                                    objValidateSKUResponse.ResponseStatus, objValidateSKUResponse.ResponseMessage, 0);

                //End Processing GetValidateSKU
            }

            //GetValidateSKU ends
            return(objValidateSKUResponse);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objValidateSKURequest"></param>
        /// <param name="objValidateSKUResponse"></param>
        /// <returns></returns>
        public bool ProcessRequest(ValidateSKURequest objValidateSKURequest, ValidateSKUResponse objValidateSKUResponse)
        {
            bool flag = false;

            try
            {
                List <VersionInfoWithImageUrl> versionInfoList;

                // Perform a DB lookup for all versions
                // FIND DETAILS (SOFTWARE & OPTION) FOR GIVEN ID.
                for (int j = 0; j < objValidateSKURequest.SKUID.Length; j++)
                {
                    if (objValidateSKURequest.SKUID[j].SKUID.IsValidString())
                    {
                        string[] arr = new string[1];
                        arr[0] = objValidateSKURequest.SKUID[j].SKUID;

                        DataSet ds = GetSKUVersionInfo(arr);



                        if (ds != null && ds.Tables != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        {
                            if (ds.Tables[0].Rows[0].ItemArray[1].ToString() == "SW")
                            {
                                if (ds.Tables[0].Rows.Count > 0)
                                {
                                    versionInfoList = new List <VersionInfoWithImageUrl>();

                                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                                    {
                                        DataRow dr            = null;
                                        string  currentSKUID  = string.Empty;
                                        string  previousSKUID = string.Empty;
                                        dr = ds.Tables[0].Rows[i];


                                        VersionInfoWithImageUrl objVersionInfoWithImageUrl = new VersionInfoWithImageUrl();
                                        objVersionInfoWithImageUrl.IsShippedVersion     = (dr["IsShippedVersion"] != DBNull.Value) ? Convert.ToBoolean(dr["IsShippedVersion"]) : false;
                                        objVersionInfoWithImageUrl.ReleaseDateSpecified = false;
                                        objVersionInfoWithImageUrl.ReleaseDate          = (dr["ReleaseDate"] != DBNull.Value) ? Convert.ToDateTime(dr["ReleaseDate"]) : DateTime.MinValue;
                                        if (objVersionInfoWithImageUrl.ReleaseDate != DateTime.MinValue)
                                        {
                                            objVersionInfoWithImageUrl.ReleaseDateSpecified = true;
                                        }
                                        objVersionInfoWithImageUrl.ImageUrl = (dr["ImageUrl"] != DBNull.Value) ? Convert.ToString(dr["ImageUrl"]) : "";

                                        objVersionInfoWithImageUrl.Version      = (dr["Version"] != DBNull.Value) ? Convert.ToString(dr["Version"]) : "";
                                        objVersionInfoWithImageUrl.VersionSeqNo = (dr["VersionSeqNo"] != DBNull.Value) ? Convert.ToInt32(dr["VersionSeqNo"]) : -1;
                                        objVersionInfoWithImageUrl.VersionType  = (dr["VersionType"] != DBNull.Value) ? Convert.ToString(dr["VersionType"]) : "";
                                        objVersionInfoWithImageUrl.VersionReleaseClassification = (dr["VersionReleaseClassification"] != DBNull.Value) ? Convert.ToString(dr["VersionReleaseClassification"]) : "";

                                        versionInfoList.Add(objVersionInfoWithImageUrl);
                                    }

                                    if (objValidateSKURequest.SKUID[j].VersionFilter.IsValidString() && objValidateSKURequest.SKUID[j].VersionFilter == "LATEST")
                                    {
                                        VersionInfoWithImageUrl latestVersion = versionInfoList.OrderByDescending(o => o.VersionSeqNo).FirstOrDefault <VersionInfoWithImageUrl>();
                                        if (latestVersion != null)
                                        {
                                            versionInfoList.Clear();
                                            versionInfoList.Add(latestVersion);
                                        }
                                    }
                                    else if (objValidateSKURequest.SKUID[j].VersionFilter.IsValidString() && objValidateSKURequest.SKUID[j].VersionFilter != "LATEST" && !objValidateSKURequest.SKUID[j].VersionFilter.Contains("+"))
                                    {
                                        VersionInfoWithImageUrl specificVersion = versionInfoList.Where(o => o.Version == objValidateSKURequest.SKUID[j].VersionFilter).FirstOrDefault <VersionInfoWithImageUrl>();
                                        if (specificVersion != null)
                                        {
                                            versionInfoList.Clear();
                                            versionInfoList.Add(specificVersion);
                                        }
                                        else
                                        {
                                            //objSoftwareVersionsResponse.SKUID[j].AvailableVersion = null;
                                            objValidateSKUResponse.SKUID[j].ResponseStatus   = (int)Constants.ResponseStatus.InvalidParameter;
                                            objValidateSKUResponse.SKUID[j].ResponseMessage  = "The Filter Value entered : " + objValidateSKURequest.SKUID[j].VersionFilter + "  is not Valid or unavilable . The list is shown below (only for SW features) :";
                                            objValidateSKUResponse.SKUID[j].AvailableVersion = null;
                                            //versionInfoList[j] = null;
                                        }
                                    }
                                    //NEW CR
                                    #region WITH ADDITION VERSION KEY
                                    else if (objValidateSKURequest.SKUID[j].VersionFilter.IsValidString() && objValidateSKURequest.SKUID[j].VersionFilter != "LATEST" && objValidateSKURequest.SKUID[j].VersionFilter.Contains("+"))
                                    {
                                        versionInfoList.Clear();
                                        string strSKUVersion = string.Empty;
                                        if (objValidateSKURequest.SKUID[j].VersionFilter.Contains('+'))
                                        {
                                            int intindex = objValidateSKURequest.SKUID[j].VersionFilter.LastIndexOf('+');
                                            strSKUVersion = objValidateSKURequest.SKUID[j].VersionFilter.Substring(0, intindex);
                                        }
                                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                                        {
                                            DataRow dr = null;
                                            dr = ds.Tables[0].Rows[i];

                                            VersionInfoWithImageUrl objVersionInfoWithImageUrl = new VersionInfoWithImageUrl();
                                            objVersionInfoWithImageUrl.IsShippedVersion     = (dr["IsShippedVersion"] != DBNull.Value) ? Convert.ToBoolean(dr["IsShippedVersion"]) : false;
                                            objVersionInfoWithImageUrl.ReleaseDateSpecified = false;
                                            objVersionInfoWithImageUrl.ReleaseDate          = (dr["ReleaseDate"] != DBNull.Value) ? Convert.ToDateTime(dr["ReleaseDate"]) : DateTime.MinValue;
                                            if (objVersionInfoWithImageUrl.ReleaseDate != DateTime.MinValue)
                                            {
                                                objVersionInfoWithImageUrl.ReleaseDateSpecified = true;
                                            }
                                            objVersionInfoWithImageUrl.ImageUrl     = (dr["ImageUrl"] != DBNull.Value) ? Convert.ToString(dr["ImageUrl"]) : "";
                                            objVersionInfoWithImageUrl.Version      = (dr["Version"] != DBNull.Value) ? Convert.ToString(dr["Version"]) : "";
                                            objVersionInfoWithImageUrl.VersionSeqNo = (dr["VersionSeqNo"] != DBNull.Value) ? Convert.ToInt32(dr["VersionSeqNo"]) : -1;
                                            objVersionInfoWithImageUrl.VersionType  = (dr["VersionType"] != DBNull.Value) ? Convert.ToString(dr["VersionType"]) : "";
                                            objVersionInfoWithImageUrl.VersionReleaseClassification = (dr["VersionReleaseClassification"] != DBNull.Value) ? Convert.ToString(dr["VersionReleaseClassification"]) : "";


                                            int intResult = objVersionInfoWithImageUrl.Version.CompareTo(strSKUVersion);
                                            if (intResult == 0 || intResult == 1)
                                            {
                                                versionInfoList.Add(objVersionInfoWithImageUrl);
                                            }
                                        }
                                    }
                                    #endregion


                                    objValidateSKUResponse.SKUID[j].AvailableVersion = versionInfoList.ToArray();
                                }

                                if (objValidateSKUResponse.SKUID[j].AvailableVersion == null || objValidateSKUResponse.SKUID[j].AvailableVersion.Length <= 0)
                                {
                                    objValidateSKUResponse.SKUID[j].ResponseStatus  = (int)Constants.ResponseStatus.UnKnownSKU;
                                    objValidateSKUResponse.SKUID[j].ResponseMessage = Constants.ResponseMessage[2].ToString();
                                }
                                flag = true;
                            }

                            else
                            {
                                objValidateSKUResponse.SKUID[j].AvailableVersion = null;
                                if ((ds.Tables[0].Rows.Count != 0) && (objValidateSKURequest.SKUID[j].VersionFilter == null))
                                {
                                    //for (int i = 0; i < objSoftwareVersionsRequest.SKUID[j].; i++)
                                    //{
                                    DataRow dr1 = null;
                                    dr1 = ds.Tables[0].Rows[0];
                                    objValidateSKUResponse.SKUID[j].SKUID           = (dr1["SKUID"] != DBNull.Value) ? Convert.ToString(dr1["SKUID"]) : "";
                                    objValidateSKUResponse.SKUID[j].ResponseStatus  = (int)Constants.ResponseStatus.Success;
                                    objValidateSKUResponse.SKUID[j].ResponseMessage = "The Option SKU " + objValidateSKUResponse.SKUID[j].SKUID + " is Valid.";
                                    // objSoftwareVersionsResponse.SKUID[j].SKUID = null;

                                    //}
                                }
                                else
                                {
                                    if (objValidateSKURequest.SKUID[j].VersionFilter != null)
                                    {
                                        objValidateSKUResponse.SKUID[j].ResponseStatus  = (int)Constants.ResponseStatus.UnKnownSKU;
                                        objValidateSKUResponse.SKUID[j].ResponseMessage = "Filter cannot be used for an Option SKU : " + objValidateSKUResponse.SKUID[j].SKUID + " . Please try without using filter.";
                                    }
                                    else
                                    {
                                        if (objValidateSKUResponse.SKUID[0].AvailableVersion == null || objValidateSKUResponse.SKUID[0].AvailableVersion.Length <= 0)
                                        {
                                            objValidateSKUResponse.SKUID[j].ResponseStatus  = (int)Constants.ResponseStatus.UnKnownSKU;
                                            objValidateSKUResponse.SKUID[j].ResponseMessage = Constants.ResponseMessage[2].ToString();
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            objValidateSKUResponse.SKUID[j].ResponseStatus  = (int)Constants.ResponseStatus.UnKnownSKU;
                            objValidateSKUResponse.SKUID[j].ResponseMessage = Constants.ResponseMessage[2].ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(flag);
        }