/// <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; }
public static void Create(ResellerObject reseller) { ADOrganizationalUnit org = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.Password, StaticSettings.PrimaryDC); try { } catch (Exception ex) { } }
/// <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(); } } }
/// <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(); } } }
/// <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(); }
/// <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(); } } }
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]); }; }
/// <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(); } } }
/// <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(); } } }