public int DeleteDomain(IGlymaSession glymaSession, Guid domainId)
        {
            IDbConnectionAbstraction mapDbConnection        = null;
            IDbConnectionAbstraction parametersDbConnection = null;
            IDbConnectionAbstraction sessionDbConnection    = null;

            int deletions = -1;

            try
            {
                mapDbConnection        = glymaSession.ConnectionFactory.CreateMapDbConnection();
                parametersDbConnection = glymaSession.ConnectionFactory.CreateParametersDbConnection();
                sessionDbConnection    = glymaSession.ConnectionFactory.CreateSessionDbConnection();

                DeleteDomain deleteDomainOperation = new DeleteDomain(mapDbConnection, parametersDbConnection, sessionDbConnection);

                mapDbConnection.Open();
                parametersDbConnection.Open();
                sessionDbConnection.Open();

                deletions = deleteDomainOperation.ExecuteDeletion(domainId);

                sessionDbConnection.Close();
                parametersDbConnection.Close();
                mapDbConnection.Close();
            }
            finally
            {
                if (mapDbConnection != null)
                {
                    mapDbConnection.Dispose();
                }

                if (parametersDbConnection != null)
                {
                    parametersDbConnection.Dispose();
                }

                if (sessionDbConnection != null)
                {
                    sessionDbConnection.Dispose();
                }
            }

            return(deletions);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> DeleteAsync(string domainName)
        {
            var deleteDomain = new DeleteDomain()
            {
                Name = domainName
            };
            var deleteResponse = await _mediator.Send(deleteDomain);

            if (deleteResponse.Result == DeleteResult.NotFound)
            {
                return(NotFound());
            }
            else if (deleteResponse.Result == DeleteResult.NotDeletedDueToDependentObjects)
            {
                return(BadRequest(deleteResponse.Description));
            }

            return(Ok());
        }
Exemplo n.º 3
0
        public void DeleteDomain()
        {
            string expected = File.ReadAllText(Path.Combine(_requestsTestDataPath, "DeleteDomain.xml"));
            var    request  = new DeleteDomain
            {
                SessionId = "sid",
                DomainStr = "testing.com"
            };
            var xml = request.ToXml().InnerXmlFormatted();

            Assert.AreEqual(expected, xml);

            XmlDocument doc = new XmlDocument();

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

            Assert.AreEqual("result", response.Type);
            Assert.True(response.Success);
        }
Exemplo n.º 4
0
        public async Task <Response <DeleteResult> > Handle(DeleteDomain request)
        {
            var domain = await _context.BusinessDomains
                         .Include(x => x.SubDomains)
                         .FirstOrDefaultAsync(x => x.Name.Equals(request.Name));

            if (domain == null)
            {
                return(new Response <DeleteResult>(DeleteResult.NotFound));
            }

            if (domain.SubDomains.Any())
            {
                return(new Response <DeleteResult>(DeleteResult.NotDeletedDueToDependentObjects,
                                                   "The business domain cannot be deleted because it has child sub domains"));
            }

            _context.BusinessDomains.Remove(domain);
            await _context.SaveChangesAsync();

            return(new Response <DeleteResult>(DeleteResult.Deleted));
        }
Exemplo n.º 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);
        }