Example #1
0
        private static void setTo(SynapseInterface Int)
        {
            ReportOrigin _reportOrigin = new ReportOrigin();

            _reportOrigin.ORIGIN              = Origin.Interface;
            _reportOrigin.TECHNICALNAME       = Int.TECHNICALNAME;
            _reportOrigin.DBTYPE              = (DatabaseType)Enum.Parse(typeof(DatabaseType), Int.DBTYPE, true);
            _reportOrigin.DBCONNECTION        = Int.TECHNICALNAME;
            _reportOrigin.FriendlyName        = new LabelBag();
            _reportOrigin.FriendlyName.Labels = new List <SynapseLabel>();

            foreach (SynapseLanguage lang in SynapseLanguage.LoadFromQuery("SELECT * FROM SYNAPSE_LANGUAGE ORDER BY CODE"))
            {
                SynapseLabel newlabel = new SynapseLabel();

                newlabel.LABELID  = 0;
                newlabel.LANGUAGE = lang.CODE;
                newlabel.TEXT     = Int.TECHNICALNAME;
                _reportOrigin.FriendlyName.Labels.Add(newlabel);
            }

            _reportOrigin._MODULEID        = 0;
            _reportOrigin.INTERFACEID      = Int.ID;
            _reportOrigin._TYPE            = Int.TYPE;
            _reportOrigin.CONNECTIONSTRING = Int.CONNECTIONSTRING;
            _reportOrigin.TABLESQUERY      = Int.TABLESQUERY;
            _reportOrigin.VIEWSQUERY       = Int.VIEWSQUERY;
            _reportOrigin.FIELDSQUERY      = Int.FIELDSQUERY;
            _reportOrigin.ORACLE_HOME      = Int.ORACLE_HOME;

            GlobalVariables.selectedOrigin = _reportOrigin;
        }
Example #2
0
        void LanguageClick(object sender, EventArgs e)
        {
            ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;

            foreach (SynapseLanguage lang in _language)
            {
                if (lang.CULTURE == tsmi.Tag.ToString())
                {
                    _CurrentLanguage = lang;
                }
            }
            Security.Tools.SetCulture(_CurrentLanguage.CULTURE);
            FormUser.UserCulture = _CurrentLanguage.CULTURE;
            FormUser.SaveUser();
            foreach (SynapseForm form in FormList)
            {
                form.initForm(SynapseCore.Security.Tools.SecureAndTranslateMode.Transalte);
                if (form.LanguageMenu != null)
                {
                    form.LanguageMenu.Text  = _CurrentLanguage.LABEL;
                    form.LanguageMenu.Tag   = _CurrentLanguage.CULTURE;
                    form.LanguageMenu.Image = (Image)Resource1.ResourceManager.GetObject(_CurrentLanguage.CODE);
                }
            }
        }
Example #3
0
        public frm_SynapseObjectEdit(object SynapseObject)
        {
            InitializeComponent();
            _SynapseObject = SynapseObject;
            bags           = new Hashtable();
            languages      = SynapseLanguage.Load();
            IList <PropertyInfo> properties      = SynapseObject.GetType().GetProperties();
            IList <FieldInfo>    fields          = SynapseObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
            List <Control>       labelBagControl = new List <Control>();

            foreach (FieldInfo fi in fields)
            {
                if (fi.Name == "_IDproperty")
                {
                    _IDproperty = fi.GetValue(SynapseObject).ToString();
                }
                if (fi.Name == "_EcludeForSave")
                {
                    _EcludeForSave = fi.GetValue(SynapseObject).ToString();
                }
                if (fi.Name == "_tableName")
                {
                    _tableName = fi.GetValue(SynapseObject).ToString().Trim(new char[] { '[', ']' });
                }
            }
            foreach (PropertyInfo pi in from x in properties where x.PropertyType.ToString() == "SynapseCore.Database.LabelBag" select x)
            {
                uc_LabelBag bag   = new uc_LabelBag();
                object      value = pi.GetValue(SynapseObject, null);
                LabelBag    lbl   = (LabelBag)value;
                Int64       lblid = lbl.GetLabelID();
                if (lblid == 0)
                {
                    lblid = SynapseLabel.GetNextID();
                }

                LabelId[] ids = (LabelId[])pi.GetCustomAttributes(typeof(LabelId), true);
                foreach (LabelId id in ids)
                {
                    PropertyInfo field = SynapseObject.GetType().GetProperty(id.IDField);
                    field.SetValue(SynapseObject, lblid, null);
                    bags.Add(id.IDField, id);
                }

                if (lbl.Labels.Count < languages.Count)
                {
                    foreach (SynapseLanguage lang in languages)
                    {
                        if (lbl.GetLabel(lang.CODE) == null)
                        {
                            SynapseLabel newlabel = new SynapseLabel();

                            newlabel.LABELID = lblid;

                            newlabel.LANGUAGE = lang.CODE;
                            newlabel.TEXT     = "";
                            newlabel.save();
                            lbl.Labels.Add(newlabel);
                        }
                    }
                    _NewLabels = true;
                }

                bag.FieldName = pi.Name;
                bag.LblBag    = lbl;
                labelBagControl.Add(bag);
                //flowLayoutPanel1.Controls.Add(bag);
            }

            foreach (PropertyInfo pi in from x in properties where x.PropertyType.ToString() != "SynapseCore.Database.LabelBag" select x)
            {
                if (!bags.ContainsKey(pi.Name))
                {
                    EntityFieldType FieldType = ((EntityFieldType[])pi.GetCustomAttributes(typeof(EntityFieldType), true)).SingleOrDefault();

                    uc_Field field;
                    if (FieldType != null)
                    {
                        field = new uc_Field(FieldType);
                    }
                    else
                    {
                        field = new uc_Field();
                    }
                    field.FieldName   = pi.Name;
                    field.DisplayName = SynapseForm.GetLabel(_tableName.ToUpperInvariant() + "." + pi.Name.ToUpperInvariant());
                    object value = pi.GetValue(SynapseObject, null);
                    if (value != null)
                    {
                        field.FieldValue = value;
                    }
                    if (pi.Name == _IDproperty)
                    {
                        field.Enabled = false;
                    }
                    flowLayoutPanel1.Controls.Add(field);
                }
            }
            flowLayoutPanel1.Controls.AddRange(labelBagControl.ToArray());
            if (_NewLabels)
            {
                SynapseObject.GetType().InvokeMember("save", BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.Public, null, SynapseObject, null);
            }
        }
Example #4
0
        private void SecurizeForm(bool AddMenu)
        {
            bool   UserHaveAccess      = false;
            string UserID              = string.Empty;
            bool   ScanControl         = false;
            bool   ShowTestEnvironment = true;

            if (_allModules == null)
            {
                _allModules = SynapseModule.Load();
            }
            try
            {
                ShowTestEnvironment = bool.Parse(ConfigurationManager.AppSettings["ShowTestEnvironment"]);
            }
            // TODO: Replace by more specific exception
            catch (Exception)
            {
                // TODO: Log exception
            }

            if (System.ComponentModel.LicenseManager.UsageMode != System.ComponentModel.LicenseUsageMode.Designtime)
            {
                if (log4net.LogManager.GetRepository().Configured == false)
                {
                    XmlConfigurator.Configure();
                }

                if (_formUser == null)
                {
                    UserID   = WindowsIdentity.GetCurrent().Name;
                    FormUser = new SynapseCore.Security.User(UserID, this.ModuleID);
                }

                if (_language == null)
                {
                    string languageFilter = null;
                    try
                    {
                        languageFilter = ConfigurationManager.AppSettings["ModuleLanguages"];
                    }
                    catch
                    {
                        SynapseLogger.Debug("ModuleLanguage not defined in app.config");
                    }
                    if (languageFilter != null && languageFilter != string.Empty && languageFilter != "")
                    {
                        _language = SynapseLanguage.Load("where CODE in (" + languageFilter + ")");
                    }
                    else
                    {
                        _language = SynapseLanguage.Load();
                    }
                }

                SynapseLogger.Debug("ModuleLanguage not defined in app.config");
                if (Control.ModifierKeys == (Keys.Control | Keys.Shift) && FormUser.IsMemberOf("SYNAPSE_SECURITY_USER_IMPERSONATE"))
                {
                    frm_EnterUser UserDialog = new frm_EnterUser();
                    UserDialog.ShowDialog();
                    UserID = UserDialog.UserID;
                    if (UserID != string.Empty)
                    {
                        FormUser = new SynapseCore.Security.User(UserID, this.ModuleID);
                    }
                }

                SynapseLogger.Debug("Check key modifier");
                if (FormUser.UserCulture != string.Empty && FormUser.UserCulture != null)
                {
                    _CurrentLanguage.CULTURE = FormUser.UserCulture;
                }
                else
                {
                    _CurrentLanguage.CULTURE = Thread.CurrentThread.CurrentCulture.Name;
                }

                SynapseLogger.Debug("Set Current Language");
                foreach (SynapseLanguage lang in _language)
                {
                    if (lang.CULTURE == _CurrentLanguage.CULTURE)
                    {
                        _CurrentLanguage = lang;
                    }
                }

                SynapseLogger.Debug("Set Current Language Label");
                if (_CurrentLanguage.LABEL == null)
                {
                    _CurrentLanguage = _language[0];
                }

                Security.Tools.SetCulture(_CurrentLanguage.CULTURE);
                SynapseLogger.Debug("Configure Resource Manager");
                ConfigureResourceManager();

                SynapseLogger.Debug("Set Current Module access");
                if (FormUser != null)
                {
                    foreach (SynapseModule Module in _allModules) //FormUser.Modules
                    {
                        if (_CurrentSynapse == null && Module.ID == 1)
                        {
                            _CurrentSynapse = Module;
                        }
                        if (_CurrentModule == null && Module.ID == _ModuleID)
                        {
                            _CurrentModule = Module;
                        }
                    }
                    if (FormUser.Modules.Select(m => m.ID).Contains(_CurrentModule.ID))
                    {
                        UserHaveAccess = true;
                    }
                }

                SynapseLogger.Debug("Check Module Mode");
                if (CurrentModule.ID == 1)
                {
                    if (SynapseCore.Database.DBFunction.ConnectionName != "Default")
                    {
                        Mode = SynapseModule.SynapseModuleMode.Development;
                    }
                    else
                    {
                        Mode = SynapseModule.SynapseModuleMode.Production;
                    }
                }
                else
                {
                    Mode = Application.ExecutablePath.Contains("\\Dev\\") ? SynapseModule.SynapseModuleMode.Development : SynapseModule.SynapseModuleMode.Production;
                }

                //redify
                List <Control> menupoint = Controls.OfType <ToolStrip>().Cast <Control>().ToList();
                if (menupoint.Count > 0)
                {
                    foreach (Control Ctrl in menupoint)
                    {
                        if (SynapseCore.Database.DBFunction.FormBackColor != SystemColors.Control && ShowTestEnvironment)
                        {
                            ((ToolStrip)Ctrl).BackColor = SynapseCore.Database.DBFunction.FormBackColor;
                        }
                    }
                }
                //end refify

                SynapseLogger.Debug("Add Menu");
                if (this.ShowMenu && AddMenu)
                {
                    ConfigureMenu();
                }

                SynapseLogger.Debug("Language Message");
                string LangMessage = "en";
                try
                {
                    LangMessage = _CurrentLanguage.CULTURE.Substring(0, 2).ToUpper();
                }
                // TODO: Replace by more specific exception
                catch (Exception)
                {
                    SynapseLogger.Error("Unable to determine language of message");
                }

                SynapseLogger.Debug("Message No Access");
                if (!UserHaveAccess && ModuleID != 1)
                {
                    MessageBox.Show(Properties.Resources.ResourceManager.GetString(LangMessage + "_NoAccess"));
                    Application.Exit();
                }

                SynapseLogger.Debug("Message Not Active");
                if (!CurrentModule.IS_ACTIVE && Mode == SynapseModule.SynapseModuleMode.Production)
                {
                    MessageBox.Show("(" + Mode.ToString() + ") " + Properties.Resources.ResourceManager.GetString(LangMessage + "_Maintenance"));
                    Application.Exit();
                }

                SynapseLogger.Debug("Message Not Up To Date");
                if (!CurrentModule.is_uptodate(Application.StartupPath, Mode) && !System.Diagnostics.Debugger.IsAttached)
                {
                    try
                    {
                        MessageBox.Show(Properties.Resources.ResourceManager.GetString(LangMessage + "_UpdateNeeded"));
                        string file = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf(Mode == SynapseModule.SynapseModuleMode.Production ? "\\Prod\\" : "\\Dev\\")) + "\\Synapse.exe";
                        if (file != null)
                        {
                            SynapseCore.Controls.SynapseForm.SynapseLogger.Debug("starting " + file);
                            System.Diagnostics.Process proc = new System.Diagnostics.Process();
                            proc.EnableRaisingEvents        = false;
                            proc.StartInfo.WindowStyle      = System.Diagnostics.ProcessWindowStyle.Normal;
                            proc.StartInfo.FileName         = file;
                            proc.StartInfo.WorkingDirectory = Path.GetFullPath(file);
                            proc.StartInfo.Arguments        = Mode == SynapseModule.SynapseModuleMode.Production ? "" : "/con:ACC";
                            proc.Start();
                        }
                        else
                        {
                            SynapseCore.Controls.SynapseForm.SynapseLogger.Debug("Not exist " + file);
                        }
                        Application.Exit();
                    }
                    // TODO: Replace by more specific exception
                    catch (Exception)
                    {
                        if (!FormUser.IsMemberOf("SYNAPSE_SECURITY_ADMIN"))
                        {
                            MessageBox.Show("Application not in right location !");
                            Application.Exit();
                        }
                    }
                }

                SynapseLogger.Debug("Message Development");
                if (Mode == SynapseModule.SynapseModuleMode.Development && !DevACK)
                {
                    MessageBox.Show(Properties.Resources.ResourceManager.GetString(LangMessage + "_DevelopmentMode"));
                    DevACK = true;
                }
                try
                {
                    ScanControl = bool.Parse(ConfigurationManager.AppSettings["ScanControl"]);
                }
                // DONE: Replaced by more specific exception (see http://msdn.microsoft.com/en-us/library/vstudio/system.configuration.configurationmanager.appsettings(v=vs.90).aspx)
                catch (ConfigurationErrorsException)
                {
                    // TODO: Remove swallowing of Exception
                }

                if (UpdateControls && ModuleID != 0 && ScanControl)
                {
                    System.IO.TextWriter w = new System.IO.StreamWriter(Application.StartupPath + "\\" + this.Name + "_res.SynapseResource", false, System.Text.Encoding.Unicode);
                    w.Write(SynapseCore.Security.Tools.UpdateControlsInDB(this.Controls, this.ModuleID, null).ToString());

                    w.Flush();
                    w.Close();
                }

                SynapseLogger.Debug("Init Form");
                initForm(Security.Tools.SecureAndTranslateMode.Secure | Security.Tools.SecureAndTranslateMode.Transalte);
            }
        }
Example #5
0
 private void fillCulture()
 {
     cbCulture.DataSource    = SynapseLanguage.Load().OrderBy(x => x.LABEL).ToList();
     cbCulture.DisplayMember = "LABEL";
     cbCulture.ValueMember   = "CULTURE";
 }
Example #6
0
        private void tsbCopy_Click(object sender, EventArgs e)
        {
            SynapseCore.Database.DBFunction.StartTransaction();

            Definition reportDef = Definition.LoadByID(((Definition)olvReport.SelectedObject).ID);
            Definition reportNew = new Definition();

            try
            {
                reportNew.ID            = 0;
                reportNew.QRY_JOIN      = reportDef.QRY_JOIN;
                reportNew.QRY_CONDITION = reportDef.QRY_CONDITION;
                reportNew.QRY_GROUP     = reportDef.QRY_GROUP;
                reportNew.FK_MODULE     = reportDef.FK_MODULE;
                reportNew.FK_INTERFACE  = reportDef.FK_INTERFACE;
                reportNew.FK_CATEGORY   = reportDef.FK_CATEGORY;
                reportNew.FK_TYPE       = reportDef.FK_TYPE;
                reportNew.ADDCATEGORY   = reportDef.ADDCATEGORY;
                reportNew.AVAILABLE     = false;

                Int64 reportNew_lblID = SynapseLabel.GetNextID();
                foreach (SynapseLanguage lang in SynapseLanguage.LoadFromQuery("SELECT * FROM SYNAPSE_LANGUAGE ORDER BY CODE"))
                {
                    SynapseLabel newlabel = new SynapseLabel();

                    newlabel.LABELID  = reportNew_lblID;
                    newlabel.LANGUAGE = lang.CODE;
                    newlabel.TEXT     = SynapseLabel.Load("WHERE LANGUAGE='" + lang.CODE + "' AND LABELID=" + reportDef.LABELID).FirstOrDefault().TEXT + " (*)";
                    newlabel.save();
                }
                reportNew.LABELID = reportNew_lblID;

                reportNew.save();

                foreach (Tables tbl in Tables.Load("WHERE FK_REPORT=" + reportDef.ID))
                {
                    Tables tblNew = new Tables();
                    tblNew.ID        = 0;
                    tblNew.TABLENAME = tbl.TABLENAME;
                    tblNew.TYPE      = tbl.TYPE;
                    tblNew.FK_REPORT = reportNew.ID;

                    tblNew.save();
                }

                foreach (Field fld in Field.Load("WHERE FK_REPORT=" + reportDef.ID))
                {
                    Field fldNew = new Field();
                    fldNew.ID        = 0;
                    fldNew.FIELDNAME = fld.FIELDNAME;
                    fldNew.FORMAT    = fld.FORMAT;
                    fldNew.POSITION  = fld.POSITION;
                    fldNew.WIDTH     = fld.WIDTH;
                    fldNew.FK_REPORT = reportNew.ID;

                    Int64 fldNew_lblID = SynapseLabel.GetNextID();
                    foreach (SynapseLanguage lang in SynapseLanguage.LoadFromQuery("SELECT * FROM SYNAPSE_LANGUAGE ORDER BY CODE"))
                    {
                        SynapseLabel newlabel = new SynapseLabel();

                        newlabel.LABELID  = fldNew_lblID;
                        newlabel.LANGUAGE = lang.CODE;
                        newlabel.TEXT     = SynapseLabel.Load("WHERE LANGUAGE='" + lang.CODE + "' AND LABELID=" + fld.ALIASID).FirstOrDefault().TEXT;
                        newlabel.save();
                    }
                    fldNew.ALIASID = fldNew_lblID;

                    fldNew.save();
                }

                foreach (Filter flt in Filter.Load("WHERE FK_REPORT=" + reportDef.ID))
                {
                    Filter fltNew = new Filter();
                    fltNew.ID                 = 0;
                    fltNew.NAME               = flt.NAME;
                    fltNew.TYPE               = flt.TYPE;
                    fltNew.POSITION           = flt.POSITION;
                    fltNew.CTRL_TABLE         = flt.CTRL_TABLE;
                    fltNew.CTRL_FIELD         = flt.CTRL_FIELD;
                    fltNew.CTRL_CUSTOM        = flt.CTRL_CUSTOM;
                    fltNew.DATA_TABLE         = flt.DATA_TABLE;
                    fltNew.DATA_VALUE         = flt.DATA_VALUE;
                    fltNew.DATA_DISPLAY       = flt.DATA_DISPLAY;
                    fltNew.DATA_QUERY         = flt.DATA_QUERY;
                    fltNew.WIDTH              = flt.WIDTH;
                    fltNew.ADD_TO_REPORTTITLE = flt.ADD_TO_REPORTTITLE;
                    fltNew.IS_LINKED          = false;
                    fltNew.LINKED_FILTERID    = 0;
                    fltNew.LINKED_FIELD       = "";
                    fltNew.CTRL_TYPE          = flt.CTRL_TYPE;
                    fltNew.FK_REPORT          = reportNew.ID;

                    Int64 fltNew_lblID = SynapseLabel.GetNextID();
                    foreach (SynapseLanguage lang in SynapseLanguage.LoadFromQuery("SELECT * FROM SYNAPSE_LANGUAGE ORDER BY CODE"))
                    {
                        SynapseLabel newlabel = new SynapseLabel();

                        newlabel.LABELID  = fltNew_lblID;
                        newlabel.LANGUAGE = lang.CODE;
                        newlabel.TEXT     = SynapseLabel.Load("WHERE LANGUAGE='" + lang.CODE + "' AND LABELID=" + flt.LABELID).FirstOrDefault().TEXT;
                        newlabel.save();
                    }
                    fltNew.LABELID = fltNew_lblID;

                    fltNew.save();
                }

                SynapseCore.Database.DBFunction.CommitTransaction();

                listReport();
            }
            catch (Exception ex)
            {
                SynapseCore.Database.DBFunction.RollbackTransaction();
                GlobalFunctions.showMessage("ERR", "Err.9999", ex.Message);
            }
        }