/// <summary>
        /// 登录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbSystem.Text == "")
                {
                    MessageDialog.ShowPromptMessage("请选择【系统平台】");
                    return;
                }

                if (FindWindow(null, cmbSystem.Text + "信息化系统") != IntPtr.Zero)
                {
                    MessageDialog.ShowPromptMessage("您已经运行了一个【" + cmbSystem.Text + "信息化】程序,无法运行多个");
                    return;
                }

                if (txtUserCode.Text == "" || txtPwd.Text == "")
                {
                    MessageDialog.ShowPromptMessage("请填写完整用户信息!");
                    return;
                }

                GlobalParameter.Init(cmbSystem.Text);
                DBOperateERP.AccessDB.InitDBOperate();

                GlobalObject.DatabaseServer.IsConnection();

                string loginNotice = UniversalFunction.GetSwitchKey()[13];

                string workID = UniversalFunction.GetWorkID(txtUserCode.Text);

                if (AuthenticationManager.IdentifyAuthority(workID, txtPwd.Text))
                {
                    LoggingFlag = true;

                    //if ((loginNotice != null && loginNotice.Length > 0)
                    //    && loginNotice != GlobalParameter.LoginNotice)
                    //{
                    //    登陆界面温馨提示 frm = new 登陆界面温馨提示(loginNotice);
                    //    frm.ShowDialog();
                    //}

                    IAuthentication authentication = AuthenticationManager.Authentication;
                    List <string>   listRoles      = new List <string>();
                    string[]        roleCodes      = new string[authentication.Roles.Count];

                    for (int i = 0; i < authentication.Roles.Count; i++)
                    {
                        listRoles.Add(authentication.Roles[i].角色名称);
                        roleCodes[i] = authentication.Roles[i].角色编码;
                    }

                    View_HR_Personnel personnelInfo = UniversalFunction.GetPersonnelInfo(workID);

                    if (personnelInfo == null || personnelInfo.工号 == null)
                    {
                        throw new Exception("【工号】:" + workID + " 不存在,请咨询人力资源");
                    }
                    else if (!personnelInfo.是否在职)
                    {
                        throw new Exception("【工号】:" + workID + " 已【离职】,请咨询人力资源");
                    }

                    BasicInfo.LoginID        = personnelInfo.工号;
                    BasicInfo.LoginName      = personnelInfo.姓名;
                    BasicInfo.DeptCode       = personnelInfo.部门编码;
                    BasicInfo.DeptName       = personnelInfo.部门名称;
                    BasicInfo.BaseSwitchInfo = UniversalFunction.GetSwitchKey();

                    GlobalParameter.UserCode    = txtUserCode.Text;
                    GlobalParameter.LoginNotice = loginNotice;

                    GlobalParameter.Save();

                    BasicInfo.ListRoles = listRoles;
                    BasicInfo.RoleCodes = roleCodes;

                    if (BasicInfo.ListRoles.Contains("物流公司") &&
                        BasicInfo.ListRoles.Contains("物流公司_库管理员") &&
                        BasicInfo.ListRoles.Count() == 2 &&
                        cmbSystem.SelectedIndex == 0)
                    {
                        throw new Exception("物流公司,无法登陆【湖南容大】信息化系统");
                    }

                    this.Close();
                }
            }
            catch (Exception err)
            {
                MessageDialog.ShowErrorMessage(err.Message);
                return;
            }
        }
Exemplo n.º 2
0
        public bool RefreshSpan(PhysicalBridge bridge)
        {
            bool     success = true;
            Document doc     = bridge.CommandData.Application.ActiveUIDocument.Document;

            using (Transaction transaction = new Transaction(doc, "Initializing individual"))
            {
                transaction.Start();

                var failureOptions = transaction.GetFailureHandlingOptions();
                failureOptions.SetFailuresPreprocessor(new DuplicateMarkSwallower());
                transaction.SetFailureHandlingOptions(failureOptions);

                string[] parameters = Enum.GetNames(typeof(Symbols));
                for (int p = 0; p < parameters.Count(); p++)
                {
                    GlobalParameter globalParameter = doc.GetElement(GlobalParametersManager.FindByName(doc, parameters[p])) as GlobalParameter;
                    if (globalParameter != null)
                    {
                        globalParameter.SetValue(new DoubleParameterValue(Converters.FromMeters(Parameters[p])));
                    }
                }

                double volume = 0.0;
                try
                {
                    volume = Converters.FromCubicMeters(bridge.Superstructure.GetMaterialVolume(bridge.Superstructure.GetMaterialIds(false).First()));
                }
                catch { success = false; };

                if (success)
                {
                    FilteredElementCollector collector = new FilteredElementCollector(doc);
                    List <Element>           levels    = collector.OfClass(typeof(Level)).ToElements().ToList();

                    if (levels.Count() > 0)
                    {
                        double O2 = Converters.ToMeters(bridge.Superstructure.ParametersMap.get_Item("O2").AsDouble());
                        double O3 = Converters.ToMeters(bridge.Superstructure.ParametersMap.get_Item("O3").AsDouble());
                        double O4 = Converters.ToMeters(bridge.Superstructure.ParametersMap.get_Item("O4").AsDouble());

                        double S1 = bridge.Superstructure.ParametersMap.get_Item("S1").AsDouble();
                        double S2 = bridge.Superstructure.ParametersMap.get_Item("S2").AsDouble();
                        double S3 = bridge.Superstructure.ParametersMap.get_Item("S3").AsDouble();
                        double S4 = bridge.Superstructure.ParametersMap.get_Item("S4").AsDouble();

                        double bearingHeight = 0.169;
                        for (int i = levels.Count() - 1; i >= 0; i--)
                        {
                            if ((levels[i].Name.Contains("Wierzch ławy podłożyskowej") == false) && (levels[i].Name.Contains("Wierzch trzonów") == false))
                            {
                                levels.RemoveAt(i);
                            }
                        }
                        if (levels.Count() > 0)
                        {
                            double zRef = O3 < 0 ? -1.0 * O3 * S3 / 100 : -1.0 * O3 * S2 / 100;

                            double zLeft;
                            if (Parameters[(int)Symbols.OL] > O2)
                            {
                                zLeft = zRef + (O3 - Parameters[(int)Symbols.OL]) * S2 / 100;
                            }
                            else
                            {
                                zLeft = zRef - (O2 - O3) * S2 / 100 + (O2 - Parameters[(int)Symbols.OL]) * S1 / 100;
                            }

                            double zRight;
                            if (Parameters[(int)Symbols.OP] < O4)
                            {
                                zRight = zRef + (O3 - Parameters[(int)Symbols.OP]) * S3 / 100;
                            }
                            else
                            {
                                zRight = zRef - (O4 - O3) * S3 / 100 + (O4 - Parameters[(int)Symbols.OP]) * S4 / 100;
                            }

                            double nominalBearingSpace = Converters.ToMeters(((doc.GetElement(GlobalParametersManager.FindByName(doc, "Nominalna wysokość przestrzeni łożyskowania")) as GlobalParameter).GetValue() as DoubleParameterValue).Value);
                            double roadLayersThickness = Converters.ToMeters(((doc.GetElement(GlobalParametersManager.FindByName(doc, "Nominalna grubość nawierzchni")) as GlobalParameter).GetValue() as DoubleParameterValue).Value);
                            double z = Math.Round((Math.Min(zLeft - Parameters[(int)Symbols.HL], zRight - Parameters[(int)Symbols.HP]) - nominalBearingSpace - roadLayersThickness) / 0.05) * 0.05;
                            foreach (Element level in levels)
                            {
                                (level as Level).Elevation = Converters.FromMeters(z);
                            }

                            GlobalParameter leftBearingAshlar  = doc.GetElement(GlobalParametersManager.FindByName(doc, "Wysokość ciosu. Dźwigar lewy")) as GlobalParameter;
                            GlobalParameter rightBearingAshlar = doc.GetElement(GlobalParametersManager.FindByName(doc, "Wysokość ciosu. Dźwigar prawy")) as GlobalParameter;
                            leftBearingAshlar.SetValue(new DoubleParameterValue(Converters.FromMeters(zLeft - Parameters[(int)Symbols.HL] - roadLayersThickness - z - bearingHeight)));
                            rightBearingAshlar.SetValue(new DoubleParameterValue(Converters.FromMeters(zRight - Parameters[(int)Symbols.HP] - roadLayersThickness - z - bearingHeight)));
                        }
                    }
                }
                transaction.Commit();
            }
            return(success);
        }