internal override string Execute(NameValueCollection commandParameters) { int categoryID; int startPageNo; int endPageNo; string sortBy; string sortByEnumString; int userID; if (!Helper.TryGetUserID(_session, out userID)) { userID = -1; } string error = ValidateIntParameter(commandParameters, "categoryId", out categoryID); if (error != String.Empty) { return(error); } error = ValidateIntParameter(commandParameters, "startPageNo", out startPageNo); if (error != String.Empty) { return(error); } error = ValidateIntParameter(commandParameters, "endPageNo", out endPageNo); if (error != String.Empty) { return(error); } error = ValidateStringParameter(commandParameters, "sortBy", out sortBy); if (error != String.Empty) { return(error); } error = GetSortChannelsByFromConfig(sortBy, out sortByEnumString); if (error != String.Empty) { return(error); } // validate Sort By enum SortChannelsBy sortChannelsBy; error = TryParseSortChannelsBy(typeof(SortChannelsBy), sortByEnumString, out sortChannelsBy); if (error != String.Empty) { return(error); } PageChannelData pageChannelData; BLClient client = null; // call WCF BLL Method try { client = new BLClient(); pageChannelData = client.GetChannelListByCategoryID(userID, categoryID, startPageNo, endPageNo, sortChannelsBy); } catch (Exception exception) { return(ErrorWrapper.SendError(exception.Message)); } finally { if (client != null) { client.Dispose(); } } return(Flatten(pageChannelData)); }