Exemplo n.º 1
0
        /// <summary>
        /// Execute
        /// </summary>
        /// <returns></returns>
        protected override bool Execute()
        {
            Request_ADO      adoRequest = new Request_ADO();
            ADO_readerOutput result;

            if (DTO.RlsCode == 0)
            {
                //We're just looking for a full list of Requests
                result = adoRequest.Read(Ado);
                if (!result.hasData)
                {
                    return(false);
                }
                else
                {
                    Response.data = result.data;
                    return(true);
                }
            }

            else
            {
                //We want the list of Requests available to an individual Release code
                Response.data = ReadAvailableRequests();
                if (Response.data.Count == 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns the list of valid requests for a Release Code
        /// </summary>
        /// <returns></returns>
        private List <Request_DTO> ReadAvailableRequests()
        {
            Request_ADO adoRequest = new Request_ADO();

            Release_ADO adoRelease = new Release_ADO(Ado);

            ADO_readerOutput result = adoRequest.Read(Ado);

            List <Request_DTO> reqList = new List <Request_DTO>();

            List <string> list = new List <string>();

            bool isLiveNow   = adoRelease.IsLiveNow(DTO.RlsCode);
            bool isLiveNext  = adoRelease.IsLiveNext(DTO.RlsCode);
            bool isWip       = adoRelease.IsWip(DTO.RlsCode);
            bool hasPrevious = adoRelease.HasPrevious(DTO.RlsCode);



            //We need to choose the correct set of valid Request types depending on the status of the Release
            if (isWip)
            {
                list = Constants.C_WORKFLOW_REQUEST_WIP();
            }

            else if (isLiveNow && hasPrevious)
            {
                list = Constants.C_WORKFLOW_REQUEST_LIVE_NOW_WITH_PREVIOUS();
            }

            else if (isLiveNow && !hasPrevious)
            {
                list = Constants.C_WORKFLOW_REQUEST_LIVE_NOW_WITHOUT_PREVIOUS();
            }


            else if (isLiveNext && hasPrevious)
            {
                list = Constants.C_WORKFLOW_REQUEST_LIVE_NEXT_WITH_PREVIOUS();
            }

            else if (isLiveNext && !hasPrevious)
            {
                list = Constants.C_WORKFLOW_REQUEST_LIVE_NEXT_WITHOUT_PREVIOUS();
            }

            else //default - return a blank list
            {
                return(reqList);
            }

            //Compose the output based on what's in the constant list
            foreach (var v in result.data)
            {
                if (list.Contains(v.RqsCode))
                {
                    Request_DTO dto = new Request_DTO();
                    dto.RqsCode  = v.RqsCode;
                    dto.RqsValue = v.RqsValue;
                    dto.RlsCode  = DTO.RlsCode;
                    reqList.Add(dto);
                }
            }

            return(reqList);
        }