コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="assembly"></param>
        /// <param name="cbmcontrollerId"></param>
        /// <returns></returns>
        public CbmController GetCbm(string cbmcontrollerId)
        {
            lock (INSTANCE)
            {
                if (!initializedFlg)
                {
                    Init(this.assemblyname);
                }

                try
                {
                    CbmController cbmController = (CbmController)dicAssemblyTypeObj.First(c => c.Key == cbmcontrollerId).Value;
                    return(cbmController);
                }
                catch (ArgumentNullException exception)
                {
                    MessageData messageData = new MessageData("fsci00002", Properties.Resources.fsci00002, new string[] { cbmcontrollerId, exception.Message });
                    logger.Error(messageData, exception);

                    throw new Framework.ApplicationException(messageData, exception);
                }
                catch (InvalidOperationException exception)
                {
                    MessageData messageData = new MessageData("fsci00002", Properties.Resources.fsci00002, new string[] { cbmcontrollerId, exception.Message });
                    logger.Error(messageData, exception);

                    throw new Framework.ApplicationException(messageData, exception);
                }
            }
        }
コード例 #2
0
        public ValueObject Execute(TransactionContext trxContext, ValueObject vo)
        {
            MasterMntCommonInVo inVo = (MasterMntCommonInVo)vo;

            CbmController targetCbm = inVo.TargetCbm;

            ValueObject targetInVo = inVo.TargetInVo;

            ValueObject outVo = targetCbm.Execute(trxContext, targetInVo);

            //invoke master mnt log DAO
            if (inVo.IsLogging)
            {
                var stringwriter = new System.IO.StringWriter();
                var serializer   = new XmlSerializer(outVo.GetType());
                serializer.Serialize(stringwriter, outVo);

                //MasterMntUpdatedRecord logInVo = new MasterMntUpdatedRecord
                //{
                //    TableName = "user",
                //    LogContents = stringwriter.ToString()
                //};
                // UpdateLogMasterMntCbm updateLogCbm = new UpdateLogMasterMntCbm();

                //MasterMntUpdatedRecord logOutVo = (MasterMntUpdatedRecord)updateLogCbm.Execute(trxContext, logInVo);
            }

            return(outVo);
        }
コード例 #3
0
        /// <summary>
        /// executing transaction
        /// </summary>
        /// <param name="cbm"></param>
        /// <param name="vo"></param>
        /// <returns></returns>
        public static ValueObject Invoke(CbmController cbm, ValueObject vo, string connectionString)
        {
            if (connectionString == null || connectionString.Trim() == string.Empty)
            {
                //throw new SystemException
            }

            return(DefaultCbmInvoker.Invoke(cbm, vo, connectionString));
        }
コード例 #4
0
 /// <summary>
 /// invoking transaction for execution
 /// </summary>
 /// <param name="cbm"></param>
 /// <param name="vo"></param>
 /// <param name="connectionString"></param>
 /// <returns></returns>
 public static ValueObject Invoke(CbmController cbm, ValueObject vo, string connectionString)
 {
     if (string.IsNullOrWhiteSpace(connectionString))
     {
         MessageData messageData = new MessageData("ffce00019", Properties.Resources.ffce00019);
         logger.Error(messageData, new NullReferenceException());
         throw new SystemException(messageData, new NullReferenceException());
     }
     return(Invoke(cbm, vo, null, defaultTrxFactory, connectionString));
 }
コード例 #5
0
        /// <summary>
        /// invokes respective cbm
        /// </summary>
        /// <param name="userCbm"></param>
        /// <param name="userVo"></param>
        /// <param name="isLogging"></param>
        /// <returns></returns>
        public ValueObject InvokeCbm(CbmController userCbm, ValueObject userVo, bool isLogging)
        {
            MasterMntCommonInVo commonInVo = new MasterMntCommonInVo();

            commonInVo.TargetCbm  = userCbm;
            commonInVo.TargetInVo = userVo;
            commonInVo.IsLogging  = isLogging;

            return(DefaultCbmInvoker.Invoke(commonCbm, commonInVo));
        }
コード例 #6
0
        public ValueObject Execute(string CbmId, UserData userdata, ValueObject vo)
        {
            UserData usr = UserData.GetUserData();

            usr.UserCode    = userdata.UserCode;
            usr.FactoryCode = userdata.FactoryCode;

            CbmController cbm = cbmContainer.GetCbm(CbmId);

            return(DefaultCbmInvoker.Invoke(cbm, vo, userdata, UserDataSpecifiedTransactionContextFactory.GetInstance()));
        }
コード例 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="assembly"></param>
        /// <param name="cbmName"></param>
        /// <returns></returns>
        private CbmController CbmInstance(Assembly assembly, string cbmName)
        {
            try
            {
                CbmController cbmController = (CbmController)assembly.CreateInstance(cbmName);

                return(cbmController);
            }
            catch (ArgumentException exception)
            {
                MessageData messageData = new MessageData("fsce00002", Properties.Resources.fsce00002, new string[] { cbmName, exception.Message });
                logger.Error(messageData, exception);

                throw new Framework.ApplicationException(messageData, exception);
            }
            catch (MissingMethodException exception)
            {
                MessageData messageData = new MessageData("fsce00002", Properties.Resources.fsce00002, new string[] { cbmName, exception.Message });
                logger.Error(messageData, exception);

                throw new Framework.ApplicationException(messageData, exception);
            }
            catch (System.IO.FileLoadException exception)
            {
                MessageData messageData = new MessageData("fsce00002", Properties.Resources.fsce00002, new string[] { cbmName, exception.Message });
                logger.Error(messageData, exception);

                throw new Framework.ApplicationException(messageData, exception);
            }
            catch (System.IO.FileNotFoundException exception)
            {
                MessageData messageData = new MessageData("fsce00002", Properties.Resources.fsce00002, new string[] { cbmName, exception.Message });
                logger.Error(messageData, exception);

                throw new Framework.ApplicationException(messageData, exception);
            }
            catch (BadImageFormatException exception)
            {
                MessageData messageData = new MessageData("fsce00002", Properties.Resources.fsce00002, new string[] { cbmName, exception.Message });
                logger.Error(messageData, exception);

                throw new Framework.ApplicationException(messageData, exception);
            }
        }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        private void LoadCbmXmlAndCreateCbmInstance()
        {
            string filePath = AppDomain.CurrentDomain.BaseDirectory + ServerConfigurationDataTypeEnum.DEFAULT_CBM_LIST_XML.GetValue();

            if (!System.IO.File.Exists(filePath))
            {
                //logging
                return;
            }

            DataSet dsCbm = new DataSet();

            //Read Xml file from Exection Path
            dsCbm.ReadXml(filePath);

            Assembly assembly = LoadAssembly(this.assemblyname);

            if (assembly == null)
            {
                //log
                return;
            }


            DataTable dtCbm = dsCbm.Tables[0];

            if (dtCbm.Rows.Count == 0)
            {
                //logging
                return;
            }

            foreach (DataRow dr in dtCbm.Rows)
            {
                CbmController cbmController = CbmInstance(assembly, dr["Name"].ToString());

                if (cbmController != null)
                {
                    dicAssemblyTypeObj.Add(dr["ID"].ToString(), cbmController);
                }
            }
        }
コード例 #9
0
        public ValueObject Execute(TransactionContext trxContext, ValueObject vo)
        {
            InspectionReturnVo outVo       = new InspectionReturnVo();
            InspectionReturnVo copyChildVo = null;

            ValueObjectList <ValueObject> inListVo = (ValueObjectList <ValueObject>)vo;

            if (inListVo == null || inListVo.GetList() == null || inListVo.GetList().Count == 0)
            {
                return(outVo);
            }

            InspectionItemVo updateitemVo = (InspectionItemVo)inListVo.GetList()[2];
            InspectionItemSelectionDatatypeValueVo updateSelectionDataTypeValueVo = (InspectionItemSelectionDatatypeValueVo)inListVo.GetList()[3];

            copyInspectionFormatMasterMntCbm = new CopyInspectionFormatMasterMntCbm();

            outVo = (InspectionReturnVo)copyInspectionFormatMasterMntCbm.Execute(trxContext, vo);

            updateitemVo.InspectionItemId = outVo.InspectionItemId;
            //copyChildItemsExist(trxContext, updateitemVo);

            InspectionItemVo childInVo = new InspectionItemVo();

            childInVo.ParentInspectionItemId = updateitemVo.InspectionItemIdCopy;

            ValueObjectList <InspectionItemVo> childOutVo = (ValueObjectList <InspectionItemVo>)getInspectionItemChildCbm.Execute(trxContext, childInVo);

            if (childOutVo != null && childOutVo.GetList() != null && childOutVo.GetList().Count > 0)
            {
                int RunningNumber     = 1;
                InspectionItemVo inVo = new InspectionItemVo();
                //inVo.ParentInspectionItemId = updateitemVo.InspectionItemId;
                inVo.InspectionProcessId = updateitemVo.InspectionProcessId;

                InspectionItemVo getRunningNoVo = (InspectionItemVo)getInspectionItemSeqCbm.Execute(trxContext, inVo);
                if (getRunningNoVo != null && getRunningNoVo.InspectionItemCode != null)
                {
                    string strTemp;
                    strTemp = getRunningNoVo.InspectionItemCode;
                    if (strTemp.LastIndexOf(GlobalMasterDataTypeEnum.CODE_SEPARATOR.GetValue()) > 0)
                    {
                        strTemp = strTemp.Substring(strTemp.LastIndexOf(GlobalMasterDataTypeEnum.CODE_SEPARATOR.GetValue()) + 1);
                        if (strTemp.All(Char.IsDigit))
                        {
                            RunningNumber = Convert.ToInt32(strTemp) + 1;
                        }
                    }
                }

                int displyOrd = 0;
                foreach (InspectionItemVo itmVo in childOutVo.GetList())
                {
                    displyOrd += 1;
                    itmVo.ParentInspectionItemId = updateitemVo.InspectionItemId;
                    itmVo.InspectionItemIdCopy   = itmVo.InspectionItemId;
                    itmVo.InspectionProcessCode  = updateitemVo.InspectionProcessCode;
                    itmVo.DisplayOrder           = displyOrd;

                    itmVo.InspectionItemCode = updateitemVo.InspectionProcessCode + GlobalMasterDataTypeEnum.CODE_SEPARATOR.GetValue() +
                                               GlobalMasterDataTypeEnum.ITEM_CODE.GetValue() + GlobalMasterDataTypeEnum.CODE_SEPARATOR.GetValue() + RunningNumber;

                    inListVo.GetList()[2] = itmVo;

                    copyInspectionFormatMasterMntCbm = new CopyInspectionFormatMasterMntCbm();
                    copyChildVo    = (InspectionReturnVo)copyInspectionFormatMasterMntCbm.Execute(trxContext, inListVo);
                    RunningNumber += 1;
                }
            }

            if (copyChildVo != null)
            {
                return(copyChildVo);
            }
            return(outVo);
        }
コード例 #10
0
        /// <summary>
        /// executing transaction
        /// </summary>
        /// <param name="cbm"></param>
        /// <param name="vo"></param>
        /// <returns></returns>
        internal static ValueObject Invoke(CbmController cbm, ValueObject vo, UserData userData, TransactionContextFactory trxFactory, string connectionString)
        {
            if (cbm == null)
            {
                MessageData messageData = new MessageData("ffce00001", Properties.Resources.ffce00001, System.Reflection.MethodBase.GetCurrentMethod().Name);
                logger.Error(messageData, new NullReferenceException());
                throw new SystemException(messageData, new NullReferenceException());
            }

            if (trxFactory == null)
            {
                //please write code here
                defaultTrxFactory.GetTransactionContext(userData);
                trxFactory = defaultTrxFactory;
            }


            IDbTransaction dbTransaction = null;
            IDbConnection  connection    = null;
            //Get TransactionContext
            TransactionContext trxContext = trxFactory.GetTransactionContext(userData);

            try
            {
                connection = new NpgsqlConnection(connectionString);

                trxContext.DbConnection = connection;
                trxContext.DbConnection.Open();

                dbTransaction = trxContext.DbConnection.BeginTransaction();

                //Get DB Processing Time
                CbmController GetDBProcessingTimeCbm = trxFactory.GetDBProcessingTimeCbm();

                TimeVo time = (TimeVo)GetDBProcessingTimeCbm.Execute(trxContext, vo);

                trxContext.ProcessingDBDateTime = time.CurrentDateTime;

                //Start transaction
                ValueObject returnedVo = cbm.Execute(trxContext, vo);



                //commit
                dbTransaction.Commit();

                return(returnedVo);
            }
            catch (ApplicationException appEx)
            {
                //rollback
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                MessageData messageData = new MessageData("ffce00003", Properties.Resources.ffce00003, appEx.Message);
                logger.Error(messageData, appEx);
                throw appEx;
            }
            catch (SystemException sysEx)
            {
                //rollback
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                MessageData messageData = new MessageData("ffce00003", Properties.Resources.ffce00003, sysEx.Message);
                logger.Error(messageData, sysEx);

                throw sysEx;
            }
            catch (Exception Ex)
            {
                //rollback
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                MessageData messageData = new MessageData("ffce00003", Properties.Resources.ffce00003, Ex.Message);
                logger.Error(messageData, Ex);

                throw new SystemException(messageData);
            }
            finally
            {
                try
                {
                    if (connection != null)
                    {
                        connection.Close();
                    }
                }
                catch (Exception ex)
                {
                    //need to be implemented
                    MessageData messageData = new MessageData("ffce00003", Properties.Resources.ffce00003, ex.Message);
                    logger.Error(messageData, ex);

                    throw new SystemException(messageData);
                }
            }
        }
コード例 #11
0
        /// <summary>
        /// invoking and executing transaction using userdata and transaxtioncontextfacctory
        /// </summary>
        /// <param name="cbm"></param>
        /// <param name="vo"></param>
        /// <param name="userData"></param>
        /// <param name="trxFactory"></param>
        /// <returns></returns>
        public static ValueObject Invoke(CbmController cbm, ValueObject vo, UserData userData, TransactionContextFactory trxFactory)
        {
            string connectionString = ConfigurationDataTypeEnum.CONNECTION_STRING.GetValue(); // Properties.Settings.Default.ConnectionString;

            return(Invoke(cbm, vo, userData, trxFactory, connectionString));
        }
コード例 #12
0
        /// <summary>
        /// executing transaction
        /// </summary>
        /// <param name="cbm"></param>
        /// <param name="vo"></param>
        /// <returns></returns>
        public static ValueObject Invoke(CbmController cbm, ValueObject vo)
        {
            string connectionString = ConfigurationDataTypeEnum.CONNECTION_STRING.GetValue(); // Properties.Settings.Default.ConnectionString;

            return(Invoke(cbm, vo, connectionString));
        }
コード例 #13
0
ファイル: MySqlCbmInvoker.cs プロジェクト: D-Khoa/MyGit
        /// <summary>
        /// executing transaction
        /// </summary>
        /// <param name="cbm">cbm  to be executed</param>
        /// <param name="vo">input vo for the cbm</param>
        /// <param name="userData">userdata</param>
        /// <param name="trxFactory">TransactionContextFactory to get transactioncontext using userdata</param>
        /// <param name="connectionString">connectionString for connecting with another database</param>
        /// <exception cref="Com.Nidec.Mes.Framework.ApplicationException">application exception handled in cbm access and cbm invoke</exception>
        /// <exception cref="Com.Nidec.Mes.Framework.SystemException">system exception handled in cbm access and cbm invoke</exception>
        /// <exception cref="System.Exception">Unhandled exception occured has been thrown as system exception in cbm access and cbm invoke</exception>
        /// <returns>output vo will be returned / exception will be thrown for error cases</returns>
        internal static ValueObject Invoke(CbmController cbm, ValueObject vo, UserData userData, TransactionContextFactory trxFactory, string connectionString)
        {
            if (cbm == null)
            {
                MessageData messageData = new MessageData("ffce00041", Properties.Resources.ffce00041, System.Reflection.MethodBase.GetCurrentMethod().Name);
                logger.Error(messageData, new NullReferenceException());
                throw new SystemException(messageData, new NullReferenceException());
            }

            if (trxFactory == null)
            {
                //please write code here
                defaultTrxFactory.GetTransactionContext(userData);
                trxFactory = defaultTrxFactory;
            }


            IDbTransaction dbTransaction = null;
            IDbConnection  connection    = null;
            //Get TransactionContext
            TransactionContext trxContext = trxFactory.GetTransactionContext(userData);

            try
            {
                connection = new MySqlConnection(connectionString);

                trxContext.DbConnection = connection;
                trxContext.DbConnection.Open();

                dbTransaction = trxContext.DbConnection.BeginTransaction();

                //Start transaction
                ValueObject returnedVo = cbm.Execute(trxContext, vo);

                //commit
                dbTransaction.Commit();

                return(returnedVo);
            }
            catch (ApplicationException appEx)
            {
                //rollback
                DbTransactionRollback(dbTransaction);

                MessageData messageData = new MessageData("ffce00042", Properties.Resources.ffce00042, appEx.Message);
                logger.Error(messageData, appEx);

                throw appEx; //throw original app exception
            }
            catch (SystemException sysEx)
            {
                //rollback
                DbTransactionRollback(dbTransaction);

                MessageData messageData = new MessageData("ffce00043", Properties.Resources.ffce00043, sysEx.Message);
                logger.Error(messageData, sysEx);

                throw sysEx; //throw original sys exception
            }
            catch (Exception Ex)
            {
                //rollback
                DbTransactionRollback(dbTransaction);

                MessageData messageData = new MessageData("ffce00044", Properties.Resources.ffce00044, Ex.Message);
                logger.Error(messageData, Ex);

                throw new SystemException(messageData, Ex); //throw original exception as sys exception
            }
            finally
            {
                try
                {
                    if (connection != null)
                    {
                        connection.Close();
                    }
                }
                catch (Exception ex)
                {
                    //need to be implemented
                    MessageData messageData = new MessageData("ffce00045", Properties.Resources.ffce00045, ex.Message);
                    logger.Error(messageData, ex);

                    throw new SystemException(messageData, ex); //throw original exception as sys exception
                }
            }
        }