/// <summary> /// Put the specified request. /// </summary> /// <param name="request">Request.</param> public object Put(DataPackageUpdateRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package PUT Id='{0}'", request.Id == 0 ? request.Identifier : request.Id.ToString())); DataPackage tmp; if (request.Id != 0) { tmp = DataPackage.FromId(context, request.Id); } else if (!string.IsNullOrEmpty(request.Identifier)) { tmp = DataPackage.FromIdentifier(context, request.Identifier); } else { throw new Exception("Undefined data package, set at least Id or Identifier"); } if (request.Access != null) { switch (request.Access) { case "public": tmp.GrantPermissionsToAll(); Activity activity = new Activity(context, tmp, EntityOperationType.Share); activity.Store(); break; case "private": tmp.RevokePermissionsFromAll(true, false); break; default: break; } } else { tmp = (DataPackage)request.ToEntity(context, tmp); tmp.Store(); } 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(DataPackageExportRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/export PUT Id='{0}'", request.Id == 0 ? request.Identifier : request.Id.ToString())); DataPackage tmp; if (request.Id != 0) { tmp = DataPackage.FromId(context, request.Id); } else if (!string.IsNullOrEmpty(request.Identifier)) { tmp = DataPackage.FromIdentifier(context, request.Identifier); } else { throw new Exception("Undefined data package, set at least Id or Identifier"); } var serie = new Collection(context); serie.Identifier = tmp.Identifier; serie.Name = tmp.Name; var entityType = EntityType.GetEntityType(typeof(DataPackage)); var description = new UriBuilder(context.BaseUrl + "/" + entityType.Keyword + "/" + tmp.Identifier + "/description"); description.Query = "key=" + tmp.AccessKey; serie.CatalogueDescriptionUrl = description.Uri.AbsoluteUri; var user = UserTep.FromId(context, context.UserId); serie.Domain = user.Domain; serie.Store(); result = new WebDataPackageTep(tmp); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
/// <summary> /// Delete the specified request. /// </summary> /// <param name="request">Request.</param> public object Delete(RemoveItemFromDataPackage request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); context.LogInfo(this, string.Format("/data/package/{{DpId}}/item/{{Id}} POST DpId='{0}', Id='{1}'", request.DpId, request.Id)); RemoteResource tmp = RemoteResource.FromId(context, request.Id); tmp.Delete(); DataPackage dp = DataPackage.FromId(context, request.DpId); result = new WebDataPackageTep(dp); 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); }