示例#1
0
        public PackagesResponse Index()
        {
            // Store Customer Seleted Garage in session
            //Session["NewServiceGarageId"] = id;



            PackagesResponse model = new PackagesResponse();

            try
            {
                var packages             = _db.Packages.ToList();
                PackageViewModel package = null;
                foreach (var item in packages)
                {
                    package                     = new PackageViewModel();
                    package.PackageId           = item.PackageId;
                    package.Package_Description = item.Package_Description;
                    package.Package_Name        = item.Package_Name;
                    package.Package_Price       = item.Package_Price;
                    package.SubscriptionTypes   = item.SubscriptionTypes;

                    foreach (var service in item.Package_Services.ToList())
                    {
                        package.Services.Add(service.Service.Service_Name);
                    }

                    model.Packages.Add(package);
                }
                model.Result = true;
            }
            catch (Exception ex)
            {
            }

            //return Ok(model);
            return(model);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public PackagesResponse GetInstalledPackages(int page = 1)
        {
            var zeroPageIndex = page - 1;

            var installedPackages = PackageHelper.ListInstalledPackages();

            //Get the number of packages in the repo (latest version)
            //Is there a way - to get this only once as it won't change between pages I hope?!
            var totalcount = installedPackages.Count();
            var totalPages = (int)Math.Ceiling((double)totalcount / PageSize);

            //Paging from here
            //http://bitoftech.net/2013/11/25/implement-resources-pagination-asp-net-web-api/

            var prevLink = zeroPageIndex > 0 ? (page - 1).ToString() : string.Empty;
            var nextLink = zeroPageIndex < totalPages - 1 ? (page + 1).ToString() : string.Empty;

            //Packages...
            List <IPackage> packages = installedPackages
                                       .OrderBy(x => x.Id)
                                       .Skip(zeroPageIndex * PageSize)
                                       .Take(PageSize).ToList();


            //The rows we will return
            var rows = new List <Row>();

            foreach (IEnumerable <IPackage> row in packages.InGroupsOf(3))
            {
                var packagesInRow = new List <Package>();

                foreach (IPackage package in row)
                {
                    var packageToAdd = new Package();
                    packageToAdd.Authors       = package.Authors;
                    packageToAdd.Description   = package.Description;
                    packageToAdd.DownloadCount = package.DownloadCount.ToString("##,###,###");
                    packageToAdd.IconUrl       = package.IconUrl;
                    packageToAdd.Id            = package.Id;
                    packageToAdd.ProjectUrl    = package.ProjectUrl;
                    packageToAdd.Published     = package.Published;
                    packageToAdd.Summary       = package.Summary;
                    packageToAdd.Tags          = package.Tags;
                    packageToAdd.Title         = package.Title;
                    packageToAdd.Version       = package.Version;

                    //Add the package to the row object
                    packagesInRow.Add(packageToAdd);
                }

                //Add the row to to the list of rows
                var packageRow = new Row();
                packageRow.Packages = packagesInRow;

                rows.Add(packageRow);
            }

            //Build up object to return
            var packageResponse = new PackagesResponse();

            packageResponse.Rows         = rows;
            packageResponse.TotalItems   = totalcount;
            packageResponse.TotalPages   = totalPages;
            packageResponse.CurrentPage  = page;
            packageResponse.PreviousLink = prevLink;
            packageResponse.NextLink     = nextLink;

            //Return the package response
            return(packageResponse);
        }
        public PackagesResponse SearchPackages(string searchTerm, int page = 1)
        {
            var zeroPageIndex = page - 1;

            var packageManager = PackageManagerService.Instance.PackageManager;
            var repo           = packageManager.SourceRepository;
            var searchPackages = repo.Search(searchTerm, false);

            //Search for packages with search term
            var packages = searchPackages
                           .Where(x => x.IsLatestVersion)
                           .OrderByDescending(x => x.DownloadCount)
                           .Skip(zeroPageIndex * PageSize)
                           .Take(PageSize).ToList();

            //Get the number of packages in the repo (latest version)

            var totalcount = searchPackages.Where(x => x.IsLatestVersion).Count();
            var totalPages = (int)Math.Ceiling((double)totalcount / PageSize);

            //Paging from here
            //http://bitoftech.net/2013/11/25/implement-resources-pagination-asp-net-web-api/

            var prevLink = zeroPageIndex > 0 ? (page - 1).ToString() : string.Empty;
            var nextLink = zeroPageIndex < totalPages - 1 ? (page + 1).ToString() : string.Empty;


            //The rows we will return
            var rows = new List <Row>();

            foreach (IEnumerable <IPackage> row in packages.InGroupsOf(3))
            {
                var packagesInRow = new List <Package>();

                foreach (IPackage package in row)
                {
                    var packageToAdd = new Package();
                    packageToAdd.Authors       = package.Authors;
                    packageToAdd.Description   = package.Description;
                    packageToAdd.DownloadCount = package.DownloadCount.ToString("##,###,###");
                    packageToAdd.IconUrl       = package.IconUrl;
                    packageToAdd.Id            = package.Id;
                    packageToAdd.ProjectUrl    = package.ProjectUrl;
                    packageToAdd.Published     = package.Published;
                    packageToAdd.Summary       = package.Summary;
                    packageToAdd.Tags          = package.Tags;
                    packageToAdd.Title         = package.Title;
                    packageToAdd.Version       = package.Version;

                    //Add the package to the row object
                    packagesInRow.Add(packageToAdd);
                }

                //Add the row to to the list of rows
                var packageRow = new Row();
                packageRow.Packages = packagesInRow;

                rows.Add(packageRow);
            }

            //Build up object to return
            var packageResponse = new PackagesResponse();

            packageResponse.Rows         = rows;
            packageResponse.TotalItems   = totalcount;
            packageResponse.TotalPages   = totalPages;
            packageResponse.CurrentPage  = page;
            packageResponse.PreviousLink = prevLink;
            packageResponse.NextLink     = nextLink;

            //Return the package response
            return(packageResponse);
        }
示例#4
0
        public static void Build(JSONObject response)
        {
            ResponseEvent responseEvent = Spil.MonoInstance.gameObject.AddComponent <ResponseEvent>();

            responseEvent.eventName = response.GetField("name").str;

            if (response.HasField("type"))
            {
                responseEvent.type = response.GetField("type").str;
            }

            if (response.HasField("action"))
            {
                responseEvent.action = response.GetField("action").str;
            }

            if (response.HasField("data"))
            {
                responseEvent.data = response.GetField("data");
            }

            if (responseEvent.type != null)
            {
                switch (responseEvent.type.ToLower().Trim())
                {
                case "advertisement":
                    AdvertisementResponse.ProcessAdvertisementResponse(responseEvent);
                    break;

                case "overlay":
                    OverlayResponse.ProcessOverlayResponse(responseEvent);
                    break;

                case "gameconfig":
                    ConfigResponse.ProcessConfigResponse(responseEvent);
                    break;

                case "packages":
                    PackagesResponse.ProcessPackagesResponse(responseEvent);
                    break;

                case "notification":
                    break;

                case "gamedata":
                    GameDataResponse.ProcessGameDataResponse(responseEvent);
                    break;

                case "promotions":
                    PromotionsResponse.ProcessPromotionResponse(responseEvent);
                    break;

                case "userdata":
                    UserDataResponse.ProcessUserDataResponse(responseEvent);
                    break;

                case "playerdata":
                    PlayerDataResponse.ProcessPlayerDataResponse(responseEvent);
                    break;

                case "gamestate":
                    GameStateResponse.ProcessGameStateResponse(responseEvent);
                    break;

                case "reward":
                    RewardResponse.ProcessRewardResponse(responseEvent);
                    break;

                case "liveevent":
                    LiveEventResponse.ProcessLiveEventResponse(responseEvent);
                    break;

                case "authentication":
                    SocialLoginResponse.ProcessSocialLoginResponse(responseEvent);
                    break;
                }
            }
            GameObject.Destroy(responseEvent);
        }