Esempio n. 1
0
        public RolesDesignData(BusinessAccountsDesignData businessAccountsDesignData, UserAccountsDesignData userAccountsDesignData)
        {
            _businessAccountsDesignData = businessAccountsDesignData;
            _userAccountsDesignData = userAccountsDesignData;

            InitializeDefaultRoles();

            //Setup Specific User Roles

            #region FoundOPS

            _foundOpsAdministratorRole.MemberParties.Add(_userAccountsDesignData.Jon);

            #endregion

            #region GotGrease

            _gotGreaseAdministratorRole.MemberParties.Add(_userAccountsDesignData.David);
            _gotGreaseAdministratorRole.MemberParties.Add(_userAccountsDesignData.Linda);
            _gotGreaseAdministratorRole.MemberParties.Add(_userAccountsDesignData.Terri);

            _gotGreaseAdministratorRole.MemberParties.Add(_userAccountsDesignData.Jon);

            _gotGreaseMobileRole.MemberParties.Add(_userAccountsDesignData.Oren);

            #endregion

            #region Generic Oil Collector

            _genericOilCollectorAdminRole.MemberParties.Add(_userAccountsDesignData.Andrew);
            _genericOilCollectorAdminRole.MemberParties.Add(_userAccountsDesignData.Jon);
            _genericOilCollectorAdminRole.MemberParties.Add(_userAccountsDesignData.Zach);

            _genericOilCollectorMobileRole.MemberParties.Add(_userAccountsDesignData.Oren);

            #endregion

            #region Generic Biodiesel

            _genericBiodieselAdminRole.MemberParties.Add(_userAccountsDesignData.Andrew);
            _genericBiodieselAdminRole.MemberParties.Add(_userAccountsDesignData.Jon);
            _genericBiodieselAdminRole.MemberParties.Add(_userAccountsDesignData.Zach);

            _genericBiodieselMobileRole.MemberParties.Add(_userAccountsDesignData.Oren);

            #endregion

            #region AB Couriers

            _abCouriersAdministratorRole.MemberParties.Add(_userAccountsDesignData.AlanMcClure);
            _abCouriersAdministratorRole.MemberParties.Add(_userAccountsDesignData.Andrew);
            _abCouriersAdministratorRole.MemberParties.Add(_userAccountsDesignData.Jon);
            _abCouriersAdministratorRole.MemberParties.Add(_userAccountsDesignData.Zach);

            _abCouriersMobileRole.MemberParties.Add(_userAccountsDesignData.Oren);

            #endregion
        }
        /// <summary>
        /// Clear and create the database. Then populate it with design data.
        /// </summary>
        public static void ClearCreateCoreEntitiesDatabaseAndPopulateDesignData()
        {
            ClearCreateCoreEntitiesDatabase();

            var container = new CoreEntitiesContainer(ServerConstants.ContainerConnectionString);

            //Setup blocks
            PopulateBlocks(container);

            //Setup Business Accounts (and ServiceTemplates)
            var businessAccountsDesignData = new BusinessAccountsDesignData();

            //Setup User Accounts
            var userAccountsDesignData = new UserAccountsDesignData
                                             {
                                                 //Set Passwords
                                                 Andrew = { PasswordHash = EncryptionTools.Hash("f00sballchamp", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 Jon = { PasswordHash = EncryptionTools.Hash("seltzer", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 Oren = { PasswordHash = EncryptionTools.Hash("nachoman", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 Zach = { PasswordHash = EncryptionTools.Hash("curlyhair", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 David = { PasswordHash = EncryptionTools.Hash("starofdavid", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 Linda = { PasswordHash = EncryptionTools.Hash("auntie", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 Terri = { PasswordHash = EncryptionTools.Hash("iam1randompassword", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" },
                                                 AlanMcClure = { PasswordHash = EncryptionTools.Hash("youngster", new byte[] { 65, 0, 65 }), TimeZone = "Eastern Standard Time" }
                                             };

            //Setup roles
            new RolesDesignData(businessAccountsDesignData, userAccountsDesignData);

            //var changes = container.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Select(o => o.Entity).OfType<ServiceTemplate>().Where(st => st.CreatedDate < DateTime.UtcNow.AddDays(-1) || st.LastModified < DateTime.UtcNow.AddDays(-1));

            //container.SaveChanges();

            //Populate ServiceProvider Design Data
            foreach (var serviceProvider in businessAccountsDesignData.DesignServiceProviders)
            {
                var employeesDesignData = new EmployeesDesignData(serviceProvider);
                foreach (var employee in employeesDesignData.DesignEmployees)
                    serviceProvider.Employees.Add(employee);

                //container.SaveChanges();

                //Add Vehicles (and Vehicle Maintenance, and VehicleTypes)
                var vehiclesDesignData = new VehiclesDesignData(serviceProvider);
                foreach (var vehicle in vehiclesDesignData.DesignVehicles)
                    serviceProvider.Vehicles.Add(vehicle);

                //container.SaveChanges();

                //Add Regions
                var regionsDesignData = new RegionsDesignData();
                foreach (var region in regionsDesignData.DesignRegions)
                    serviceProvider.Regions.Add(region);

                //container.SaveChanges();

                //Add Clients (and ContactInfo, Locations, and RecurringServices)
                var clientsDesignData = new ClientsDesignData(serviceProvider, regionsDesignData);
                foreach (var client in clientsDesignData.DesignClients)
                    serviceProvider.Clients.Add(client);

                //container.SaveChanges();

                //Add Routes (with RouteTasks, Vehicles, Technicians)
                var routesDesignData = new RoutesDesignData(serviceProvider, clientsDesignData, vehiclesDesignData, employeesDesignData);
                foreach (var route in routesDesignData.DesignRoutes)
                    serviceProvider.Routes.Add(route);

                //container.SaveChanges();

                //Add Services
                var servicesDesignData = new ServicesDesignData(serviceProvider, clientsDesignData.DesignClients.ElementAt(0), serviceProvider.ServiceTemplates);
                foreach (var service in servicesDesignData.DesignServices)
                    serviceProvider.ServicesToProvide.Add(service);

                //container.SaveChanges();
            }

            container.SaveChanges();
        }