コード例 #1
0
        public void Save(BasicOrganization objBasicOrganization)
        {
            string             sql           = null;
            List <DbParameter> parameterList = new List <DbParameter>();

            if (objBasicOrganization.PkId == 0)
            {
                sql = " insert into tbl_basic_organization(OrgNumber, OrgName, OrgAddress, OrgParentId, OrgFullPath) " +
                      " values(@OrgNumber, @OrgName, @OrgAddress, @OrgParentId, @OrgFullPath); " +
                      " select LAST_INSERT_ID(); ";

                parameterList.Add(new MySqlParameter("@OrgNumber", objBasicOrganization.OrgNumber));
                parameterList.Add(new MySqlParameter("@OrgName", objBasicOrganization.OrgName));
                parameterList.Add(new MySqlParameter("@OrgAddress", objBasicOrganization.OrgAddress));
                parameterList.Add(new MySqlParameter("@OrgParentId", objBasicOrganization.OrgParentId));
                parameterList.Add(new MySqlParameter("@OrgFullPath", objBasicOrganization.OrgFullPath));

                objBasicOrganization.PkId = DbHelper.ExecuteScalar(sql, CommandType.Text, parameterList.ToArray()).ToString().ToInt();
            }

            else
            {
                sql = " update tbl_basic_organization set OrgName=@OrgName, OrgAddress=@OrgAddress, OrgFullPath=@OrgFullPath where PkId=@PkId ";

                parameterList.Add(new MySqlParameter("@PkId", objBasicOrganization.PkId));
                parameterList.Add(new MySqlParameter("@OrgName", objBasicOrganization.OrgName));
                parameterList.Add(new MySqlParameter("@OrgAddress", objBasicOrganization.OrgAddress));
                parameterList.Add(new MySqlParameter("@OrgFullPath", objBasicOrganization.OrgFullPath));

                DbHelper.ExecuteNonQuery(sql, CommandType.Text, parameterList.ToArray());
            }
        }
コード例 #2
0
        public BasicOrganization[] GetOrganizationLine(int leafOrganizationId)
        {
            List <BasicOrganization> result = new List <BasicOrganization>();

            Dictionary <int, List <BasicOrganization> > organizations = GetHashedOrganizations();

            BasicOrganization currentOrganization = organizations[leafOrganizationId][0];

            // This iterates until the zero-parentid root Organization is found

            while (currentOrganization.OrganizationId > 0)
            {
                result.Add(currentOrganization);

                if (currentOrganization.ParentOrganizationId > 0)
                {
                    currentOrganization = organizations[currentOrganization.ParentOrganizationId][0];
                }
                else
                {
                    currentOrganization = new BasicOrganization();
                }
            }

            result.Reverse();

            return(result.ToArray());
        }
コード例 #3
0
        public static BasicOrganization[] GetOrganizationLine(int leafOrganizationId)
        {
            lock (loadCacheLock)
            {
                List <BasicOrganization> result = new List <BasicOrganization>();

                BasicOrganization currentOrganization = OrganizationCache.GetOrganization(leafOrganizationId);

                // This iterates until the zero-parentid root Organization is found

                while (currentOrganization.OrganizationId > 0)
                {
                    result.Add(currentOrganization);

                    if (currentOrganization.ParentOrganizationId > 0)
                    {
                        currentOrganization = OrganizationCache.GetOrganization(currentOrganization.ParentOrganizationId);
                    }
                    else
                    {
                        currentOrganization = new BasicOrganization();
                    }
                }

                result.Reverse();

                return(result.ToArray());
            }
        }
コード例 #4
0
        private void BindOrg()
        {
            if (!this.IsInsert)
            {
                IBasicService service = ServiceFactory.GetService <IBasicService>();

                BasicOrganization entity = service.GetObject_Organization(this.PkId);

                if (entity != null)
                {
                    this.txtOrgNumber.Text     = entity.OrgNumber;
                    this.txtOrgName.Text       = entity.OrgName;
                    this.txtOrgAddress.Text    = entity.OrgAddress;
                    this.hfOrgParentId.Value   = entity.OrgParentId.ToString();
                    this.txtOrgParentName.Text = entity.OrgParentId.ToString().GetOrgName(true);

                    this.txtOrgNumber.ReadOnly     = true;
                    this.btnSubmitContinue.Visible = false;
                }

                else
                {
                    this.JscriptMsg("数据不存在", this.ReturnUrl, "Error");
                }
            }
        }
コード例 #5
0
        public int[] GetOrganizationUptakeGeographyIds(int organizationId)
        {
            List <int> result = new List <int>();

            BasicOrganization basicOrg = GetOrganization(organizationId);

            result.Add(basicOrg.AnchorGeographyId);

            using (DbConnection connection = GetMySqlDbConnection())
            {
                connection.Open();

                DbCommand command =
                    GetDbCommand(
                        "SELECT GeographyId FROM OrganizationUptakeGeographies WHERE OrganizationId=" + organizationId,
                        connection);

                using (DbDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        int uptakeGeoId = reader.GetInt32(0);

                        if (uptakeGeoId != basicOrg.AnchorGeographyId)
                        {
                            result.Add(uptakeGeoId);
                        }
                    }
                }
            }

            return(result.ToArray());
        }
コード例 #6
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (this.IsValid)
            {
                IBasicService service = ServiceFactory.GetService <IBasicService>();

                BasicOrganization entity = null;

                if (this.IsInsert)
                {
                    entity = new BasicOrganization()
                    {
                        OrgNumber   = this.txtOrgNumber.Text.Trim(),
                        OrgName     = this.txtOrgName.Text.Trim(),
                        OrgAddress  = this.txtOrgAddress.Text.Trim(),
                        OrgParentId = this.hfOrgParentId.Value.Trim().ToInt(0),
                        OrgFullPath = ""
                    };

                    if (service.CheckExists_Organization(entity))
                    {
                        this.JscriptMsg("网点机构号码已存在", null, "Error");

                        return;
                    }
                }

                else
                {
                    entity = service.GetObject_Organization(this.PkId);

                    if (entity != null)
                    {
                        entity.OrgName     = this.txtOrgName.Text.Trim();
                        entity.OrgAddress  = this.txtOrgAddress.Text.Trim();
                        entity.OrgParentId = this.hfOrgParentId.Value.Trim().ToInt(0);
                    }
                }

                service.Save_Organization(entity);

                if (this.IsInsert)
                {
                    entity.OrgFullPath = entity.OrgParentId.ToString().GetOrgFullPath() + "[" + entity.PkId + "]";

                    service.Save_Organization(entity);
                }

                if (this.IsInsert && (sender as Button).CommandName == "SubmitContinue")
                {
                    this.ReturnUrl = this.Request.Url.PathAndQuery;
                }

                this.JscriptMsg("数据保存成功", this.ReturnUrl, "Success");
            }

            BasicConvert.ClearCache();
        }
コード例 #7
0
        public bool CheckExists(BasicOrganization objBasicOrganization)
        {
            string             sql           = null;
            List <DbParameter> parameterList = new List <DbParameter>();

            sql = " select count(1) from tbl_basic_organization where OrgNumber=@OrgNumber ";

            parameterList.Add(new MySqlParameter("@OrgNumber", objBasicOrganization.OrgNumber));

            return(int.Parse(DbHelper.ExecuteScalar(sql, CommandType.Text, parameterList.ToArray()).ToString()) > 0);
        }
コード例 #8
0
        public static int[] GetOrganizationIdsInGeographies(int[] nodeIds)
        {
            if (nodeIds == null || nodeIds.Length == 0)
            {
                return(new int[0]);
            }

            Dictionary <int, bool> resultKeys = new Dictionary <int, bool>();
            Dictionary <int, bool> idsToFind  = new Dictionary <int, bool>();

            foreach (int i in nodeIds)
            {
                idsToFind[i] = true;
            }

            //fist add those that has the geo as anchor
            lock (loadCacheLock)
            {
                Dictionary <int, List <BasicOrganization> > hashedOrgs = GetHashedOrganizations();
                foreach (int id in hashedOrgs.Keys)
                {
                    BasicOrganization bo = hashedOrgs[id][0];
                    if (idsToFind.ContainsKey(bo.AnchorGeographyId))
                    {
                        resultKeys[bo.Identity] = true;
                    }
                }


                //then add those that has the geo as uptake
                Dictionary <int, List <int> > allUptakes = GetUptakes();
                foreach (int orgId in allUptakes.Keys)
                {
                    //connected to valid org?
                    if (hashedOrgs.ContainsKey(orgId))
                    {
                        foreach (int geoId in allUptakes[orgId])
                        {
                            if (idsToFind.ContainsKey(geoId))
                            {
                                resultKeys[orgId] = true;
                            }
                        }
                    }
                }
            }


            return((new List <int> (resultKeys.Keys)).ToArray());

            ;
        }
コード例 #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int personId = Convert.ToInt32(HttpContext.Current.User.Identity.Name);

        // Determine appropriate UP organization for this person

        Person            person = Person.FromIdentity(personId);
        BasicOrganization org    = Organizations.GetMostLocalOrganization(person.GeographyId, Organization.UPSEid);

        Memberships memberships = person.GetMemberships();

        bool alreadyMember = false;

        foreach (Activizr.Basic.Types.BasicMembership membership in memberships)
        {
            if (membership.OrganizationId == org.OrganizationId)
            {
                alreadyMember = true;
            }
        }

        this.LabelOrg.Text = Server.HtmlEncode(org.NameShort);          //.Replace ("å", "&aring;").Replace ("ö", "&ouml;");



        this.LabelResult.Text = "som &auml;r den lokalavdelning av Ung Pirat som tar upp medlemmar i ditt l&auml;n";

        if (alreadyMember)
        {
            this.LabelWelcome.Text = "Du &auml;r redan medlem i";
        }
        else
        {
            this.LabelWelcome.Text = "Du &auml;r nu medlem i";

            DateTime paidUntil = DateTime.Now.AddYears(1);

            foreach (Activizr.Logic.Pirates.Membership membership in memberships)
            {
                if (membership.OrganizationId == Organization.PPSEid)
                {
                    paidUntil              = membership.Expires.AddYears(1);
                    membership.Expires     = paidUntil;
                    this.LabelResult.Text += ", och ett kalender&aring;r har lagts till ditt medlemskap";
                }
            }

            Activizr.Logic.Pirates.Membership.Create(personId, org.OrganizationId, paidUntil);
            Activizr.Logic.Support.PWEvents.CreateEvent(EventSource.SignupPage, EventType.AddedMembership, personId, org.OrganizationId, person.GeographyId, person.PersonId, 0, string.Empty);
        }
    }
コード例 #10
0
        public void DeleteOrganization(int OrganizationId)
        {
            int deletedOrganizationsID = 98;
            BasicOrganization org      = GetOrganization(OrganizationId);

            //Delete is done by setting parent ID to deletedOrganizationsID
            UpdateOrganization(
                deletedOrganizationsID,
                org.NameInternational,
                org.Name,
                org.NameShort,
                org.Domain,
                org.MailPrefix,
                org.AnchorGeographyId,
                org.AcceptsMembers,
                org.AutoAssignNewMembers,
                org.DefaultCountryId,
                OrganizationId);
        }
コード例 #11
0
        static public BasicOrganization[] GetOrganizationChildren(int parentOrgId)
        {
            List <BasicOrganization> result = new List <BasicOrganization>();

            lock (loadCacheLock)
            {
                BasicOrganization parent = OrganizationCache.GetOrganization(parentOrgId);
                //TODO: It is possible to miss a child here if that child was added after the last cache load.

                Dictionary <int, List <BasicOrganization> > hashedOrganizations = GetHashedOrganizations();
                foreach (BasicOrganization b in hashedOrganizations[parentOrgId])
                {
                    if (b.Identity != parentOrgId)
                    {
                        result.Add(b);
                    }
                }
                return(result.ToArray());
            }
        }
コード例 #12
0
        private static BasicOrganization[] GetOrganizationTree(Dictionary <int, List <BasicOrganization> > organizations,
                                                               int startOrganizationId, int generation)
        {
            List <BasicOrganization> result = new List <BasicOrganization>();

            //Prime the cache
            BasicOrganization start = OrganizationCache.GetOrganization(startOrganizationId);

            List <BasicOrganization> thisList = organizations[startOrganizationId];

            foreach (BasicOrganization organization in thisList)
            {
                if (organization.OrganizationId != startOrganizationId)
                {
                    result.Add(organization);
                    // new Organization(organization.OrganizationId, organization.ParentOrganizationId, organization.Name, generation + 1));

                    // Add recursively

                    BasicOrganization[] children = GetOrganizationTree(organizations, organization.OrganizationId,
                                                                       generation + 1);

                    if (children.Length > 0)
                    {
                        foreach (BasicOrganization child in children)
                        {
                            result.Add(child);
                        }
                    }
                }
                else if (generation == 0)
                {
                    // The top parent is special and should be added; the others shouldn't

                    result.Add(organization);
                    //  (new Organization(organization.OrganizationId, organization.ParentOrganizationId, organization.Name, generation));
                }
            }

            return(result.ToArray());
        }
コード例 #13
0
        private void CreateOrgPathNode(StringBuilder result, int orgId, int defaultOrgId)
        {
            BasicOrganization org = (from item in BasicConvert.OrganizationList where item.PkId == orgId select item).SingleOrDefault();

            if (org != null && org.PkId > 0)
            {
                if (org.PkId < defaultOrgId)
                {
                    result.Insert(0, "&nbsp;&gt;&nbsp;{0}".FormatWith(org.OrgName));
                }

                else
                {
                    result.Insert(0, "&nbsp;&gt;&nbsp;<a href=\"Basic_Org_Search.aspx?UserId={0}&DefaultEmpty={1}&OrgParentId={2}\">{3}</a>".FormatWith(this.UserId, this.DefaultEmpty.ToInt(), org.PkId, org.OrgName));
                }

                if (org.OrgParentId > 0)
                {
                    this.CreateOrgPathNode(result, org.OrgParentId, defaultOrgId);
                }
            }
        }
コード例 #14
0
        public void Save(BasicOrganization objBasicOrganization)
        {
            string             sql           = null;
            List <DbParameter> parameterList = new List <DbParameter>();

            if (objBasicOrganization.PkId == 0)
            {
                sql = " insert into tbl_basic_organization(PkId, OrgNumber, OrgName, OrgAddress, OrgParentId, OrgFullPath) " +
                      " values(TBO_PKID.NEXTVAL, :OrgNumber, :OrgName, :OrgAddress, :OrgParentId, :OrgFullPath) " +
                      " RETURNING PkId INTO :PkId ";

                parameterList.Add(new OracleParameter(":OrgNumber", objBasicOrganization.OrgNumber));
                parameterList.Add(new OracleParameter(":OrgName", objBasicOrganization.OrgName));
                parameterList.Add(new OracleParameter(":OrgAddress", objBasicOrganization.OrgAddress));
                parameterList.Add(new OracleParameter(":OrgParentId", objBasicOrganization.OrgParentId));
                parameterList.Add(new OracleParameter(":OrgFullPath", objBasicOrganization.OrgFullPath));
                var p = new OracleParameter(":PkId", OracleDbType.Int32, 0, ParameterDirection.Output);
                parameterList.Add(p);

                DbHelper.ExecuteNonQuery(sql, CommandType.Text, parameterList.ToArray());

                objBasicOrganization.PkId = Convert.ToInt32(((OracleDecimal)p.Value).Value);
            }

            else
            {
                sql = " update tbl_basic_organization set OrgName=:OrgName, OrgAddress=:OrgAddress, OrgFullPath=:OrgFullPath where PkId=:PkId ";

                parameterList.Add(new OracleParameter(":OrgName", objBasicOrganization.OrgName));
                parameterList.Add(new OracleParameter(":OrgAddress", objBasicOrganization.OrgAddress));
                parameterList.Add(new OracleParameter(":OrgFullPath", objBasicOrganization.OrgFullPath));
                parameterList.Add(new OracleParameter(":PkId", objBasicOrganization.PkId));

                DbHelper.ExecuteNonQuery(sql, CommandType.Text, parameterList.ToArray());
            }
        }
コード例 #15
0
ファイル: Organization.cs プロジェクト: JeffreyQ1/Swarmops
 public static Organization FromBasic(BasicOrganization basic)
 {
     return(new Organization(basic));
 }
コード例 #16
0
ファイル: Organization.cs プロジェクト: JeffreyQ1/Swarmops
        } // disallow public direct construction

        private Organization(BasicOrganization basic)
            : base(basic)
        {
        }
コード例 #17
0
        public void Save_Organization(BasicOrganization objBasicOrganization)
        {
            var repository = ServiceFactory.GetService <IBasicOrganizationRepository>();

            repository.Save(objBasicOrganization);
        }
コード例 #18
0
        private void InitData()
        {
            IBasicService  basicService  = ServiceFactory.GetService <IBasicService>();
            IDeviceService deviceService = ServiceFactory.GetService <IDeviceService>();

            int orgCount             = this.txtOrgCount.Text.Trim().ToInt();
            int relevanceDeviceCount = this.txtRelevanceDeviceCount.Text.Trim().ToInt();
            int deviceGroup          = this.txtDeviceGroup.Text.Trim().ToInt();
            int perGroupOrgCount     = orgCount / deviceGroup;

            this.BeginInvoke(new EventHandler((a, b) =>
            {
                this.pbFinish.Minimum = 0;
                this.pbFinish.Maximum = orgCount * relevanceDeviceCount;
                this.pbFinish.Value   = 0;
            })).AsyncWaitHandle.WaitOne(10);

            for (int i = 1; i <= deviceGroup; i++)
            {
                int deviceIndex = 0;

                for (int j = 1; j <= perGroupOrgCount; j++)
                {
                    int orgId = (i - 1) * perGroupOrgCount + j;

                    BasicOrganization org = new BasicOrganization()
                    {
                        OrgNumber   = "ORG" + orgId.ToString().PadLeft(4, '0'),
                        OrgName     = "网点机构" + orgId.ToString().PadLeft(4, '0'),
                        OrgAddress  = "网点机构" + orgId.ToString().PadLeft(4, '0'),
                        OrgParentId = 0
                    };

                    basicService.Save_Organization(org);

                    org.OrgFullPath = org.OrgParentId.ToString().GetOrgFullPath() + "[" + org.PkId + "]";

                    basicService.Save_Organization(org);

                    for (int k = 1; k <= relevanceDeviceCount; k++)
                    {
                        deviceIndex += 1;

                        string deviceNumber = "ABCD" + (int.Parse(i + "00000000") + deviceIndex).ToString();

                        DeviceInfo device = new DeviceInfo()
                        {
                            DeviceNumber    = deviceNumber,
                            SoftwareVersion = "000000",
                            RegisterIp      = "127.0.0.1",
                            KindCode        = 1,
                            ModelCode       = 1,
                            OrgId           = org.PkId,
                            OnLineTime      = DateTime.Now,
                            DeviceStatus    = 1
                        };

                        deviceService.Save_Info(device);

                        this.BeginInvoke(new EventHandler((a, b) => { this.pbFinish.PerformStep(); }));
                    }
                }
            }

            this.BeginInvoke(new EventHandler((a, b) => { this.btnInit.Enabled = true; }));

            MessageBox.Show("数据初始化完毕", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
コード例 #19
0
        public bool CheckExists_Organization(BasicOrganization objBasicOrganization)
        {
            var repository = ServiceFactory.GetService <IBasicOrganizationRepository>();

            return(repository.CheckExists(objBasicOrganization));
        }