/// <summary> /// Post the specified request. /// </summary> /// <param name="request">Request.</param> public object Post(DataPackageCreateRequestTep request) { //Get all requests from database var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebDataPackageTep result; try{ context.Open(); var identifier = !string.IsNullOrEmpty(request.Identifier) ? TepUtility.ValidateIdentifier(request.Identifier) : TepUtility.ValidateIdentifier(request.Name); DataPackage tmp = new DataPackage(context); tmp = (DataPackage)request.ToEntity(context, tmp); if (request.Overwrite && tmp.OwnerId == context.UserId) { tmp = DataPackage.FromIdentifier(context, identifier); foreach (var res in tmp.Resources) { res.Delete(); } } 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; } } } result = new WebDataPackageTep(tmp); context.LogInfo(this, string.Format("/data/package POST Id='{0}'", tmp.Id)); 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(DomainCreateRequest request) { var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); WebDomain result; try{ context.Open(); Domain domain = (request.Id == 0 ? null : Domain.FromId(context, request.Id)); domain = request.ToEntity(context, domain); domain.Identifier = TepUtility.ValidateIdentifier(domain.Identifier); domain.Store(); result = new WebDomain(domain); context.LogInfo(this, string.Format("/domain POST Id='{0}'", request.Id)); context.LogDebug(this, string.Format("Domain {0} created by user {1}", domain.Identifier, User.FromId(context, context.UserId).Username)); context.Close(); }catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }