Esempio n. 1
0
        /// <summary>
        /// Populates a specific reseller
        /// </summary>
        /// <param name="companyCode"></param>
        private void PopulateReseller(string companyCode)
        {
            ResellerObject reseller = resellerModel.GetReseller(companyCode);

            hfResellerCode.Value  = companyCode;
            txtName.Text          = reseller.CompanyName;
            txtContactsName.Text  = reseller.AdminName;
            txtEmail.Text         = reseller.AdminEmail;
            txtTelephone.Text     = reseller.Telephone;
            txtStreetAddress.Text = reseller.Street;
            txtCity.Text          = reseller.City;
            txtState.Text         = reseller.State;
            txtZipCode.Text       = reseller.ZipCode;

            ListItem item = ddlCountry.Items.FindByValue(reseller.Country);

            if (item != null)
            {
                ddlCountry.SelectedValue = item.Value;
            }

            // Show the edit panel and readonly the textbox
            panelEditCreateReseller.Visible = true;
            panelResellerList.Visible       = false;
        }
Esempio n. 2
0
        public static void Create(ResellerObject reseller)
        {
            ADOrganizationalUnit org = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.Password, StaticSettings.PrimaryDC);

            try
            {
            }
            catch (Exception ex)
            {
            }
        }
Esempio n. 3
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();
                }
            }
        }
Esempio n. 4
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();
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Updates an existing resellers information
        /// </summary>
        /// <param name="stringId"></param>
        private void UpdateReseller(string companyCode)
        {
            ResellerObject reseller = new ResellerObject();

            reseller.CompanyCode = companyCode;
            reseller.CompanyName = txtName.Text;
            reseller.AdminName   = txtContactsName.Text;
            reseller.AdminEmail  = txtEmail.Text;
            reseller.Telephone   = txtTelephone.Text;
            reseller.Street      = txtStreetAddress.Text;
            reseller.City        = txtCity.Text;
            reseller.State       = txtState.Text;
            reseller.ZipCode     = txtZipCode.Text;

            if (ddlCountry.SelectedIndex > 0)
            {
                reseller.Country = ddlCountry.SelectedValue;
            }
            else
            {
                reseller.Country = string.Empty;
            }

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

            PopulateResellers();
        }
Esempio n. 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();
                }
            }
        }
Esempio n. 7
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]);
            };
        }
Esempio n. 8
0
        /// <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();
                }
            }
        }
Esempio n. 9
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();
                }
            }
        }