public override object CommandBody(params object[] paras)
        {
            if (paras.Length < 1)
            {
                throw new ArgumentException();
            }
            List <CurrencyEntity> SaveData = paras[0] as List <CurrencyEntity>;

            CurrencyManager manager = new CurrencyManager();

            if (OnProgress != null)
            {
                string TaskName = BudgetResource.Message.Currency_TaskMessage_Validate;
                BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(TaskName);
                OnProgress(null, args);
            }
            //check
            manager.DataValidation(OnProgress, SaveData);

            if (OnProgress != null)
            {
                string TaskName = BudgetResource.Message.Currency_TaskMessage_Save;
                BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(TaskName);
                OnProgress(null, args);
            }
            //save
            manager.SaveDataToDB(OnProgress, SaveData);

            //Get Data from Db Again
            SaveData = manager.GetDataFromDB(OnProgress);

            Core.CoreData[CoreDataType.CURRENCY_SAVE] = SaveData;
            return(SaveData);
        }
Пример #2
0
        public override object CommandBody(params object[] paras)
        {
            if (paras.Length < 2)
            {
                throw new ArgumentException();
            }

            CurrencySearchCondtion searchCondition = new CurrencySearchCondtion();

            searchCondition.CurrencyCode = paras[0] as string;
            searchCondition.CurrencyName = paras[1] as string;

            if (OnProgress != null)
            {
                string TaskName = BudgetResource.Message.Currency_TaskMessage_Load;
                BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(TaskName);
                OnProgress(null, args);
            }

            CurrencyManager       manager = new CurrencyManager();
            List <CurrencyEntity> data    = manager.GetDataFromDB(OnProgress, searchCondition);

            Core.CoreData[CoreDataType.CURRENCY_SEARCH] = data;
            return(data);
        }
        public List <CurrencyEntity> LoadDataFromFile(BudgetProgressChangedEventHandler OnProgress, string fileName)
        {
            Excel.Application     ExApp      = new Excel.Application();
            Excel.Workbook        ExBook     = ExApp.Workbooks.Open(fileName);
            Excel.Worksheet       ExSheet    = ExBook.Worksheets.Item[1];
            Process[]             excelList  = ExcelUtil.GetProcesses();
            List <CurrencyEntity> entityList = new List <CurrencyEntity>();
            int count = 1;

            try
            {
                int rowIdx = 3;

                string strKey = ConvertUtil.ToString(ExSheet.Range["A" + rowIdx].Value).Trim();

                while (!BudgetResource.Resource.ExcelDataEnd.Equals(strKey, StringComparison.OrdinalIgnoreCase) &&
                       !BudgetResource.Resource.ExcelDataBlank.Equals(strKey, StringComparison.OrdinalIgnoreCase))
                {
                    string strCurrencyCode = ConvertUtil.ToString(ExSheet.Range["A" + rowIdx].Value); //Currency Code
                    string strCurrencyName = ConvertUtil.ToString(ExSheet.Range["B" + rowIdx].Value); //Currency Name
                    string strPassword     = ConvertUtil.ToString(ExSheet.Range["C" + rowIdx].Value); //Password

                    CurrencyEntity entity = new CurrencyEntity();
                    entity.CurrencyCode = strCurrencyCode.Trim(); //Currency Code
                    entity.CurrencyName = strCurrencyName.Trim(); //Currency Name
                    entity.ReadOnly     = true;
                    entity.Row          = rowIdx;
                    entityList.Add(entity);

                    if (OnProgress != null)
                    {
                        string InfomationMessage            = string.Format("you are importing No. {0} data", count);
                        int    Percentage                   = (int)((count + 1) % BudgetConstant.ProgressBarMaximum);
                        BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(InfomationMessage, Percentage, null);
                        OnProgress(this, args);
                    }

                    rowIdx++;
                    count++;
                    strKey = ConvertUtil.ToString(ExSheet.Range["A" + rowIdx].Value).Trim();
                    Thread.Sleep(10);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                ExcelUtil.ReleaseResource(ExSheet, ExBook, ExApp);
                ExcelUtil.KillProcess(excelList);
            }
            return(entityList);
        }
        public void ExportDataToFile(BudgetProgressChangedEventHandler OnProgress, string fileName)
        {
            string templateFilename = Path.Combine(Application.StartupPath, "ExcelTemplate", "Currency_Template.xls");

            List <CurrencyEntity> entityList = GetDataFromDB(OnProgress);

            int count = entityList.Count;

            Excel.Application ExApp     = new Excel.Application();
            Excel.Workbook    ExBook    = ExApp.Workbooks.Open(templateFilename);
            Excel.Worksheet   ExSheet   = ExBook.Worksheets.Item[1];
            Process[]         excelList = ExcelUtil.GetProcesses();

            try
            {
                int rowIdx = 3;

                ExSheet.Range["E" + 1].Value = DateTime.Now.ToString();//Date

                for (int i = 0; i < count; i++)
                {
                    if (OnProgress != null)
                    {
                        string InfomationMessage            = string.Format("you are processing No. {0} data", i + 1);
                        int    Percentage                   = (int)((i + 1) * BudgetConstant.ProgressBarMaximum / count);
                        BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(InfomationMessage, Percentage, null);
                        OnProgress(this, args);
                    }

                    CurrencyEntity entity = entityList[i];
                    ExSheet.Range["A" + rowIdx].Value = ConvertUtil.ToString(entity.CurrencyCode); //Currency Code
                    ExSheet.Range["B" + rowIdx].Value = ConvertUtil.ToString(entity.CurrencyName); //Currency Name

                    rowIdx++;

                    Thread.Sleep(10);
                }

                ExSheet.Range["A" + rowIdx].Value = BudgetResource.Resource.ExcelDataEnd;//End Flag

                ExBook.SaveCopyAs(fileName);
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                ExcelUtil.ReleaseResource(ExSheet, ExBook, ExApp);
                ExcelUtil.KillProcess(excelList);
            }
        }
Пример #5
0
        public override object CommandBody(params object[] paras)
        {
            if (paras.Length < 2)
            {
                throw new ArgumentException();
            }

            string strFileName   = paras[0] as string;
            string strBudgetYear = paras[1] as string;

            if (OnProgress != null)
            {
                string TaskName = BudgetResource.Message.NoEntered_TaskMessage_Export;
                BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(TaskName);
                OnProgress(null, args);
            }
            NoEnteredExportManager manager = new NoEnteredExportManager();

            manager.ExportDataToFile(OnProgress, strFileName, strBudgetYear);

            return(true);
        }
        public void ExportDataToFile(BudgetProgressChangedEventHandler OnProgress, string fileName, string strBudgetYear)
        {
            string templateFilename = Path.Combine(Application.StartupPath, "ExcelTemplate", "SalesPriceNoEnteredList_Template.xls");

            List <NoEnteredExportEntity> entityList = GetDataFromDBExport(OnProgress, strBudgetYear);

            int count = entityList.Count;

            Excel.Application ExApp     = new Excel.Application();
            Excel.Workbook    ExBook    = ExApp.Workbooks.Open(templateFilename);
            Excel.Worksheet   ExSheet   = ExBook.Worksheets.Item[1];
            Process[]         excelList = ExcelUtil.GetProcesses();

            try
            {
                int rowIdx = 5;

                ExSheet.Range["A" + 2].Value = "BudgetYear:" + strBudgetYear;
                ExSheet.Range["N" + 2].Value = string.Format("DB:{0}", ConfigUtil.GetBudgetDB()); //DB
                ExSheet.Range["N" + 3].Value = DateTime.Now.ToString();                           //Date

                for (int i = 0; i < count; i++)
                {
                    if (OnProgress != null)
                    {
                        string InfomationMessage            = string.Format(BudgetResource.Message.Common_Master_ExportToExcel_Info, i + 1);
                        int    Percentage                   = (int)((i + 1) * BudgetConstant.ProgressBarMaximum / count);
                        BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(InfomationMessage, Percentage, null);
                        OnProgress(this, args);
                    }

                    NoEnteredExportEntity entity = entityList[i];

                    ExSheet.Range["A" + rowIdx].Value = ConvertUtil.ToString(entity.CustomerCode);
                    ExSheet.Range["B" + rowIdx].Value = ConvertUtil.ToString(entity.CustomerName);
                    ExSheet.Range["C" + rowIdx].Value = ConvertUtil.ToString(entity.IcasCode);
                    ExSheet.Range["D" + rowIdx].Value = ConvertUtil.ToString(entity.Currency);
                    ExSheet.Range["E" + rowIdx].Value = ConvertUtil.ToString(entity.Apr);
                    ExSheet.Range["F" + rowIdx].Value = ConvertUtil.ToString(entity.May);
                    ExSheet.Range["G" + rowIdx].Value = ConvertUtil.ToString(entity.Jun);
                    ExSheet.Range["H" + rowIdx].Value = ConvertUtil.ToString(entity.Jul);
                    ExSheet.Range["I" + rowIdx].Value = ConvertUtil.ToString(entity.Aug);
                    ExSheet.Range["J" + rowIdx].Value = ConvertUtil.ToString(entity.Sep);
                    ExSheet.Range["K" + rowIdx].Value = ConvertUtil.ToString(entity.Oct);
                    ExSheet.Range["L" + rowIdx].Value = ConvertUtil.ToString(entity.Nov);
                    ExSheet.Range["M" + rowIdx].Value = ConvertUtil.ToString(entity.Dec);
                    ExSheet.Range["N" + rowIdx].Value = ConvertUtil.ToString(entity.Jan);
                    ExSheet.Range["O" + rowIdx].Value = ConvertUtil.ToString(entity.Feb);
                    ExSheet.Range["P" + rowIdx].Value = ConvertUtil.ToString(entity.Mar);

                    rowIdx++;

                    Thread.Sleep(10);
                }

                ExSheet.Range["A" + rowIdx].Value = BudgetResource.Resource.ExcelDataEnd;//End Flag

                ExBook.SaveCopyAs(fileName);
            }
            catch
            {
                throw;
            }
            finally
            {
                ExcelUtil.ReleaseResource(ExSheet, ExBook, ExApp);
                ExcelUtil.KillProcess(excelList);
            }
        }
        public bool SaveDataToDB(BudgetProgressChangedEventHandler OnProgress, List <CurrencyEntity> entityList)
        {
            // The default database service is determined through configuration
            // and passed to the method as a parameter that can be generated
            // automatically through injection when the application initializes.
            if (entityList == null || entityList.Count == 0)
            {
                return(true);
            }

            bool result = false;

            string    sql             = "M05_CURRENCY_CreateUpdateDelete";
            DbCommand currencyCommand = db.GetStoredProcCommand(sql);
            int       count           = entityList.Count;

            using (DbConnection conn = db.CreateConnection())
            {
                conn.Open();
                DbTransaction trans = conn.BeginTransaction();

                try
                {
                    int i = 1;
                    foreach (CurrencyEntity entity in entityList)
                    {
                        currencyCommand.Parameters.Clear();

                        string strCurrencyCode = ConvertUtil.ToString(entity.CurrencyCode); //Currency Code
                        string strCurrencyName = ConvertUtil.ToString(entity.CurrencyName); //Currency Name
                        string strUser         = ConvertUtil.ToString(entity.User);         //User
                        int    intAction       = entity.Action;                             //Action

                        db.AddInParameter(currencyCommand, "CurrencyCode", DbType.String, strCurrencyCode);
                        db.AddInParameter(currencyCommand, "CurrencyName", DbType.String, strCurrencyName);
                        db.AddInParameter(currencyCommand, "Create_User", DbType.String, strUser);
                        db.AddInParameter(currencyCommand, "Update_User", DbType.String, strUser);
                        db.AddInParameter(currencyCommand, "Action", DbType.Int32, intAction);

                        db.ExecuteNonQuery(currencyCommand, trans);

                        if (OnProgress != null)
                        {
                            string InfomationMessage            = string.Format("you are saving No. {0} data", i);
                            int    Percentage                   = (int)(i * BudgetConstant.ProgressBarMaximum / count);
                            BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(InfomationMessage, Percentage, null);
                            OnProgress(this, args);
                        }
                        //if success
                        entity.ReadOnly = true;
                        i++;
                    }

                    // Commit the transaction.
                    trans.Commit();

                    result = true;
                }
                catch
                {
                    // Roll back the transaction.
                    trans.Rollback();
                }
                conn.Close();

                return(result);
            }
        }
        public void DataValidation(BudgetProgressChangedEventHandler OnProgress, List <CurrencyEntity> entityList)
        {
            if (entityList == null || entityList.Count == 0)
            {
                return;
            }

            //List<CategoryEntity> categoryDBList = GetAllCategoryDataFromDB(OnProgress);
            //var categoryCodeDBList = from item in categoryDBList
            //          select item.CategoryCode;
            //ListRangeValidator<string> categoryCodelistRangeValidator = new ListRangeValidator<string>(categoryCodeDBList.ToList<string>(), BudgetResource.Message.Currency_CategoryCode_NoExist);

            List <CurrencyEntity> currencyDBList = GetDataFromDB(OnProgress);
            var currencyCodeDBList = from item in currencyDBList
                                     select item.CurrencyCode;
            ListRangeValidator <string> currencyCodeListRangeValidator = new ListRangeValidator <string>(currencyCodeDBList.ToList <string>(), true, BudgetResource.Message.Currency_CurrencyCode_Exists);


            var currencyCodeList = from item in entityList
                                   select item.CurrencyCode;
            UniqueValidator <string> UniqueValidator = new UniqueValidator <string>(currencyCodeList.ToList <string>(), BudgetResource.Message.Currency_CurrencyCode_Unique);

            ValidatorFactory           valFactory      = EnterpriseLibraryContainer.Current.GetInstance <ValidatorFactory>();
            Validator <CurrencyEntity> entityValidator = valFactory.CreateValidator <CurrencyEntity>();
            int           i       = 1;
            bool          noError = true;
            int           count   = entityList.Count();
            StringBuilder builder = new StringBuilder();

            foreach (CurrencyEntity entity in entityList)
            {
                ValidationResults results = entityValidator.Validate(entity);

                //ValidationResults categoryExistCheckResults = categoryCodelistRangeValidator.Validate(entity.CategoryCode);
                //results.AddAllResults(categoryExistCheckResults);

                if (!entity.ReadOnly)
                {
                    ValidationResults currencyExistCheckResults = currencyCodeListRangeValidator.Validate(entity.CurrencyCode);
                    results.AddAllResults(currencyExistCheckResults);
                }

                ValidationResults uniqueCheckResult = UniqueValidator.Validate(entity.CurrencyCode);
                results.AddAllResults(uniqueCheckResult);

                bool isValid = results.IsValid;

                noError &= isValid;

                if (!isValid)
                {
                    builder.AppendLine(
                        string.Format(
                            CultureInfo.CurrentCulture,
                            BudgetResource.Message.Common_Row_Error,
                            entity.Row));

                    foreach (ValidationResult result in results)
                    {
                        builder.AppendLine(
                            string.Format(
                                CultureInfo.CurrentCulture,
                                BudgetResource.Message.Common_Field_Error,
                                result.Message));
                    }
                }
                if (OnProgress != null)
                {
                    string InfomationMessage            = string.Format("you are validating No. {0} data", i);
                    int    Percentage                   = (int)(i * BudgetConstant.ProgressBarMaximum / count);
                    BudgetProgressChangedEventArgs args = new BudgetProgressChangedEventArgs(InfomationMessage, Percentage, null);
                    OnProgress(this, args);
                }

                i++;
            }

            if (!noError)
            {
                throw new BudgetRuntimeException("Validation Error", builder.ToString());
            }
        }