예제 #1
0
        public static async Task <DataCatalogViewModel> GetPublishersAsync(DataCatalogViewModel vm, string uri)
        {
            try
            {
                try
                {
                    if (uri.StartsWith("api"))
                    {
                        var url        = vm.WebApiBaseUrl.Replace("api/DataCatalog", uri);
                        var publishers = await GetPublishersAsync(url);

                        vm.Publishers = publishers;
                    }
                    else
                    {
                        var publishers = await GetPublishersAsync(vm.WebApiBaseUrl + uri);

                        vm.Publishers = publishers;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(vm);
            }
            catch (Exception ex)
            {
                _client.CancelPendingRequests();
                throw new Exception("RunAsync caused an error: " + ex.Message, ex);
            }
        }
예제 #2
0
        public ActionResult IndexCompleted(DataCatalogViewModel vm)
        {
            vm.WebApiBaseUrl = ConfigurationManager.AppSettings["DataCatalogWebApiUrl"];
            var licenseList = new List <LookupField>
            {
                new LookupField(displayValue: "OGL", id: "ogl"),
                new LookupField(displayValue: "Creative Commons", id: "creativeCommons"),
                new LookupField(displayValue: "Other", id: "other")
            };


            var model = new UpdateNotifyViewModel
            {
                LicenseList = licenseList,
                CatalogList = new List <LookupField>
                {
                    new LookupField {
                        Id = "seweb", DisplayValue = "Scotland Environment Web"
                    }
                },
                DatasetList = new List <LookupField>()
            };

            model.DatasetList = vm.DataSets.Select(x => new LookupField(x.GraphId, x.Title));

            return(View(model));
        }
예제 #3
0
        public ActionResult Index()
        {
            DataCatalogViewModel vm = new DataCatalogViewModel();

            vm.WebApiBaseUrl = ConfigurationManager.AppSettings["DataCatalogWebApiUrl"];
            return(View(vm));
        }
예제 #4
0
        // GET: DemoWithTable
        public void IndexAsync()
        {
            var vm = new DataCatalogViewModel
            {
                WebApiBaseUrl = ConfigurationManager.AppSettings["DataCatalogWebApiUrl"]
            };

            AsyncManager.OutstandingOperations.Increment(3);

            Task.Factory.StartNew(() =>
            {
                DataCatalogViewModel result = DataStoreSrv.RunAsync(vm, "/GetGraphInfos").Result;

                AsyncManager.Parameters["vm"] = result;
                AsyncManager.OutstandingOperations.Decrement();
            });

            Task.Factory.StartNew(() =>
            {
                DataCatalogViewModel result = DataStoreSrv.GetPublishersAsync(vm, "/GetOrganisations").Result;

                AsyncManager.Parameters["publishers"] = result.Publishers;
                AsyncManager.OutstandingOperations.Decrement();
            });

            Task.Factory.StartNew(() =>
            {
                DataCatalogViewModel result = DataStoreSrv.GetOrganisationsAsync(vm, "/GetOrganisations").Result;

                AsyncManager.Parameters["organisations"] = result.Organisations;
                AsyncManager.OutstandingOperations.Decrement();
            });
        }
예제 #5
0
        public static async Task <DataCatalogViewModel> GetOrganisationsAsync(DataCatalogViewModel vm, string uri)
        {
            try
            {
                try
                {
                    var organisations = await GetOrganisationsAsync(vm.WebApiBaseUrl + uri);

                    vm.Organisations = organisations;
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(vm);
            }
            catch (Exception ex)
            {
                _client.CancelPendingRequests();
                throw new Exception("RunAsync caused an error: " + ex.Message, ex);
            }
        }
예제 #6
0
        public ActionResult IndexCompleted(DataCatalogViewModel vm, IEnumerable <DataPublisher> publishers, IEnumerable <Organisation> organisations)
        {
            vm.WebApiBaseUrl = ConfigurationManager.AppSettings["DataCatalogWebApiUrl"];

            var dataPublishers = publishers as DataPublisher[] ?? publishers.ToArray();
            var publisherList  = dataPublishers.ToList();

            vm.Publishers = publisherList;

            //var publisherDict = publisherList.ToDictionary(publisher => publisher.Uri, publisher => publisher.Name);
            var publisherDict    = organisations.ToDictionary(org => org.Uri, org => org.ShortName);
            var organisationDict = new Dictionary <string, Organisation>();

            if (organisations != null)
            {
                foreach (var org in organisations)
                {
                    //var publisher = dataPublishers.FirstOrDefault(x => x.Name == org.ShortName);
                    //if (publisher == default(DataPublisher)) continue;

                    //org.Uri = publisher.Uri;
                    var datasets        = vm.DataSets.Where(x => x.Publisher == org.Uri);
                    var graphInfoModels = datasets as GraphInfoModel[] ?? datasets.ToArray();
                    if (!graphInfoModels.Any())
                    {
                        continue;
                    }
                    org.DatasetCount = graphInfoModels.Count();
                    organisationDict.Add(org.Uri, org);
                }
            }
            vm.Organisations = organisationDict.Select(x => x.Value).ToList();

            var licenseList = new List <DistributionLicense>
            {
                new DistributionLicense("OGL", "ogl"),
                new DistributionLicense("Creative Commons", "creativeCommons"),
                new DistributionLicense("Other", "other")
            };

            vm.Licenses = licenseList;

            var applicationList = new List <SupportedApplication>
            {
                new SupportedApplication("Interactive Map Tool", "interactiveMapTool"),
                new SupportedApplication("Land Information Search - AE&F", "landInformationSearchAEF"),
                new SupportedApplication("Land Information Search - COMAH", "landInformationSearchCOMAH"),
                new SupportedApplication("Data Analysis Tool", "dataAnalysisTool"),
                new SupportedApplication("Other", "other")
            };

            vm.Applications = applicationList;

            foreach (var item in vm.DataSets)
            {
                if (publisherDict.ContainsKey(item.Publisher))
                {
                    item.Publisher = publisherDict[item.Publisher];
                    vm.Organisations.First(x => x.ShortName == item.Publisher).DatasetCount++;
                }
            }
            return(View(vm));
        }