Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }