public ActionResult GetAvailableSINumbersAsText(bool?AllSIs, int commoditySoureType)
        //we can accept null and defualt to donation
        {
            BLL.UserProfile user = _userProfileService.GetUser(User.Identity.Name);

            if (AllSIs != null && AllSIs == true)
            {
                IEnumerable <Models.SelectListItemModel> SINumbers   = new List <SelectListItemModel>();
                IEnumerable <Models.SelectListItemModel> SINumbersRA = new List <SelectListItemModel>();

                if (commoditySoureType == DRMFSS.BLL.CommoditySource.Constants.DONATION)
                {
                    SINumbers = from item in _giftCertificateService.GetAllGiftCertificate()
                                select new Models.SelectListItemModel()
                    {
                        Id         = item.SINumber,
                        Name       = item.SINumber,
                        Collection = "0"
                    };
                }
                else
                {
                    SINumbersRA =
                        from r in _receiptAllocationService.GetSIsWithOutGiftCertificate(commoditySoureType)
                        select new Models.SelectListItemModel()
                    {
                        Id         = r,
                        Name       = r,
                        Collection = "1"
                    };
                }
                var SINumbersAll = SINumbers.Union(SINumbersRA).Distinct(new UniqueNameComparer());

                return(Json(SINumbersAll, JsonRequestBehavior.AllowGet));
            }
            else
            {
                IEnumerable <Models.SelectListItemModel> SINumbersGCD = new List <SelectListItemModel>();
                IEnumerable <Models.SelectListItemModel> SINumbersRA  = new List <SelectListItemModel>();

                if (commoditySoureType == DRMFSS.BLL.CommoditySource.Constants.DONATION)
                {
                    SINumbersGCD = from p in _giftCertificateDetailService.GetUncommitedSIs()
                                   select new Models.SelectListItemModel()
                    {
                        Id         = p,
                        Name       = p,
                        Collection = "0"
                    };
                }
                else
                {
                    SINumbersRA =
                        from r in _receiptAllocationService.GetSIsWithOutGiftCertificate(commoditySoureType)
                        select new Models.SelectListItemModel()
                    {
                        Id         = r,
                        Name       = r,
                        Collection = "1"
                    };
                }
                var SINumbersUnCommited = SINumbersGCD.Union(SINumbersRA).Distinct(new UniqueNameComparer());

                return(Json(SINumbersUnCommited, JsonRequestBehavior.AllowGet));
            }
        }