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); }
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); }