private static TalentShow.Organization GetOrganization(TalentShow.Organization defaultOrganization, string organizationName, string parentOrganizationName)
        {
            organizationName       = organizationName.ToUpper().Trim();
            parentOrganizationName = parentOrganizationName.ToUpper().Trim();

            var allOrganizations = ServiceFactory.OrganizationService.GetAll();

            var organization       = allOrganizations.FirstOrDefault(o => o.Name.ToUpper().Trim() == organizationName);
            var parentOrganization = allOrganizations.FirstOrDefault(o => o.Name.ToUpper().Trim() == parentOrganizationName);

            if (organization == null && !String.IsNullOrWhiteSpace(organizationName))
            {
                organization = new TalentShow.Organization(organizationName);

                if (parentOrganization == null && !String.IsNullOrWhiteSpace(parentOrganizationName))
                {
                    parentOrganization = new TalentShow.Organization(parentOrganizationName);

                    ServiceFactory.OrganizationService.Add(parentOrganization);
                }

                organization.SetParent(parentOrganization);

                ServiceFactory.OrganizationService.Add(organization);
            }

            if (organization == null)
            {
                organization = ServiceFactory.OrganizationService.Get(defaultOrganization.Id);
            }

            return(organization);
        }
        protected void btnUpdateOrganization_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                //TODO
                return;
            }

            var name = organizationForm.GetNameTextBox().Text.Trim();
            var parentOrganizationId = organizationForm.GetOrganizationsDropDownList().SelectedValue;
            var organization         = new TalentShow.Organization(GetOrganizationId(), name, null);

            if (!String.IsNullOrWhiteSpace(parentOrganizationId))
            {
                organization.SetParent(ServiceFactory.OrganizationService.Get(Convert.ToInt32(parentOrganizationId)));
            }

            ServiceFactory.OrganizationService.Update(organization);
            GoToOrganizationsPage();
        }
        private void PopulateOrganizationsDropDownList(TalentShow.Organization currentOrganization)
        {
            var organizationsDropDownList = organizationForm.GetOrganizationsDropDownList();

            organizationsDropDownList.Items.Add(new ListItem("-- Select an Organization --", ""));

            var organizations = ServiceFactory.OrganizationService.GetAll();

            foreach (var organization in organizations)
            {
                organizationsDropDownList.Items.Add(new ListItem(organization.Name, Convert.ToString(organization.Id)));
            }

            var selectedParentOrganizationId = "";

            if (currentOrganization.Parent != null)
            {
                selectedParentOrganizationId = Convert.ToString(currentOrganization.Parent.Id);
            }

            organizationsDropDownList.Items.FindByValue(selectedParentOrganizationId).Selected = true;
        }