public HttpResponseMessage CreateMetadataDefinitionGroup(MetadataDefinitionGroupResource resource)
        {
            if (resource == null)
            {
                throw new ArgumentEmptyException("resource");
            }

            _logWriter.Info("Cleaning Record");
            resource.Clean();

            _logWriter.Info(String.Format("Beginning of processing creation of Definition Group: {0}", resource.Name));
            _logWriter.Debug(resource.ToString());

            if (_metadataDefinitonGroupReadService.FindByIdentity(resource.Identity).Exists)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Identity already exists. Identities must be unique"));
            }

            if (_metadataDefinitonGroupReadService.FindByName(resource.Name).Exists)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, resource.Name + " already exist. Names must be unique"));
            }

            var command = resource.ToCreateMetadataDefinitionGroupCommand();

            _dispatcher.Dispatch(command);

            _logWriter.Info(String.Format("Completion of processing creation of Definition Group: {0}", resource.Name));

            return(Request.CreateResponse(HttpStatusCode.Created));
        }
        public HttpResponseMessage CreateMetadataDefinitionGroup(MetadataDefinitionGroupResource resource)
        {
            if (resource == null)
                throw new ArgumentEmptyException("resource");

            _logWriter.Info("Cleaning Record");
            resource.Clean();

            _logWriter.Info(String.Format("Beginning of processing creation of Definition Group: {0}", resource.Name));
            _logWriter.Debug(resource.ToString());

            if (_metadataDefinitonGroupReadService.FindByIdentity(resource.Identity).Exists)
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest,"Identity already exists. Identities must be unique");

            if (_metadataDefinitonGroupReadService.FindByName(resource.Name).Exists)
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest,resource.Name + " already exist. Names must be unique");

            var command = resource.ToCreateMetadataDefinitionGroupCommand();
            _dispatcher.Dispatch(command);

            _logWriter.Info(String.Format("Completion of processing creation of Definition Group: {0}",resource.Name));

            return Request.CreateResponse(HttpStatusCode.Created);
        }