Example #1
0
        public static void Create(ResellerObject reseller)
        {
            ADOrganizationalUnit org = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.Password, StaticSettings.PrimaryDC);

            try
            {
            }
            catch (Exception ex)
            {

            }
        }
Example #2
0
        /// <summary>
        /// Gets a specific reseller
        /// </summary>
        /// <param name="companyCode"></param>
        /// <returns></returns>
        public ResellerObject GetReseller(string companyCode)
        {
            CPDatabase database = null;

            try
            {
                database = new CPDatabase();

                var reseller = (from r in database.Companies
                                where r.IsReseller
                                where r.CompanyCode == companyCode
                                orderby r.CompanyName
                                select r).FirstOrDefault();

                ResellerObject tmp = new ResellerObject();
                tmp.CompanyID = reseller.CompanyId;
                tmp.CompanyName = reseller.CompanyName;
                tmp.CompanyCode = reseller.CompanyCode;
                tmp.Street = reseller.Street;
                tmp.City = reseller.City;
                tmp.State = reseller.State;
                tmp.ZipCode = reseller.ZipCode;
                tmp.Country = reseller.Country;
                tmp.Telephone = reseller.PhoneNumber;
                tmp.Description = reseller.Description;
                tmp.AdminName = reseller.AdminName;
                tmp.AdminEmail = reseller.AdminEmail;
                tmp.DistinguishedName = reseller.DistinguishedName;
                tmp.Created = reseller.Created;

                return tmp;
            }
            catch (Exception ex)
            {
                ThrowEvent(AlertID.FAILED, ex.Message);
                return null;
            }
            finally
            {
                if (database != null)
                    database.Dispose();
            }
        }
Example #3
0
        /// <summary>
        /// Adds a new reseller to the environment
        /// </summary>
        private void AddNewReseller()
        {
            ResellerObject newReseller = new ResellerObject();
            newReseller.CompanyName = txtName.Text;
            newReseller.AdminName = txtContactsName.Text;
            newReseller.AdminEmail = txtEmail.Text;
            newReseller.Telephone = txtTelephone.Text;
            newReseller.Street = txtStreetAddress.Text;
            newReseller.City = txtCity.Text;
            newReseller.State = txtState.Text;
            newReseller.ZipCode = txtZipCode.Text;

            if (ddlCountry.SelectedIndex > 0)
                newReseller.Country = ddlCountry.SelectedValue;
            else
                newReseller.Country = string.Empty;

            // Validate
            if (newReseller.CompanyName.Length < 3)
                alertmessage.SetMessage(Modules.Base.Enumerations.AlertID.WARNING, "The company name must be three characters or more");
            else
            {
                //
                // Create new reseller
                //
                resellerModel.NewReseller(newReseller, StaticSettings.HostingOU);
            }

            PopulateResellers();
        }
Example #4
0
        public ResellerModule()
        {
            this.RequiresAuthentication();

            Get["/Resellers"] = _ =>
                {
                    List<ResellerObject> resellers = null; // Get all resellers

                    return View["Admin/ResellerList.cshtml", resellers];
                };

            Get["/Resellers/Add"] = parameters =>
            {
                ResellerObject newReseller = new ResellerObject();

                return View["Admin/ResellerEdit.cshtml", newReseller];
            };

            Get["/Resellers/{ResellerCode}/Edit"] = parameters =>
                {
                    ResellerObject reseller = new ResellerObject();
                    reseller.CompanyID = 0;
                    reseller.CompanyCode = parameters.ResellerCode;
                    reseller.CompanyName = "Reseller";
                    reseller.Street = "300 Simpson Rd";
                    reseller.City = "Vilonia";
                    reseller.State = "AR";
                    reseller.ZipCode = "72173";
                    reseller.Created = DateTime.Now.ToString();
                    reseller.AdminName = "";
                    reseller.AdminEmail = "";
                    reseller.Telephone = "";

                    return View["Admin/ResellerEdit.cshtml", reseller];
                };

            Get["/Resellers/{CompanyCode}/Companies"] = parameters =>
            {
                if (this.Context.CurrentUser != null)
                {
                    var user = this.Context.CurrentUser as AuthenticatedUser;
                    user.SelectedResellerCode = parameters.CompanyCode;
                }

                return View["Admin/CompanyList", parameters.CompanyCode];
            };

            Post["/Resellers/Edit"] = parameters =>
            {
                ViewBag.Testing = "NEW RESELLER";

                var test = this.Bind<ResellerObject>(); // Gather data from form

                return View["Admin/ResellerEdit", test];
            };

            Post["/Resellers/Edit/{ResellerCode}"] = parameters =>
                {
                    ViewBag.Testing = "EDIT RESELLER";

                    var test = this.Bind<ResellerObject>();  // Gather data from form

                    return View["Admin/ResellerEdit", test];
                };
        }
Example #5
0
        /// <summary>
        /// Gets a list of resellers from the database
        /// </summary>
        /// <returns></returns>
        public List<ResellerObject> GetResellers()
        {
            CPDatabase database = null;

            try
            {
                database = new CPDatabase();

                var resellersDb = from r in database.Companies
                                  where r.IsReseller
                                  orderby r.CompanyName
                                  select r;

                List<ResellerObject> resellers = new List<ResellerObject>();

                if (resellersDb != null)
                {
                    foreach (var reseller in resellersDb)
                    {
                        ResellerObject tmp = new ResellerObject();
                        tmp.CompanyID = reseller.CompanyId;
                        tmp.CompanyName = reseller.CompanyName;
                        tmp.CompanyCode = reseller.CompanyCode;
                        tmp.Street = reseller.Street;
                        tmp.City = reseller.City;
                        tmp.State = reseller.State;
                        tmp.ZipCode = reseller.ZipCode;
                        tmp.Country = reseller.Country;
                        tmp.Telephone = reseller.PhoneNumber;
                        tmp.Description = reseller.Description;
                        tmp.AdminName = reseller.AdminName;
                        tmp.AdminEmail = reseller.AdminEmail;
                        tmp.DistinguishedName = reseller.DistinguishedName;
                        tmp.Created = reseller.Created;

                        resellers.Add(tmp);
                    }
                }

                return resellers;
            }
            catch (Exception ex)
            {
                ThrowEvent(AlertID.FAILED, ex.Message);
                return null;
            }
            finally
            {
                if (database != null)
                    database.Dispose();
            }
        }
Example #6
0
        /// <summary>
        /// Updates a reseller
        /// </summary>
        /// <param name="reseller"></param>
        public void UpdateReseller(ResellerObject reseller)
        {
            CPDatabase database = null;

            try
            {
                database = new CPDatabase();

                var dbObj = (from r in database.Companies
                            where r.CompanyCode == reseller.CompanyCode
                            where r.IsReseller
                            select r).First();

                dbObj.CompanyName = reseller.CompanyName;
                dbObj.AdminName = reseller.AdminName;
                dbObj.AdminEmail = reseller.AdminEmail;
                dbObj.PhoneNumber = reseller.Telephone;
                dbObj.Street = reseller.Street;
                dbObj.City = reseller.City;
                dbObj.State = reseller.State;
                dbObj.ZipCode = reseller.ZipCode;
                dbObj.Country = reseller.Country;

                database.SaveChanges();
            }
            catch (Exception ex)
            {
                ThrowEvent(AlertID.FAILED, ex.Message);
            }
            finally
            {
                if (database != null)
                    database.Dispose();
            }
        }
Example #7
0
        /// <summary>
        /// Creates a new reseller
        /// </summary>
        /// <param name="reseller"></param>
        /// <param name="baseOrganizationalUnit"></param>
        public void NewReseller(ResellerObject reseller, string baseOrganizationalUnit)
        {
            CPDatabase database = null;

            // Rollback class in case something goes wrong we can undo changes
            CloudPanelTransaction events = new CloudPanelTransaction();

            try
            {
                database = new CPDatabase();

                // Generate the company code
                string companyCode = ResellerObject.GenerateCompanyCode(reseller.CompanyName);

                // Loop and make sure one does exist or find one that does
                int count = 0;
                for (int i = 0; i < 1000; i++)
                {
                    if (Validation.DoesCompanyCodeExist(companyCode))
                    {
                        this.logger.Info("Tried to create a new reseller with company code " + companyCode + " but it already existed... trying another code");

                        companyCode = companyCode + count.ToString();
                        count++;
                    }
                    else
                    {
                        reseller.CompanyCode = companyCode; // Assign company code to object
                        break;
                    }
                }

                // Create the reseller in Active Directory
                ADOrganizationalUnit adOrg = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.DecryptedPassword, StaticSettings.PrimaryDC);
                string distinguishedName = adOrg.CreateReseller(StaticSettings.HostingOU, reseller);
                events.NewOrganizationalUnitEvent(distinguishedName);

                // Create the security group
                ADGroup adGroup = new ADGroup(StaticSettings.Username, StaticSettings.DecryptedPassword, StaticSettings.PrimaryDC);
                adGroup.Create(distinguishedName, "GPOAccess@" + companyCode, "", true, false);
                events.NewSecurityGroup("GPOAccess@" + companyCode);

                // Add the new group to the GPOAccess@Hosting group for group policy permissions
                adGroup.AddMember("GPOAccess@Hosting", "GPOAccess@" + companyCode, "name");

                // Add access rights
                adOrg.AddAccessRights(distinguishedName, "GPOAccess@" + companyCode);

                // Insert into database
                Company company = new Company();
                company.IsReseller = true;
                company.CompanyName = reseller.CompanyName;
                company.CompanyCode = companyCode;
                company.Street = reseller.Street;
                company.City = reseller.City;
                company.State = reseller.State;
                company.ZipCode = reseller.ZipCode;
                company.Country = reseller.Country;
                company.PhoneNumber = reseller.Telephone;
                company.AdminName = reseller.AdminName;
                company.AdminEmail = reseller.AdminEmail;
                company.Created = DateTime.Now;
                company.DistinguishedName = distinguishedName;

                database.Companies.Add(company);
                database.SaveChanges();

                // Notify success
                ThrowEvent(AlertID.SUCCESS, "Successfully created new reseller " + reseller.CompanyName);
            }
            catch (Exception ex)
            {
                ThrowEvent(AlertID.FAILED, ex.Message);

                // Rollback on error
                events.RollBack();
            }
            finally
            {
                if (database != null)
                    database.Dispose();
            }
        }
        /// <summary>
        /// Creates a new reseller organizational unit
        /// </summary>
        /// <param name="hostingOrganizationalUnit"></param>
        /// <param name="reseller"></param>
        /// <returns></returns>
        public string CreateReseller(string hostingOrganizationalUnit, ResellerObject reseller)
        {
            DirectoryEntry de = null;
            DirectoryEntry newOrg = null;

            try
            {
                this.logger.Debug("Attempting to create new organizational unit for reseller " + reseller.CompanyName);

                de = new DirectoryEntry("LDAP://" + this.domainController + "/" + hostingOrganizationalUnit, this.username, this.password);

                // Add organizational unit
                newOrg = de.Children.Add("OU=" + reseller.CompanyCode, "OrganizationalUnit");

                // Set additional information
                newOrg.Properties["description"].Add(reseller.CompanyName);
                newOrg.Properties["displayName"].Add(reseller.CompanyName);

                // These values may not be set so only set if they are valid
                if (!string.IsNullOrEmpty(reseller.Street))
                    newOrg.Properties["street"].Add(reseller.Street);

                if (!string.IsNullOrEmpty(reseller.City))
                    newOrg.Properties["l"].Add(reseller.City);

                if (!string.IsNullOrEmpty(reseller.State))
                    newOrg.Properties["st"].Add(reseller.State);

                if (!string.IsNullOrEmpty(reseller.ZipCode))
                    newOrg.Properties["postalCode"].Add(reseller.ZipCode);

                if (!string.IsNullOrEmpty(reseller.Telephone))
                    newOrg.Properties["telephoneNumber"].Add(reseller.Telephone);

                if (!string.IsNullOrEmpty(reseller.AdminName))
                    newOrg.Properties["adminDisplayName"].Add(reseller.AdminName);

                if (!string.IsNullOrEmpty(reseller.AdminEmail))
                    newOrg.Properties["adminDescription"].Add(reseller.AdminEmail);

                // Commit all the changes to the new OU
                newOrg.CommitChanges();
                this.logger.Debug("Committed changes to new organizational unit for reseller " + reseller.CompanyName);

                // Commit the changes to the parent OU
                de.CommitChanges();
                this.logger.Info("Finished creating new organizational unit for reseller " + reseller.CompanyName);

                // Return the distinguished name
                return newOrg.Properties["distinguishedName"][0].ToString();
            }
            catch (Exception ex)
            {
                this.logger.Error("There was an error creating a new organizational unit for reseller " + reseller.CompanyName, ex);

                throw;
            }
            finally
            {
                if (newOrg != null)
                    newOrg.Dispose();

                if (de != null)
                    de.Dispose();
            }
        }