Exemplo n.º 1
0
        public CswNbtResource GetResource(string metadataname, string id)
        {
            CswNbtAPIGenericRequest Req = new CswNbtAPIGenericRequest(metadataname, id);
            CswNbtResource          Ret = new CswNbtResource();

            var SvcDriver = new CswWebSvcDriver <CswNbtResource, CswNbtAPIGenericRequest>(
                CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null),
                ReturnObj: Ret,
                WebSvcMethodPtr: CswNbtWebServiceREAD.GetResource,
                ParamObj: Req
                );

            SvcDriver.run();

            WebOperationContext ctx = WebOperationContext.Current;

            ctx.OutgoingResponse.StatusCode = Ret.Status;

            if (ctx.OutgoingResponse.StatusCode != HttpStatusCode.OK)
            {
                Ret = null;
            }

            return(Ret);
        }
Exemplo n.º 2
0
        public CswNbtResource Create(Collection <CswNbtWcfProperty> Properties, string metadataname)
        {
            CswNbtAPIGenericRequest Req = new CswNbtAPIGenericRequest(metadataname, string.Empty);
            CswNbtResource          Ret = new CswNbtResource();

            if (null != Properties)
            {
                Req.Properties = Properties;
            }

            var SvcDriver = new CswWebSvcDriver <CswNbtResource, CswNbtAPIGenericRequest>(
                CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null),
                ReturnObj: Ret,
                WebSvcMethodPtr: CswNbtWebServiceCREATE.Create,
                ParamObj: Req
                );

            SvcDriver.run();

            WebOperationContext ctx = WebOperationContext.Current;

            ctx.OutgoingResponse.StatusCode = Ret.Status;

            if (ctx.OutgoingResponse.StatusCode != HttpStatusCode.Created)
            {
                Ret = null;
            }

            return(Ret);
        }
Exemplo n.º 3
0
        public void TestResourceGET()
        {
            const string TestUsername = "******";
            const string RoleName     = "CISPro_Admin";
            const int    TestPageSize = 15;
            const string TestLanguage = "da";

            CswNbtObjClassUser testUser = _createTestUser(TestUsername, RoleName, TestPageSize, TestLanguage);

            CswNbtResource          Resource = new CswNbtResource();
            CswNbtAPIGenericRequest Request  = new CswNbtAPIGenericRequest("User", testUser.NodeId.PrimaryKey.ToString());

            string error = string.Empty;

            try
            {
                CswNbtWebServiceREAD.GetResource(TestData.CswNbtResources, Resource, Request);
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }

            Assert.IsEmpty(error, "GETing a resource failed with exception: " + error);

            //When CIS-53085 is finished, we may want to consider verifying the prop values at the top of this method is equal to the resource fetched
        }
Exemplo n.º 4
0
 public void Delete(CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
 {
     if (hasPermission(GenericRequest, Return))
     {
         try
         {
             CswNbtNode DoomedNode = _CswNbtResources.Nodes.GetNode(GenericRequest.NodeId);
             if (null != DoomedNode && GenericRequest.MetaDataName == DoomedNode.getNodeType().NodeTypeName)
             {
                 DoomedNode.delete();
                 Return.Status = HttpStatusCode.OK;
             }
             else
             {
                 Return.Status = HttpStatusCode.NotFound;
             }
         }
         catch (Exception)
         {
             Return.Status = HttpStatusCode.InternalServerError;
         }
     }
     else
     {
         Return.Status = HttpStatusCode.Forbidden;
     }
 }
Exemplo n.º 5
0
        public void Create(CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
        {
            if (hasPermission(GenericRequest, Return))
            {
                try
                {
                    CswNbtMetaDataNodeType NodeType = _CswNbtResources.MetaData.getNodeType(GenericRequest.MetaDataName);
                    CswNbtNode             NewNode  = _CswNbtResources.Nodes.makeNodeFromNodeTypeId(NodeType.NodeTypeId, IsTemp : GenericRequest.Properties.Count > 0, OnAfterMakeNode : delegate(CswNbtNode node)
                    {
                        foreach (CswNbtWcfProperty WcfProp in GenericRequest.Properties)
                        {
                            ReadPropertyData(node, WcfProp);
                        }
                    });


                    Return.NodeId       = NewNode.NodeId;
                    Return.NodeName     = NewNode.NodeName;
                    Return.NodeType     = NewNode.getNodeType().NodeTypeName;
                    Return.ObjectClass  = NewNode.ObjClass.ObjectClass.ObjectClassName;
                    Return.URI          = BuildURI(NodeType.NodeTypeName, NewNode.NodeId.PrimaryKey);
                    Return.PropertyData = GetPropertyData(NewNode);

                    Return.Status = HttpStatusCode.Created;
                }
                catch (Exception)
                {
                    Return.Status = HttpStatusCode.InternalServerError;
                }
            }
            else
            {
                Return.Status = HttpStatusCode.Forbidden;
            }
        }
Exemplo n.º 6
0
        public void TestCreate()
        {
            CswNbtMetaDataNodeType UserNT = TestData.CswNbtResources.MetaData.getNodeType("User");

            if (null == UserNT)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Unable to create a test User for REST API unit tests - no User NT was found", "Could not find a user NT by name 'User'");
            }

            CswNbtAPIGenericRequest Request         = new CswNbtAPIGenericRequest("User", string.Empty);
            CswNbtResource          CreatedResource = new CswNbtResource();

            CswNbtWebServiceCREATE.Create(TestData.CswNbtResources, CreatedResource, Request);

            CswNbtObjClassUser createdUser = TestData.CswNbtResources.Nodes.GetNode(CreatedResource.NodeId);

            Assert.IsNotNull(createdUser, "Created User was null when fetching from CswNbtResources");

            //When CIS-53088 is finished we should consider extending this to also add POST data to test creating the user with some property values
        }
Exemplo n.º 7
0
        public void TestDelete()
        {
            CswNbtObjClassUser      TestUser = _createTestUser("TestDeleteUser1", "CISPro_Admin", 15, "en");
            CswNbtAPIGenericRequest Request  = new CswNbtAPIGenericRequest("User", TestUser.NodeId.PrimaryKey.ToString());

            CswNbtResource EditedResource = new CswNbtResource();
            string         error          = string.Empty;

            try
            {
                CswNbtWebServiceDELETE.Delete(TestData.CswNbtResources, EditedResource, Request);
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }
            Assert.IsEmpty(error, "Delete failed with exception: " + error);

            CswNbtObjClassUser User = TestData.CswNbtResources.Nodes.GetNode(TestUser.NodeId);

            Assert.IsNull(User, "User was not null when it should have been");
        }
Exemplo n.º 8
0
        public void Update(CswNbtResource ResourceToUpdate, string metadataname, string id)
        {
            WebOperationContext ctx = WebOperationContext.Current;

            CswNbtAPIReturn         Ret = new CswNbtAPIReturn();
            CswNbtAPIGenericRequest Req = new CswNbtAPIGenericRequest(metadataname, id);

            bool idsMatch = true;

            if (null != ResourceToUpdate)
            {
                Req.ResourceToUpdate = ResourceToUpdate;
                if (ResourceToUpdate.NodeId.PrimaryKey != Req.NodeId.PrimaryKey)
                {
                    //if someone posts a different node with a different ID in the URI template that's a problem.
                    ctx.OutgoingResponse.StatusCode = HttpStatusCode.InternalServerError;
                    idsMatch = false;
                }
            }

            if (idsMatch)
            {
                var SvcDriver = new CswWebSvcDriver <CswNbtAPIReturn, CswNbtAPIGenericRequest>(
                    CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null),
                    ReturnObj: Ret,
                    WebSvcMethodPtr: CswNbtWebServiceUPDATE.Edit,
                    ParamObj: Req
                    );

                SvcDriver.run();
                ctx.OutgoingResponse.StatusCode = Ret.Status;
            }

            if (ctx.OutgoingResponse.StatusCode != HttpStatusCode.OK)
            {
                Ret = null;
            }
        }
Exemplo n.º 9
0
        public void TestUpdate()
        {
            CswNbtObjClassUser      TestUser        = _createTestUser("Username1", "CISPro_Admin", 15, "en");
            CswNbtAPIGenericRequest Request         = new CswNbtAPIGenericRequest("User", TestUser.NodeId.PrimaryKey.ToString());
            CswNbtResource          FetchedResource = new CswNbtResource();

            CswNbtWebServiceREAD.GetResource(TestData.CswNbtResources, FetchedResource, Request);

            CswNbtMetaDataNodeType     UserNT       = TestData.CswNbtResources.MetaData.getNodeType("User");
            CswNbtMetaDataNodeTypeProp UserNameProp = UserNT.getNodeTypeProp("Username");

            const string NewFirstName = "EditedFirstName";

            FetchedResource.PropertyData.properties["First Name"].values["text"] = NewFirstName;

            CswNbtAPIGenericRequest EditRequest = new CswNbtAPIGenericRequest("User", TestUser.NodeId.PrimaryKey.ToString())
            {
                ResourceToUpdate = FetchedResource
            };
            CswNbtResource EditedResource = new CswNbtResource();

            string error = string.Empty;

            try
            {
                CswNbtWebServiceUPDATE.Edit(TestData.CswNbtResources, EditedResource, EditRequest);
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }
            Assert.IsEmpty(error, "Edit failed with the following exception: " + error);

            CswNbtObjClassUser EditedUser = TestData.CswNbtResources.Nodes.GetNode(TestUser.NodeId);

            Assert.AreEqual(EditedUser.FirstNameProperty.Text, NewFirstName, "Test first name did not have the same first name as the one supplied for the API EDIT request");
        }
Exemplo n.º 10
0
 public void GetResource(CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
 {
     if (hasPermission(GenericRequest, Return))
     {
         try
         {
             CswNbtNode Node = _CswNbtResources.Nodes.GetNode(GenericRequest.NodeId);
             if (null != Node && GenericRequest.MetaDataName.ToLower() == Node.getNodeType().NodeTypeName.ToLower())
             {
                 Return.NodeId      = GenericRequest.NodeId;
                 Return.NodeName    = Node.NodeName;
                 Return.NodeType    = Node.getNodeType().NodeTypeName;
                 Return.ObjectClass = Node.ObjClass.ObjectClass.ObjectClassName;
                 CswNbtMetaDataPropertySet propSet = Node.getObjectClass().getPropertySet();
                 if (null != propSet)
                 {
                     Return.PropertySet = propSet.Name;
                 }
                 Return.URI          = BuildURI(Return.NodeType, Node.NodeId.PrimaryKey);
                 Return.PropertyData = GetPropertyData(Node);
             }
             else
             {
                 Return.Status = HttpStatusCode.NotFound;
             }
         }
         catch (Exception)
         {
             Return.Status = HttpStatusCode.InternalServerError;
         }
     }
     else
     {
         Return.Status = HttpStatusCode.Forbidden;
     }
 }
Exemplo n.º 11
0
        public static void Delete(ICswResources CswResources, CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
        {
            CswNbtWebServiceDELETE POST = new CswNbtWebServiceDELETE((CswNbtResources)CswResources);

            POST.Delete(Return, GenericRequest);
        }
Exemplo n.º 12
0
        public static void Create(ICswResources CswResources, CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
        {
            CswNbtWebServiceCREATE POST = new CswNbtWebServiceCREATE((CswNbtResources)CswResources);

            POST.Create(Return, GenericRequest);
        }
Exemplo n.º 13
0
        public static void GetResource(ICswResources CswResources, CswNbtResource Return, CswNbtAPIGenericRequest GenericRequest)
        {
            CswNbtWebServiceREAD GET = new CswNbtWebServiceREAD((CswNbtResources)CswResources);

            GET.GetResource(Return, GenericRequest);
        }