public void TestDeleteSecurity()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var businessunit = new BusinessUnit();
                businessunit["name"] = "business unit name 5";
                businessunit.Id      = orgAdminUIService.Create(businessunit);
                var orgUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.SystemAdministrator);
                var service = crm.CreateOrganizationService(orgUser.Id);
                var bus     = new dg_bus();
                bus.Id = service.Create(bus);

                var user = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler);
                service = crm.CreateOrganizationService(user.Id);

                try
                {
                    service.Delete(bus.LogicalName, bus.Id);
                    throw new XunitException();
                }
                catch (Exception e)
                {
                    Assert.IsType <FaultException>(e);
                }

                var usersBus = new dg_bus();
                usersBus.Id = service.Create(usersBus);
                service.Delete(usersBus.LogicalName, usersBus.Id);
            }
        }
        public void TestUpdateSecurity()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                var businessunit = new BusinessUnit();
                businessunit["name"] = "business unit name 4";
                businessunit.Id      = orgAdminUIService.Create(businessunit);
                var orgUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.SystemAdministrator);
                var service = crm.CreateOrganizationService(orgUser.Id);
                var bus     = new dg_bus();
                bus.Id = service.Create(bus);

                var user = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler);
                service = crm.CreateOrganizationService(user.Id);

                FaultException faultException = null;
                try {
                    bus.dg_name = "new sadas";
                    service.Update(bus);
                    Assert.Fail();
                } catch (FaultException e) {
                    faultException = e;
                }

                var usersBus = new dg_bus();
                usersBus.Id      = service.Create(usersBus);
                usersBus.dg_name = "sadsa";
                service.Update(usersBus);
            }
        }
        public void TestParentChangeCascading()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                var businessunit = new BusinessUnit();
                businessunit["name"] = "business unit name 6";
                businessunit.Id      = orgAdminUIService.Create(businessunit);
                var parentUser = crm.CreateUser(orgAdminUIService, businessunit.ToEntityReference(), SecurityRoles.Scheduler);
                var service    = crm.CreateOrganizationService(parentUser.Id);
                var bus        = new dg_bus();
                bus.Id = service.Create(bus);

                var parentChild = new dg_child();
                parentChild.dg_parentBusId = bus.ToEntityReference();
                parentChild.Id             = service.Create(parentChild);

                var otherChild = new dg_child();
                otherChild.Id = orgAdminUIService.Create(otherChild);
                FaultException faultException = null;
                try {
                    service.Retrieve(otherChild.LogicalName, otherChild.Id, new ColumnSet(true));
                    Assert.Fail();
                } catch (FaultException e) {
                    faultException = e;
                }

                otherChild.dg_parentBusId = bus.ToEntityReference();
                orgAdminUIService.Update(otherChild);

                service.Retrieve(otherChild.LogicalName, otherChild.Id, new ColumnSet(true));
            }
        }
Exemple #4
0
        public void TestPrecisionSource()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var currency = new TransactionCurrency()
                {
                    ExchangeRate      = 1m,
                    CurrencyPrecision = 3
                };
                currency.Id = orgAdminUIService.Create(currency);

                var bus = new dg_bus()
                {
                    dg_name               = "Woop",
                    dg_Ticketprice        = 10.1234m,
                    TransactionCurrencyId = currency.ToEntityReference()
                };
                bus.Id = orgAdminUIService.Create(bus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value), retrieved.dg_Ticketprice.Value);
                Assert.AreEqual(Math.Round(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value) * 20, 2), retrieved.dg_Udregnet.Value);
                Assert.AreEqual(Math.Round(Math.Round(bus.dg_Ticketprice.Value, currency.CurrencyPrecision.Value) * 20, 1), retrieved.dg_EndnuUdregnet.Value);
            }
        }
Exemple #5
0
        public void TestUserCurrencyIsChosen()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var currentUser = orgAdminUIService.Retrieve(SystemUser.EntityLogicalName, crm.AdminUser.Id, new ColumnSet(true)).ToEntity <SystemUser>();
                var currency    = new TransactionCurrency
                {
                    ExchangeRate      = 0.5m,
                    CurrencyPrecision = 3
                };
                currency.Id = orgAdminUIService.Create(currency);
                currentUser.TransactionCurrencyId = currency.ToEntityReference();
                orgAdminUIService.Update(currentUser);

                var bus = new dg_bus
                {
                    dg_Ticketprice = 10m
                };
                bus.Id = orgAdminUIService.Create(bus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(currency.ToEntityReference(), retrieved.TransactionCurrencyId);

                bus.dg_Ticketprice = 20m;
                orgAdminUIService.Update(bus);
                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(currency.ToEntityReference(), retrieved.TransactionCurrencyId);
            }
        }
Exemple #6
0
        public void TestExchangeRate()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var dollar = new TransactionCurrency
                {
                    ExchangeRate      = 0.6m,
                    CurrencyPrecision = 3
                };
                var dollarId = orgAdminUIService.Create(dollar);
                dollar.Id = dollarId;


                var bus = new dg_bus
                {
                    dg_Ticketprice        = 10m,
                    TransactionCurrencyId = dollar.ToEntityReference()
                };
                var busId = orgAdminUIService.Create(bus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus;
                Assert.IsTrue(retrieved.dg_ticketprice_Base.HasValue);
                Assert.AreEqual(Math.Round(bus.dg_Ticketprice.Value / dollar.ExchangeRate.Value, dollar.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base.Value);
            }
        }
        public void TestDisassociateWOPrimaryNamePlugin()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                EntityReferenceCollection relatedEntities = new EntityReferenceCollection();

                dg_bus bus = new dg_bus {
                    dg_Ticketprice = 1
                };
                bus.Id = orgAdminService.Create(bus);

                dg_child child = new dg_child {
                    dg_name = "Margrethe", dg_parentBusId = bus.ToEntityReference()
                };
                child.Id = orgAdminService.Create(child);


                relatedEntities.Add(new EntityReference(dg_child.EntityLogicalName, child.Id));
                Relationship relationship = new Relationship("dg_bus_parental");

                orgAdminUIService.Disassociate(dg_bus.EntityLogicalName, bus.Id, relationship,
                                               relatedEntities);

                var retrievedBus = dg_bus.Retrieve(orgAdminService, bus.Id, x => x.dg_Ticketprice);
                Assert.AreEqual(26, retrievedBus.dg_Ticketprice);
            }
        }
Exemple #8
0
        public void TestCalculatedIsSet()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                var bus = new dg_bus();
                bus.dg_name = "Buu";
                bus.Id      = orgAdminUIService.Create(bus);
                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.IsNull(retrieved.dg_Udregnet);

                bus.dg_name = "Woop";
                orgAdminUIService.Update(bus);
                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.IsNull(retrieved.dg_Udregnet);
                Assert.IsNull(bus.dg_AllConditions);

                bus.dg_Ticketprice    = 30;
                bus.dg_EtHelTal       = 5;
                bus.dg_Udkoerselsdato = DateTime.Now;
                orgAdminUIService.Update(bus);
                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(bus.dg_Ticketprice * 20, retrieved.dg_Udregnet);
                Assert.AreEqual(bus.dg_EtHelTal - 2, retrieved.dg_WholenumberUdregnet);
                Assert.AreEqual(bus.dg_Udkoerselsdato.Value.AddDays(2), retrieved.dg_DateTimeUdregnet);
                Assert.AreEqual(bus.dg_name.Substring(2), retrieved.dg_TrimLeft);
                Assert.IsNotNull(retrieved.dg_AllConditions);
            }
        }
Exemple #9
0
        public void VirtualTest()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var bus = new dg_bus
                {
                    dg_name = "HelloBus"
                };
                var busId = orgAdminService.Create(bus);

                orgAdminService.Update(new dg_bus
                {
                    dg_busId         = busId,
                    dg_dokumenttyper = new List <dg_dokumenttyper>()
                    {
                        dg_dokumenttyper.Doc, dg_dokumenttyper.PDF
                    }
                });

                var retrieved = orgAdminService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus;
                var dsdsds    = context.dg_busSet.ToList();
                Assert.True(retrieved.dg_dokumenttyper.Any());
                Assert.Equal(new List <dg_dokumenttyper>()
                {
                    dg_dokumenttyper.Doc, dg_dokumenttyper.PDF
                }, retrieved.dg_dokumenttyper);
            }
        }
Exemple #10
0
        public void TestSettingTransactionCurrency()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                var bus   = new dg_bus();
                var busId = orgAdminUIService.Create(bus);
                var query = new QueryExpression(TransactionCurrency.EntityLogicalName);
                query.Criteria = new FilterExpression();
                query.Criteria.AddCondition(new ConditionExpression("isocurrencycode", ConditionOperator.Equal, "DKK"));
                var resp     = orgAdminUIService.RetrieveMultiple(query);
                var currency = resp.Entities.First().ToEntity <TransactionCurrency>();

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(currency.ToEntityReference().Id, retrieved.TransactionCurrencyId.Id);

                bus.dg_Ticketprice = 10m;
                orgAdminUIService.Update(bus);
                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(currency.ToEntityReference().Id, retrieved.TransactionCurrencyId.Id);
            }
        }
Exemple #11
0
        public void TestExchangeIsSet()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                var dollar = new TransactionCurrency();
                dollar.ExchangeRate      = 0.6m;
                dollar.CurrencyPrecision = 3;
                var dollarId = orgAdminUIService.Create(dollar);
                dollar.Id = dollarId;


                var bus = new dg_bus();
                bus.dg_Ticketprice        = 10m;
                bus.TransactionCurrencyId = dollar.ToEntityReference();
                var busId = orgAdminUIService.Create(bus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, busId, new ColumnSet(true)) as dg_bus;
                Assert.IsTrue(retrieved.ExchangeRate.HasValue);
                Assert.AreEqual(dollar.ExchangeRate, retrieved.ExchangeRate);
            }
        }
Exemple #12
0
        public void TestCalculatedIsSetRetrieveMultiple()
        {
            var bus = new dg_bus
            {
                dg_name = "Buu"
            };

            bus.Id = orgAdminUIService.Create(bus);

            var q = new QueryExpression("dg_bus");

            q.ColumnSet = new ColumnSet(true);
            var all = orgAdminService.RetrieveMultiple(q);

            Assert.Single(all.Entities);

            bus.dg_name = "Woop";
            orgAdminUIService.Update(bus);

            all = orgAdminService.RetrieveMultiple(q);
            var retrieved = (dg_bus)all.Entities.Single();

            Assert.Null(retrieved.dg_Udregnet);
            Assert.Null(retrieved.dg_AllConditions);

            bus.dg_Ticketprice    = 30;
            bus.dg_EtHelTal       = 5;
            bus.dg_Udkoerselsdato = DateTime.Now;
            orgAdminUIService.Update(bus);

            all       = orgAdminService.RetrieveMultiple(q);
            retrieved = (dg_bus)all.Entities.Single();
            Assert.Equal(bus.dg_Ticketprice * 20, retrieved.dg_Udregnet);
            Assert.Equal(bus.dg_EtHelTal - 2, retrieved.dg_WholenumberUdregnet);
            Assert.Equal(bus.dg_Udkoerselsdato.Value.AddDays(2), retrieved.dg_DateTimeUdregnet);
            Assert.Equal(bus.dg_name.Substring(2), retrieved.dg_TrimLeft);
            Assert.NotNull(retrieved.dg_AllConditions);
        }
Exemple #13
0
        public void TestRollUp()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var childlessBus = new dg_bus()
                {
                    dg_name = "Buu"
                };
                childlessBus.Id = orgAdminUIService.Create(childlessBus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, childlessBus.Id, new ColumnSet(true)) as dg_bus;
                Assert.IsNull(retrieved.dg_Totalallowance);

                childlessBus.dg_name = "Woop";
                orgAdminUIService.Update(childlessBus);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, childlessBus.Id, new ColumnSet(true)) as dg_bus;
                Assert.IsNull(retrieved.dg_Totalallowance);

                var bus = new dg_bus {
                    dg_name = "Woop"
                };
                bus.Id = orgAdminUIService.Create(bus);

                orgAdminUIService.Create(
                    new dg_child()
                {
                    dg_name      = "Hans Jørgen",
                    dg_Allowance = 20,
                    dg_Skolebus  = new EntityReference
                    {
                        Id          = bus.Id,
                        LogicalName = dg_bus.EntityLogicalName
                    }
                });

                orgAdminUIService.Create(
                    new dg_child()
                {
                    dg_name      = "Hans Gert",
                    dg_Allowance = 50,
                    dg_Skolebus  = new EntityReference
                    {
                        Id          = bus.Id,
                        LogicalName = dg_bus.EntityLogicalName
                    }
                });

                var anotherCurrency = new TransactionCurrency()
                {
                    ExchangeRate      = 0.5m,
                    CurrencyPrecision = 2
                };
                anotherCurrency.Id = orgAdminUIService.Create(anotherCurrency);

                orgAdminUIService.Create(
                    new dg_child()
                {
                    dg_name      = "Børge Hansen",
                    dg_Allowance = 30,
                    dg_Skolebus  = new EntityReference
                    {
                        Id          = bus.Id,
                        LogicalName = dg_bus.EntityLogicalName
                    },
                    TransactionCurrencyId = anotherCurrency.ToEntityReference()
                });

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.IsNull(retrieved.dg_Totalallowance);
                Assert.IsNull(retrieved.dg_MaxAllowance);
                Assert.IsNull(retrieved.dg_MinAllowance);
                Assert.IsNull(retrieved.dg_AvgAllowance);

                var req = new CalculateRollupFieldRequest()
                {
                    FieldName = "dg_totalallowance",
                    Target    = bus.ToEntityReference()
                };
                orgAdminUIService.Execute(req);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(130, retrieved.dg_Totalallowance);
                Assert.IsNull(retrieved.dg_MaxAllowance);
                Assert.IsNull(retrieved.dg_MinAllowance);
                Assert.IsNull(retrieved.dg_AvgAllowance);

                req.FieldName = "dg_maxallowance";
                orgAdminUIService.Execute(req);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(130, retrieved.dg_Totalallowance);
                Assert.AreEqual(60, retrieved.dg_MaxAllowance);
                Assert.IsNull(retrieved.dg_MinAllowance);
                Assert.IsNull(retrieved.dg_AvgAllowance);

                req.FieldName = "dg_minallowance";
                orgAdminUIService.Execute(req);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(130, retrieved.dg_Totalallowance);
                Assert.AreEqual(60, retrieved.dg_MaxAllowance);
                Assert.AreEqual(20, retrieved.dg_MinAllowance);
                Assert.IsNull(retrieved.dg_AvgAllowance);

                req.FieldName = "dg_avgallowance";
                orgAdminUIService.Execute(req);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.AreEqual(130, retrieved.dg_Totalallowance.Value);
                Assert.AreEqual(60, retrieved.dg_MaxAllowance.Value);
                Assert.AreEqual(20, retrieved.dg_MinAllowance.Value);
                Assert.AreEqual(43.33m, retrieved.dg_AvgAllowance.Value);
            }
        }
Exemple #14
0
        public void TestBasesGetUpdated()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var currency = new TransactionCurrency()
                {
                    ExchangeRate      = 0.5m,
                    CurrencyPrecision = 2
                };
                currency.Id = orgAdminUIService.Create(currency);

                // test currency gets set
                var bus = new dg_bus
                {
                    TransactionCurrencyId = currency.ToEntityReference()
                };
                bus.Id = orgAdminUIService.Create(bus);

                var retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(bus.TransactionCurrencyId, retrieved.TransactionCurrencyId);

                // test base value gets updated
                bus.dg_Ticketprice = 100m;
                orgAdminUIService.Update(bus);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                // test currency doesn't update before record gets updated
                var oldExchangeRate = currency.ExchangeRate;
                currency.ExchangeRate = 0.7m;
                orgAdminUIService.Update(currency);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / oldExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                // test base value gets updated when record field value changes
                bus.dg_Ticketprice = 120m;
                orgAdminUIService.Update(bus);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                // test base value gets updated when transactioncurrencyid changes
                var newCurrency = new TransactionCurrency
                {
                    ExchangeRate      = 1m,
                    CurrencyPrecision = 3
                };
                newCurrency.Id = orgAdminUIService.Create(newCurrency);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / currency.ExchangeRate.Value, currency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                bus.TransactionCurrencyId = newCurrency.ToEntityReference();
                orgAdminUIService.Update(bus);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / newCurrency.ExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                // test base value gets updated when state of record changes
                oldExchangeRate          = newCurrency.ExchangeRate;
                newCurrency.ExchangeRate = 0.3m;
                orgAdminUIService.Update(newCurrency);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / oldExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);

                bus.SetState(orgAdminUIService, dg_busState.Inactive);

                retrieved = orgAdminUIService.Retrieve(dg_bus.EntityLogicalName, bus.Id, new ColumnSet(true)) as dg_bus;
                Assert.Equal(Math.Round(bus.dg_Ticketprice.Value / newCurrency.ExchangeRate.Value, newCurrency.CurrencyPrecision.Value), retrieved.dg_ticketprice_Base);
            }
        }