public void SaveDataPackage() { DataPackage def = DataPackage.GetTemporaryForCurrentUser(context); var res = new RemoteResource(context); res.Location = "https://catalog.terradue.com:443/landsat8/search?format=json&uid=LC08_L1GT_070119_20190306_20190306_01_RT"; def.AddResourceItem(res); def.LoadItems(); Assert.AreEqual(1, def.Items.Count); DataPackage dp = new DataPackage(context); dp.Name = "test-dp"; dp.Kind = RemoteResourceSet.KINDRESOURCESETNORMAL; dp.Store(); dp.LoadItems(); Assert.AreEqual(0, dp.Items.Count); foreach (RemoteResource r in def.Resources) { RemoteResource tmpres = new RemoteResource(context); tmpres.Location = r.Location; dp.AddResourceItem(tmpres); } dp.LoadItems(); Assert.AreEqual(1, dp.Items.Count); var res2 = new RemoteResource(context); res2.Location = "https://catalog.terradue.com:443/sentinel3/search?format=json&uid=S3A_SR_2_LAN____20190307T092733_20190307T093355_20190307T102301_0382_042_136______LN3_O_NR_003"; def.AddResourceItem(res2); def.LoadItems(); Assert.AreEqual(2, def.Items.Count); foreach (var r in dp.Resources) { r.Delete(); } dp.Items = new EntityList <RemoteResource>(context); foreach (RemoteResource r in def.Resources) { RemoteResource tmpres = new RemoteResource(context); tmpres.Location = r.Location; dp.AddResourceItem(tmpres); } dp.LoadItems(); Assert.AreEqual(2, dp.Items.Count); }
public object Post(DataPackageAddItemsToDefaultRequestTep request) { //Get all requests from database var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/default/items POST")); DataPackage tmp = DataPackage.GetTemporaryForCurrentUser(context); foreach (WebDataPackageItem item in request) { RemoteResource tmp2 = new RemoteResource(context); tmp2 = item.ToEntity(context, tmp2); tmp.AddResourceItem(tmp2); } result = new WebDataPackageTep(tmp); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
/// <summary> /// Put the specified request. /// </summary> /// <param name="request">Request.</param> public object Put(DataPackageUpdateDefaultRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/default PUT")); DataPackage def = DataPackage.GetTemporaryForCurrentUser(context); //we want to do the copy of a datapackage into the default one if (def.Identifier != request.Identifier) { foreach (RemoteResource res in def.Resources) { res.Delete(); } def.LoadItems(); var tmp = DataPackage.FromIdentifier(context, request.Identifier); foreach (RemoteResource res in tmp.Resources) { RemoteResource tmpres = new RemoteResource(context); tmpres.Location = res.Location; def.AddResourceItem(tmpres); } ActivityTep activity = new ActivityTep(context, tmp, EntityOperationType.View); activity.SetParam("items", tmp.Resources.Count + ""); activity.Store(); } else { def = (DataPackage)request.ToEntity(context, def); } result = new WebDataPackageTep(def); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
/// <summary> /// Post the specified request. /// </summary> /// <param name="request">Request.</param> public object Post(AddItemToDataPackage request) { //Get all requests from database var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/{{DpId}}/item POST DpId='{0}', Location='{1}'", request.DpId, request.Location)); DataPackage tmp = DataPackage.FromId(context, request.DpId); RemoteResource tmp2 = new RemoteResource(context); tmp2 = request.ToEntity(context, tmp2); tmp.AddResourceItem(tmp2); tmp.LoadItems(); result = new WebDataPackageTep(tmp); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Post(DataPackageSaveDefaultRequestTep request) { //Get all requests from database var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/default POST")); DataPackage def = DataPackage.GetTemporaryForCurrentUser(context); DataPackage tmp = new DataPackage(context); context.StartTransaction(); if (string.IsNullOrEmpty(request.Identifier) && string.IsNullOrEmpty(request.Name)) { throw new Exception("No identifier set"); } //var identifier = !string.IsNullOrEmpty(request.Identifier) ? TepUtility.ValidateIdentifier(request.Identifier) : TepUtility.ValidateIdentifier(request.Name); if (request.Overwrite && tmp.OwnerId == context.UserId) { tmp = DataPackage.FromNameAndOwner(context, request.Name, context.UserId); foreach (var res in tmp.Resources) { res.Delete(); } tmp.Items = new EntityList <RemoteResource>(context); } else { tmp = (DataPackage)request.ToEntity(context, tmp); //tmp.Identifier = identifier; try{ tmp.Store(); }catch (DuplicateEntityIdentifierException e) { //tmp = DataPackage.FromIdentifier(context, identifier); //if(tmp.OwnerId == context.UserId){ throw new DuplicateNameException(e.Message); //} else { // throw e; //} }catch (Exception e) { if (e.Message.StartsWith("Duplicate entry")) { throw new DuplicateNameException(e.Message); } throw e; } } foreach (RemoteResource res in def.Resources) { RemoteResource tmpres = new RemoteResource(context); tmpres.Location = res.Location; tmp.AddResourceItem(tmpres); } context.Commit(); result = new WebDataPackageTep(tmp); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }