Example #1
0
        public async Task <ActionResult> PostAsync([FromBody] BusinessDomain businessDomain)
        {
            var createDomain = new CreateDomain()
            {
                Name        = businessDomain.Name,
                Description = businessDomain.Description,
                SubDomains  = businessDomain.SubDomains.Select(x => new CreateSubDomain()
                {
                    Name             = x.Name,
                    Description      = x.Description,
                    ParentDomainName = businessDomain.Name
                }).ToList()
            };

            var response = await _mediator.Send(createDomain);

            if (response.Result == CreateResult.Created)
            {
                return(Created($"api/business-domains/{businessDomain.Name}", null));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Example #2
0
        public void domain_should_not_be_duplicated()
        {
            var domainName          = Fixture.Create <DomainName>();
            var createDomainCommand = new CreateDomain(domainName);

            Assert(new Scenario()
                   .Given(domainName,
                          new DomainWasCreated(domainName))
                   .When(createDomainCommand)
                   .Throws(new WrongExpectedVersionException($"Append failed due to WrongExpectedVersion.Stream: {domainName}, Expected version: -1")));
        }
Example #3
0
        public void CreateDomain()
        {
            string expected = File.ReadAllText(Path.Combine(_requestsTestDataPath, "CreateDomain.xml"));
            var    request  = new CreateDomain
            {
                SessionId        = "sid",
                DomainStr        = "testing.com",
                DomainProperties = new TPropertyValueList
                {
                    Items = new List <TPropertyValue>
                    {
                        new TPropertyValue
                        {
                            APIProperty = new TAPIProperty {
                                PropName = "d_adminemail"
                            },
                            PropertyVal = new TPropertyString {
                                Val = "*****@*****.**"
                            },
                            PropertyRight = TPermission.ReadWrite
                        },
                        new TPropertyValue
                        {
                            APIProperty = new TAPIProperty {
                                PropName = "d_mailboxsize"
                            },
                            PropertyVal = new TPropertyString {
                                Val = "934"
                            },
                            PropertyRight = TPermission.ReadWrite
                        }
                    }
                }
            };
            var xml = request.ToXml().InnerXmlFormatted();

            Assert.AreEqual(expected, xml);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(File.ReadAllText(Path.Combine(_responsesTestDataPath, "CreateDomain.xml")));
            var response = request.FromHttpRequestResult(new HttpRequestResult {
                Response = doc.InnerXml
            });

            Assert.AreEqual("result", response.Type);
            Assert.True(response.Success);
        }
Example #4
0
        public async Task <Response <CreateResult> > Handle(CreateDomain request)
        {
            var businessDomainId = Guid.NewGuid();

            var businessDomain = new BusinessDomain()
            {
                Id          = businessDomainId,
                Name        = request.Name,
                Description = request.Description,
                SubDomains  = request.SubDomains.Select(x => new BusinessSubDomain()
                {
                    Id          = Guid.NewGuid(),
                    Description = x.Description,
                    Name        = x.Name,
                    ParentId    = businessDomainId
                }).ToList()
            };

            await _context.AddAsync(businessDomain);

            await _context.SaveChangesAsync();

            return(new Response <CreateResult>(CreateResult.Created));
        }
Example #5
0
        public void DeleteDomain()
        {
            var api        = new IceWarpRpcApi();
            var authResult = Authenticate(api);

            var domainToDelete         = "deletedomain.com";
            var deleteDomainAdminEmail = "*****@*****.**";

            //Check domain does not exist
            var getDomainProperties = new GetDomainProperties
            {
                SessionId          = authResult.SessionId,
                DomainStr          = domainToDelete,
                DomainPropertyList = new TDomainPropertyList
                {
                    Items = new List <TAPIProperty>
                    {
                        new TAPIProperty {
                            PropName = "D_AdminEmail"
                        }
                    }
                }
            };

            try
            {
                var domainCheckResult = api.Execute(_url, getDomainProperties);
            }
            catch (IceWarpErrorException e)
            {
                //Create domain
                var createDomain = new CreateDomain
                {
                    SessionId        = authResult.SessionId,
                    DomainStr        = domainToDelete,
                    DomainProperties = new TPropertyValueList
                    {
                        Items = new List <TPropertyValue>
                        {
                            new TPropertyValue
                            {
                                APIProperty = new TAPIProperty {
                                    PropName = "D_AdminEmail"
                                },
                                PropertyVal = new TPropertyString {
                                    Val = deleteDomainAdminEmail
                                },
                                PropertyRight = TPermission.ReadWrite
                            }
                        }
                    }
                };
                var createDomainResult = api.Execute(_url, createDomain);
                Assert.True(createDomainResult.Success);

                //Check can get properties for new domain
                var getDomainPropertiesResult = api.Execute(_url, getDomainProperties);
                Assert.AreEqual(1, getDomainPropertiesResult.Items.Count);
                Assert.AreEqual("tpropertystring", getDomainPropertiesResult.Items.First().PropertyVal.ClassName);
                Assert.AreEqual(deleteDomainAdminEmail, ((TPropertyString)getDomainPropertiesResult.Items.First().PropertyVal).Val);
            }

            //Delete domain
            var deleteDomain = new DeleteDomain
            {
                SessionId = authResult.SessionId,
                DomainStr = domainToDelete
            };
            var deleteDomainResult = api.Execute(_url, deleteDomain);

            Assert.True(deleteDomainResult.Success);

            //Check domain does not exist
            var exception = Assert.Throws <IceWarpErrorException>(() => api.Execute(_url, getDomainProperties));

            Assert.AreEqual("domain_invalid", exception.IceWarpError);

            LogOut(api, authResult.SessionId);
        }