Example #1
0
        public void WhoAmIRequestForOtherUser()
        {
            var bu = new BusinessUnit {
                Name = "child bu", ParentBusinessUnitId = crm.RootBusinessUnit
            };

            bu.Id = orgAdminUIService.Create(bu);
            var user = crm.CreateUser(orgAdminService, new SystemUser {
                BusinessUnitId = bu.ToEntityReference()
            }, SecurityRoles.SalesManager) as SystemUser;
            var service = crm.CreateOrganizationService(user.Id);
            var whoAmI  = (WhoAmIResponse)service.Execute(new WhoAmIRequest());

            Assert.AreEqual(whoAmI.UserId, user.Id);
            Assert.AreEqual(whoAmI.BusinessUnitId, bu.Id);
        }
        //Create new BusinessUnit - complete all data to include ["BusinessUnitId(PK), ect ect ect ect ect etc etc"]
        public ActionResult Create(BusinessUnit businessUnit)
        {
            try
            {
                businessUnit.Active = true;         // I have set active so when its created it shows on the view.
                db.BusinessUnits.Add(businessUnit); //Creating a new BU within the Database.
                db.SaveChanges();                   // Save the change to the database.


                return(RedirectToAction("Index")); //After filling in the form the user is taken back to main paid (index) where all active BU's are now showing.
            }
            catch
            {
                return(View(businessUnit)); // reutrn the view
            }
        }
        // GET: BusinessUnits/Edit/5
        /// <summary>
        ///This Controller Action uses a Get request so the user can edit the details of a selected BU
        /// </summary>
        public ActionResult Edit(int?id)
        {
            // if ID is equal to null
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); // return with error
            }

            BusinessUnit businessUnit = db.BusinessUnits.Find(id); // find the specified BU

            if (businessUnit == null)                              //if its not there
            {
                return(HttpNotFound());                            //return errer
            }
            return(View(businessUnit));                            //otherwise return to view.
        }
            public static BusinessUnit CreateBusinessUnit(Guid id, string name)
            {
                // prepare
                var writeRepository = new BusinessUnitWriteRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString)));
                var readRepository  = new BusinessUnitReadRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString)));

                // create
                var businessUnit = new BusinessUnit(id, name);

                writeRepository.CreateAsync(businessUnit).GetAwaiter().GetResult();

                // result
                var result = readRepository.GetAsync(id).Result;

                return(result);
            }
Example #5
0
        public KeyValuePair <int, String> spBusinessUnit_Update(BusinessUnit model, SessionForSP sessionParam)
        {
            var param = new SqlParameter[] {
                new SqlParameter("@BusinessUnitId", model.BusinessUnitId),
                new SqlParameter("@Name", model.Name),
                new SqlParameter("@DivisionName", CheckForDbNull(model.Division)),
                new SqlParameter("@WebSiteURL", CheckForDbNull(model.WebSite)),
                new SqlParameter("@MainPhone", CheckForDbNull(model.MainPhone)),
                new SqlParameter("@OtherPhone", CheckForDbNull(model.OtherPhone)),
                new SqlParameter("@Fax", CheckForDbNull(model.Fax)),
                new SqlParameter("@EMailAddress", CheckForDbNull(model.eMail)),
                new SqlParameter("@ModifiedBy", SqlDbType.UniqueIdentifier)
                {
                    Value = model.ModifiedByID
                },
                new SqlParameter("@OrganizationId", sessionParam.OrganizationID),
                new SqlParameter("@Bill_City", CheckForDbNull(model.Bill_City)),
                new SqlParameter("@Bill_Country", CheckForDbNull(model.Bill_Country)),
                new SqlParameter("@Bill_Line1", CheckForDbNull(model.Bill_Street1)),
                new SqlParameter("@Bill_Line2", CheckForDbNull(model.Bill_Street2)),
                new SqlParameter("@Bill_Line3", CheckForDbNull(model.Bill_Street3)),
                new SqlParameter("@Bill_PostalCode", CheckForDbNull(model.Bill_PostalCode)),
                new SqlParameter("@Bill_StateOrProvince", CheckForDbNull(model.Bill_StateOrProvince)),
                new SqlParameter("@Ship_City", CheckForDbNull(model.Ship_City)),
                new SqlParameter("@Ship_Country", CheckForDbNull(model.Ship_Country)),
                new SqlParameter("@Ship_Line1", CheckForDbNull(model.Ship_Street1)),
                new SqlParameter("@Ship_Line2", CheckForDbNull(model.Ship_Street2)),
                new SqlParameter("@Ship_Line3", CheckForDbNull(model.Ship_Street3)),
                new SqlParameter("@Ship_PostalCode", CheckForDbNull(model.Ship_PostalCode)),
                new SqlParameter("@Ship_StateOrProvince", CheckForDbNull(model.Ship_StateOrProvince)),
                new SqlParameter("@RetVal", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                },
                new SqlParameter("@Message", SqlDbType.NVarChar, 200)
                {
                    Direction = ParameterDirection.Output
                }
            };

            int rc = ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("exec [CRM].[BusinessUnit_Update] @BusinessUnitId,@Name,@DivisionName,@WebSiteURL,@MainPhone,@OtherPhone,@Fax,@EMailAddress,@ModifiedBy,@OrganizationId,@Bill_City,@Bill_Country,@Bill_Line1,@Bill_Line2,@Bill_Line3,@Bill_PostalCode,@Bill_StateOrProvince,@Ship_City,@Ship_Country,@Ship_Line1,@Ship_Line2,@Ship_Line3,@Ship_PostalCode,@Ship_StateOrProvince,@RetVal out, @Message out", param);

            int    retVal   = (int)param[24].Value;
            string valueRes = param[25].Value.ToString();

            return(new KeyValuePair <int, string>(retVal, valueRes));
        }
Example #6
0
 public ActionResult Edit(int id, BusinessUnit bu)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Entry(bu).State = EntityState.Modified;
             bu.Active          = true;
             db.SaveChanges();
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View(bu));
     }
 }
        private static string GetBusinessUnitId(object bu)
        {
            ///TODO: this catches the first ID always, although the same name can be used multiple times in the structure
            /// need to find a delimier character "/" and "\" can be part of BU names...
            string buName = Convert.ToString(bu);
            string result = null;

            if (bu != null && BusinessUnits != null && BusinessUnits.Count > 0)
            {
                BusinessUnit unit = BusinessUnits.FirstOrDefault(b => b.name.Equals(buName, StringComparison.InvariantCultureIgnoreCase));
                if (unit != null)
                {
                    result = unit.id;
                }
            }
            return(result);
        }
Example #8
0
        private BusinessUnitModel MapDbObjectToModel(BusinessUnit dbBusinessUnit)
        {
            BusinessUnitModel businessUnitModel = new BusinessUnitModel();

            if (dbBusinessUnit != null)
            {
                businessUnitModel.IDBusinessUnit        = dbBusinessUnit.IDBusinessUnit;
                businessUnitModel.Name                  = dbBusinessUnit.Name;
                businessUnitModel.IDBusinessUnitManager = dbBusinessUnit.IDBusinessUnitManager;
                if (dbBusinessUnit.Employee != null)
                {
                    businessUnitModel.BusinessUnitManagerName = dbBusinessUnit.Employee.FirstName + " " + dbBusinessUnit.Employee.LastName;
                }
                return(businessUnitModel);
            }
            return(null);
        }
Example #9
0
        public void ExecuteNewBusinessAreaCommand(Object obj)
        {
            AddBusinessAreaController addBusinessAreaController = App.Container.Resolve <AddBusinessAreaController>();
            BusinessUnit businessUnit = addBusinessAreaController.AddBusinessArea();

            if (businessUnit == null)
            {
                return;
            }
            var result = socket.AddBusinessUnit(businessUnit);

            if (result == false)
            {
                MessageBox.Show("Fehler beim Hinzufügen des Geschäftsbereiches!");
            }
            parent.restartBusinessUnitCommand();
        }
Example #10
0
        public bool ChangeBusinessUnit(BusinessUnit oldBusinessUnit, BusinessUnit newBusinessUnit)
        {
            //Optimistic Locking
            if (_repositoryBusinessUnit.getUnitFromUnitName(oldBusinessUnit.Name).Version > newBusinessUnit.Version)
            {
                return(false);
            }

            try
            {
                _repositoryBusinessUnit.Insert(newBusinessUnit);
            }
            catch
            { return(false); }

            return((_repositoryBusinessUnit.getUnitFromUnitName(newBusinessUnit.Name) != null) ? true : false);
        }
Example #11
0
        ///////////////////////////////////////////////
        /////////////  BUSINESSAREA  /////////////////
        private void ExecuteNewBusinessAreaCommand(Object obj)
        {
            AddBusinessAreaController addBusinessAreaController = new AddBusinessAreaController();
            BusinessUnit businessUnit = addBusinessAreaController.AddBusinessArea();

            if (businessUnit == null)
            {
                return;
            }
            socket.AddBusinessUnit(businessUnit);

            //Fetch new BusinessAreas
            fleetManagementViewModel.ActiveViewModel = new BusinessAreasViewController().Initialize();
            (fleetManagementViewModel.ActiveViewModel as BusinessAreasViewModel).BusinessAreas = new ObservableCollection <BusinessUnit>(socket.GetAllBusinessUnits());

            //Persist Entry State BusinessAreas
            (fleetManagementViewModel.ActiveViewModel as BusinessAreasViewModel).entryBusinessArea = (fleetManagementViewModel.ActiveViewModel as BusinessAreasViewModel).BusinessAreas.ToList();
        }
Example #12
0
        public ActionResult Delete(int id, BusinessUnit bu)
        {
            try
            {
                bu = db.BusinessUnits.Find(id);
                if (bu.Active == true)
                {
                    bu.Active = false;
                }
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Example #13
0
 public async Task <bool> CreateBusinessUnit(BusinessUnit entity)
 {
     try
     {
         var result = false;
         _dataRepositories.BusinessUnitRepository.Add(entity);
         _dataRepositories.BusinessUnitRepository.Save();
         if (entity.BusinessUnitId != Guid.NewGuid())
         {
             result = true;
         }
         return(await Task.FromResult(result));
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
 }
        public TestDefaultBusinessUnitTeams(XrmMockupFixture fixture) : base(fixture)
        {
            EntityReference businessUnitId = crm.RootBusinessUnit;

            _businessUnit1 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 1"
            };

            _businessUnit2 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 2"
            };
            _businessUnit2.Id = orgAdminService.Create(_businessUnit2);

            _businessUnit3 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 3"
            };
            _businessUnit3.Id = orgAdminService.Create(_businessUnit3);
        }
 public IActionResult Put([FromBody] BusinessUnit businessUnit)
 {
     try
     {
         if (ModelState.IsValid && _unitOfWork.BusinessUnit.Update(businessUnit))
         {
             return(Ok(new { Message = "Línea de negocio se ha actualizado" }));
         }
         else
         {
             return(BadRequest());
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(500, "Internal server error: " + ex.Message));
     }
 }
        public void Initialize()
        {
            EntityReference businessUnitId = crm.RootBusinessUnit;

            _businessUnit1 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 1"
            };

            _businessUnit2 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 2"
            };
            _businessUnit2.Id = orgAdminService.Create(_businessUnit2);

            _businessUnit3 = new BusinessUnit {
                ParentBusinessUnitId = businessUnitId, Name = "Business Unit 3"
            };
            _businessUnit3.Id = orgAdminService.Create(_businessUnit3);
        }
Example #17
0
        public void SeedBusinessUnits(GearContext context, UserManager <ApplicationUser> userManager)
        {
            if (context.BusinessUnits.Any(u => !u.IsDeletable))
            {
                return;
            }
            var user = userManager.FindByEmailAsync("*****@*****.**").Result;

            var invisibleBusinessUnit = new BusinessUnit
            {
                IsDeletable = false
            };

            invisibleBusinessUnit.CreateEnd(Guid.NewGuid(), "Uncategorized", user.Id);

            context.BusinessUnits.Add(invisibleBusinessUnit);
            context.SaveChanges();
        }
    static void InitBU()
    {
        BusinessUnit BURoot = new BusinessUnit()
        {
            BusinessUnitID = 1, BusinessName = "BusinessUnitA"
        };

        BUs.Add(BURoot);
        BusinessUnit BUlevel11 = new BusinessUnit()
        {
            BusinessUnitID = 2, BusinessName = "BusinessUnitB", ParentBusinessUnit = BURoot
        };
        BusinessUnit BUlevel12 = new BusinessUnit()
        {
            BusinessUnitID = 3, BusinessName = "BusinessUnitC", ParentBusinessUnit = BURoot
        };

        BUs.Add(BUlevel11);
        BUs.Add(BUlevel12);
        BusinessUnit BUlevel121 = new BusinessUnit()
        {
            BusinessUnitID = 4, BusinessName = "BusinessUnitD", ParentBusinessUnit = BUlevel12
        };
        BusinessUnit BUlevel122 = new BusinessUnit()
        {
            BusinessUnitID = 5, BusinessName = "BusinessUnitE", ParentBusinessUnit = BUlevel12
        };

        BUs.Add(BUlevel121);
        BUs.Add(BUlevel122);
        BusinessUnit BUlevel1211 = new BusinessUnit()
        {
            BusinessUnitID = 6, BusinessName = "BusinessUnitF", ParentBusinessUnit = BUlevel121
        };

        BUs.Add(BUlevel1211);
        BusinessUnit BUlevel111 = new BusinessUnit()
        {
            BusinessUnitID = 7, BusinessName = "BusinessUnitG", ParentBusinessUnit = BUlevel11
        };

        BUs.Add(BUlevel111);
    }
Example #19
0
        public void TestSendMailWorkflow()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                crm.AddWorkflow(Path.Combine("../../..", "Metadata", "Workflows", "SendMailWorkflow.xml"));
                var businessunit = new BusinessUnit
                {
                    Name = "delegatelab4"
                };
                businessunit.Id = orgAdminUIService.Create(businessunit);

                crm.CreateUser(orgAdminService,
                               new SystemUser()
                {
                    Id             = new Guid("9732d6d5-8e46-44e1-b408-32d3801c5724"),
                    FirstName      = "Kaspar",
                    LastName       = "Bøgh Christensen",
                    BusinessUnitId = crm.RootBusinessUnit
                }, SecurityRoles.SystemAdministrator);

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

                var acc = new Account
                {
                    Name = "Some name"
                };
                acc.Id = service.Create(acc);

                var retrieved = orgAdminUIService.Retrieve(Account.EntityLogicalName, acc.Id, new ColumnSet(true)) as Account;

                var email = orgAdminService.RetrieveMultiple(new QueryExpression
                {
                    EntityName = Email.EntityLogicalName,
                    ColumnSet  = new ColumnSet(true)
                }).Entities.FirstOrDefault() as Email;

                Assert.IsNotNull(email);
                Assert.AreEqual("&lt;span&gt;&lt;span&gt;Some kind of email&lt;/span&gt;&lt;/span&gt;", email.Description);
                Assert.AreEqual("Something", email.Subject);
                Assert.AreEqual(retrieved.ToEntityReference(), email.RegardingObjectId);
            }
        }
Example #20
0
 private void GivenBusinessUnits()
 {
     Gwg = new BusinessUnitBuilder(this.session).WithExternalPrimaryKey(12)
           .WithAbbreviation("GWG" + "")
           .WithName("Global")
           .Build();
     Corporate = new BusinessUnitBuilder(this.session).WithExternalPrimaryKey(9)
                 .WithAbbreviation("CORP")
                 .WithName("Corporate")
                 .Build();
     IT = new BusinessUnitBuilder(this.session).WithExternalPrimaryKey(18)
          .WithAbbreviation("GIT" + "")
          .WithName("Global IT")
          .Build();
     HR = new BusinessUnitBuilder(this.session).WithExternalPrimaryKey(19)
          .WithAbbreviation("GHR")
          .WithName("Global HR")
          .Build();
 }
Example #21
0
        public void TestOwningBusinessUnitValidNameWorkflow()
        {
            using (var context = new Xrm(orgAdminUIService)) {
                crm.AddWorkflow(Path.Combine("../..", "Metadata", "Workflows", "OwningBUWorkflow.xml"));
                var businessunit = new BusinessUnit();
                businessunit.Name = "delegatelab4";
                businessunit.Id   = orgAdminUIService.Create(businessunit);

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

                var acc = new Account();
                acc.Name = "Some name";
                acc.Id   = service.Create(acc);

                var retrieved = orgAdminUIService.Retrieve(Account.EntityLogicalName, acc.Id, new ColumnSet(true)) as Account;
                Assert.AreEqual("SetOwningBU", retrieved.Name);
            }
        }
Example #22
0
        public ActionResult Create(BusinessUnit bu)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.BusinessUnits.Add(bu);
                    bu.Active = true;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View(bu));
            }
        }
        public void CreateWithAlreadyExistingNameShouldFail()
        {
            // Arrange
            var id   = Guid.NewGuid();
            var name = "name";

            RepositoryHelper.ForBusinessUnit.CreateBusinessUnit(id, name);

            var otherId   = Guid.NewGuid();
            var otherName = name;

            var businessUnit = new BusinessUnit(id, name);

            // Act
            Action act = () => { _repository.CreateAsync(businessUnit).GetAwaiter().GetResult(); };

            // Assert
            act.Should().Throw <UniqueKeyException>();
        }
        public ActionResult Departments(BusinessUnitEditorModel model)
        {
            if (ModelState.IsValid)
            {
                //Build in duplicate check (Department Name)
                var department = new BusinessUnit()
                {
                    Name = model.Name
                };
                context.BusinessUnit.Add(department);
                context.SaveChanges();

                var BUid = context.BusinessUnit.Where(x => x.Name == model.Name).Select(x => x.BusinessUnitId).FirstOrDefault();

                var access = new BusinessUnitAccess()
                {
                    BusinessUnitId = BUid, RoleId = model.RoleId
                };
                context.BusinessUnitAccess.Add(access);

                var managers = new BusinessUnitManagement()
                {
                    BusinessUnitId = BUid, TeamLeader = model.TeamLeader, GeneralManager = model.GeneralManager, HOD = model.HOD
                };                                                                                                                                                            //
                context.BusinessUnitManagement.Add(managers);

                context.SaveChanges();
                //return View(ViewBag.message("Successfully Submitted Department :" + model.Name));
                var newmodel = new BusinessUnitEditorModel()
                {
                    RoleItems = GetRoleList()
                };
                return(View(newmodel));

                //If duplicate send duplicate message back
            }
            else
            {
                //return View(ViewBag.message("Unable to submit department, please review and ensure all data is filled in."));
                return(View());
            }
        }
Example #25
0
    /// <summary>
    /// 根据编号返回特定的事业部对象
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public static BusinessUnit GetBUByID(int id)
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand    cmd  = new SqlCommand("SELECT * FROM [BusinessUnits] WHERE [BuID] = @BuID", conn);

        cmd.Parameters.Add("@BuID", SqlDbType.Int).Value = id;
        conn.Open();
        SqlDataReader sdr = cmd.ExecuteReader();
        BusinessUnit  bu  = null;

        if (sdr.Read())
        {
            bu.buID   = (int)sdr["BuID"];
            bu.buCode = (string)sdr["BuCode"];
            bu.buName = (string)sdr["BuName"];
        }
        sdr.Close();
        conn.Close();
        return(bu);
    }
Example #26
0
        public bool DeleteBusinessUnit(BusinessUnit businessUnit)
        {
            if (businessUnit == null)
            {
                return(false);
            }
            if (_repositoryBusinessUnit.getUnitFromUnitName(businessUnit.Name) == null)
            {
                return(false);
            }

            try
            {
                _repositoryBusinessUnit.Delete(businessUnit);
            }
            catch
            { return(false); }

            return((_repositoryBusinessUnit.getUnitFromUnitName(businessUnit.Name) == null) ? true : false);
        }
        public void AddCompanyBusinessUnit()
        {
            Console.Write("Enter Business Unit Name : ");
            unitname = Console.ReadLine();

            try
            {
                BusinessUnit businessunit = new BusinessUnit(unitname);
                db.BusinessUnits.Add(businessunit);
                db.SaveChanges();
                Console.WriteLine("Business Unit Added Sucessfully....!");
                viewBusinessUnit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Something Went Wrong.....");
                CompanyMenu();
            }
        }
        public async Task CreateShouldSucceed()
        {
            // Arrange
            var id   = Guid.NewGuid();
            var name = "name";

            var businessUnit = new BusinessUnit(id, name);

            // Act
            await _repository.CreateAsync(businessUnit);

            // Assert
            var data = RepositoryHelper.ForBusinessUnit.GetBusinessUnits();

            data.Should().HaveCount(1);
            var result = data.First();

            result.Id.Should().Be(id);
            result.Name.Should().Be(name);
        }
        public void TestCreateSecurity()
        {
            using (var context = new Xrm(orgAdminUIService))
            {
                var orgUser = new SystemUser();
                orgUser.Id = orgAdminUIService.Create(orgUser);

                var businessunit = new BusinessUnit();
                businessunit["name"] = "business unit name 1";
                businessunit.Id      = orgAdminUIService.Create(businessunit);

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

                try
                {
                    schedulerService.Create(new Lead());
                    throw new XunitException();
                }
                catch (Exception e)
                {
                    Assert.IsType <FaultException>(e);
                }

                schedulerService.Create(new Contact());

                try
                {
                    var contact = new Contact
                    {
                        OwnerId = orgUser.ToEntityReference()
                    };
                    schedulerService.Create(contact);
                    throw new XunitException();
                }
                catch (Exception e)
                {
                    Assert.IsType <FaultException>(e);
                }
            }
        }
Example #30
0
        public bool AddBusinessUnit(BusinessUnit businessUnit)
        {
            if (businessUnit.Name == null)
            {
                return(false);
            }

            if (_repositoryBusinessUnit.getUnitFromUnitName(businessUnit.Name) != null)
            {
                return(false);
            }

            try
            {
                _repositoryBusinessUnit.Save(businessUnit);
            }
            catch
            { return(false); }

            return((_repositoryBusinessUnit.getUnitFromUnitName(businessUnit.Name) != null) ? true : false);
        }
        /// <summary>
        /// Creates any entity records that this sample requires.
        /// </summary>
        public void CreateRequiredRecords()
        {
            #region create users

            Console.WriteLine("  Creating users");
            var ldapPath = "";
            _users = 
                SystemUserProvider.RetrieveSalespersons(_serviceProxy, ref ldapPath);
            _users.Add(SystemUserProvider.RetrieveSystemUser(
                "dparker", "Darren", "Parker", "Salesperson", 
                _serviceProxy, ref ldapPath));

            #endregion

            #region fetch root business unit

            // Retrieve the root business unit to use for creating the team for the
            // sample.
            var businessUnitQuery = new QueryExpression
            {
                EntityName = BusinessUnit.EntityLogicalName,
                ColumnSet = new ColumnSet("businessunitid"),
                Criteria = new FilterExpression()
            };

            businessUnitQuery.Criteria.AddCondition("parentbusinessunitid",
                ConditionOperator.Null);
            var businessUnitResult = _serviceProxy.RetrieveMultiple(businessUnitQuery);
            _rootBusinessUnit = businessUnitResult.Entities[0].ToEntity<BusinessUnit>();

            #endregion

            #region create new business unit

            Console.WriteLine("  Creating new business unit");
            _buisnessUnit = new BusinessUnit()
            {
                Name = "A Sample Business Unit",
                ParentBusinessUnitId = _rootBusinessUnit.ToEntityReference()
            };
            _buisnessUnit.Id = _serviceProxy.Create(_buisnessUnit);

            #endregion

            #region create team

            Console.WriteLine("  Creating a user team");
            _team = new Team
            {
                AdministratorId = 
                    new EntityReference(SystemUser.EntityLogicalName, _users[0]),
                Name = "Sample team",
                BusinessUnitId = _rootBusinessUnit.ToEntityReference()
            };
            _team.Id = _serviceProxy.Create(_team);

            var salespersonRole = (from role in _context.RoleSet
                                   where role.Name == "Salesperson" 
                                   && role.BusinessUnitId.Id == _rootBusinessUnit.Id
                                   select role).First();

            // assign role to the team
            _serviceProxy.Associate(
                Team.EntityLogicalName,
                _team.Id,
                new Relationship("teamroles_association"),
                new EntityReferenceCollection() { 
                    salespersonRole.ToEntityReference()
                }
            );

            // wait for the async job to finish
            for (int i = 1; i <= 30; i++)
            {
                Console.WriteLine("  Checking to see if the async job has finished {0}/30", i);
                var teamPrivileges = (RetrieveTeamPrivilegesResponse)
                    _serviceProxy.Execute(new RetrieveTeamPrivilegesRequest
                    {
                        TeamId = _team.Id
                    });
                if (teamPrivileges.RolePrivileges.Any((rp) =>
                    rp.PrivilegeId == 
                        new Guid("A8ECAC53-09E8-4A13-B598-8D8C87BC3D33"))) // prvReadLead
                {
                    break;
                }
                System.Threading.Thread.Sleep(1000);
            }
            #endregion

            #region add users to team

            Console.WriteLine("  Adding users to the team");
            AddMembersTeamRequest addMembers = new AddMembersTeamRequest()
            {
                TeamId = _team.Id,
                MemberIds = new Guid[] { _users[0], _users[1] }
            };
            _serviceProxy.Execute(addMembers);

            #endregion

            #region create leads

            Console.WriteLine("  Creating leads");
            _leads[0] = new Lead
            {
                CompanyName = "A. Datum Corporation",
                FirstName = "Joe",
                LastName = "Andreshak",
            };
            _leads[0].Id = _serviceProxy.Create(_leads[0]);

            _leads[1] = new Lead
            {
                CompanyName = "Wingtip Toys",
                FirstName = "Diogo",
                LastName = "Andrade"
            };
            _leads[1].Id = _serviceProxy.Create(_leads[1]);

            _leads[2] = new Lead
            {
                CompanyName = "The Phone Company",
                FirstName = "Ronaldo",
                LastName = "Smith Jr."
            };
            _leads[2].Id = _serviceProxy.Create(_leads[2]);

            _leads[3] = new Lead
            {
                CompanyName = "Tailspin Toys",
                FirstName = "Andrew",
                LastName = "Sullivan",
            };
            _leads[3].Id = _serviceProxy.Create(_leads[3]);

            #endregion

            #region assign leads

            Console.WriteLine("  Assigning leads to users and teams");
            _serviceProxy.Execute(new AssignRequest()
            {
                Assignee = new EntityReference(SystemUser.EntityLogicalName, _users[0]),
                Target = _leads[0].ToEntityReference()
            });

            _serviceProxy.Execute(new AssignRequest()
            {
                Assignee = new EntityReference(SystemUser.EntityLogicalName, _users[1]),
                Target = _leads[1].ToEntityReference()
            });

            _serviceProxy.Execute(new AssignRequest()
            {
                Assignee = new EntityReference(SystemUser.EntityLogicalName, _users[2]),
                Target = _leads[2].ToEntityReference()
            });

            // give the team access to the record so that it can be assigned to it
            _serviceProxy.Execute(new GrantAccessRequest()
            {
                Target = _leads[3].ToEntityReference(),
                PrincipalAccess = new PrincipalAccess()
                {
                    AccessMask = AccessRights.ReadAccess|AccessRights.WriteAccess,
                    Principal = _team.ToEntityReference()
                }
            });

            // assign the lead to the team
            _serviceProxy.Execute(new AssignRequest()
            {
                Assignee = _team.ToEntityReference(),
                Target = _leads[3].ToEntityReference()
            });

            #endregion
        }
        public RuntimeProperties(ServiceConfigParameters ConfigParameters)
        {
            _ServiceConfigParameters = ConfigParameters;
            //personal
            _Staff_ID = new StaffID();
            _Full_Name = new FullName();
            _Country = new Country();
            _ContractType = new ContractType();
            _ContractTypeForReports = new ContractTypeForReports();
            _Position = new Position();
            _DateOfTREnd = new DateOfTREnd();
            _DateOfTRStart = new DateOfTRStart();
            _DateOfEntrance = new DateOfEntrance();
            _CalendarName = new CalendarName();
            _TemplateFilter = new TemplateFilter();
            _ArePropReadyPersonal = new ArePropReady();
            _BusinessUnitInfo = new BusinessUnitInfo();
            _PMSA = new PMSA();
            _PMSAItem = new PMSAItem();
            _Gender = new Gender();
            _ActivityCodeInfo = new ActivityCodeInfo();
            _OfficialLS = new OfficialLS();
            _PhoneDirOnly = new PhoneDirOnly();
            //update
            _SelectedDate = new SelectedDate();
            _SelectedDateStatus = new SelectedDateStatus();
            _SelectedDateTransactionStatus = new SelectedDateTransactionStatus();
            _SelectedDateType = new SelectedDateType();
            _SelectedDateisOptional = new SelectedDateisOptional();
            _PercentPerDay = new PercentPerDay();
            _SelectedJob = new SelectedJob();
            _MaxHoursDaily = new MaxHoursDaily();
            _ArePropReadyTRUpdate = new ArePropReady();
            _TRInputListClient = new TRInputListClient();
            _LastOpenDay = new LastOpenDay();

            //submit
            _SumOfHours = new SumOfHours();
            _TRInputList = new TRInputList();
            _WorkingHoursWeekly = new WorkingHoursWeekly();
            _MinHoursDaily = new MinHoursDaily();
            _FirstSubmitableDay = new FirstSubmitableDay();
            _SelectedActivityCode = new SelectedActivityCode();
            _Description = new Description();
            _Location = new Location();
            _BusinessUnit = new BusinessUnit();
            _ReasonCode = new ReasonCode();
            _ArePropReadyTRSubmit = new ArePropReady();
            _PeriodEnd = new PeriodEnd();
            //reports

            _PeriodStarting = new PeriodStarting();
            _ArePropReadyReports = new ArePropReady();
            _ReportIntervalFrom = new ReportIntervalFrom();
            _ReportIntervalTo = new ReportIntervalTo();
            _UserIDList = new UserIDList();
            _SelectedReportTemplate = new SelectedReportTemplate();
            _SelectedReportType = new SelectedReportType();

            //külön queryk-ben/Getparameters-ben kap értéket

            _LastSubmittedDay = new LastSubmittedDay();
            _JobCh = new JobCH();
            _InsertedHour = new InstertedHour();
            _ValidationConstraint = new ValidationConstraint();
            _JobFilter = new JobFilter();
            _ActivityCodeFilter = new ActivityCodeFilter();
            _UserGroup = new UserGroup();
            _ReasonCodeFilter = new ReasonCodeFilter();
        }
        public void When_querying_the_same_entity_records_with_joins_no_collection_modified_exception_is_thrown()
        {
            var fakedContext = new XrmFakedContext { };
            var service = fakedContext.GetFakedOrganizationService();

            var entityAccount = new Account { Id = Guid.NewGuid(), Name = "My First Faked Account yeah!", LogicalName = "account" };
            var entityContact = new Contact { Id = Guid.NewGuid(), ParentCustomerId = entityAccount.ToEntityReference() };

            var entityBusinessUnit = new BusinessUnit { Name = "TestBU", BusinessUnitId = Guid.NewGuid() };

            var initiatingUser = new SystemUser
            {
                Id = Guid.NewGuid(),
                FirstName = "TestUser",
                DomainName = "TestDomain",
                BusinessUnitId = entityBusinessUnit.ToEntityReference()
            };

            fakedContext.Initialize(new List<Entity>() {
               entityBusinessUnit,entityAccount,entityContact,initiatingUser
            });


            var fetchXml = @"
                    <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
                      <entity name='systemuser'>
                        <attribute name='fullname' />
                         <attribute name='systemuserid' />
                         <attribute name='businessunitid' />
                         <filter type='and'>
                          <condition attribute='systemuserid' operator='eq' uitype='systemuser' value='#userId#' />
                         </filter>
                            <link-entity name='businessunit' from='businessunitid' to='businessunitid' alias='bu' intersect='true' >
                                <attribute name='name' />
                            </link-entity>
                      </entity>
                    </fetch>
                ";

            var UserRequest = new RetrieveMultipleRequest { Query = new FetchExpression(fetchXml.Replace("#userId#", initiatingUser.Id.ToString())) };
            var response = ((RetrieveMultipleResponse)service.Execute(UserRequest));

            var entities = response.EntityCollection.Entities;
            Assert.True(entities.Count == 1);
            Assert.True(entities[0].Attributes.ContainsKey("bu.name"));
            Assert.IsType<AliasedValue>(entities[0]["bu.name"]);
            Assert.Equal("TestBU", (entities[0]["bu.name"] as AliasedValue).Value.ToString());
        }