Esempio n. 1
0
        private void SaveMoney(IdxIndexModels index, SysUserModels userSession)
        {
            // Check exist index

            IDictionary<string, object> param = new Dictionary<string, object>();
            string timeFormat = Resource.DateFormat;
            string displayTimeFormat = Resource.DateFormat;
            Int32 precision = Int32.Parse(Resource.Precision);

            MstIndexTypeDAO indexTypeDAO = new MstIndexTypeDAO(this.mapper);

            MstIndexTypeModels indexTypeModel = indexTypeDAO.GetIndexType(index.indexTypeCode);
            if (indexTypeModel != null)
            {
                displayTimeFormat = indexTypeModel.displayTimeFormat;
                timeFormat = indexTypeModel.typeTimeFormat;
                precision = indexTypeModel.precisionField;

                // Check exist index
                param.Add("indexCode", index.indexCode);
                param.Add("term", index.term);
                param.Add("indexTypeCode", index.indexTypeCode);
                param.Add("seqNo", index.seqNo);
                param.Add("indexTime", index.indexTime);
                param.Add("displayTimeFormat", Int32.Parse(displayTimeFormat));

                Hashtable obj = (Hashtable)mapper.QueryForObject("Idx.selectIndex", param);
                index.updatedBy = userSession.userCode;
                index.createdBy = userSession.userCode;
                index.indexStatus = Constants.Status.Active;
                // If not exist -> Insert
                if (obj == null)
                {
                    mapper.Insert("Idx.insertIndex", index);
                }
                else // If exist -> Update
                {
                    param.Add("indexMoney", index.indexMoney);
                    param.Add("updatedBy", index.updatedBy);
                    mapper.Update("Idx.updateIndex", param);
                }
            }
            else
            {
                mapper.Insert("Idx.insertIndex", index);
            }
        }
        public IList<IdxIndexModels> GetIndexFromExcel(DataTable dtIndex, ISqlMapper mapper, out string errorMsg)
        {
            string term = null;
            IList<IdxIndexModels> indexList = new List<IdxIndexModels>();
            errorMsg = "";
            // Check file type
            if (!StringUtils.IsEmpty(dtIndex.Columns[0].ColumnName) && dtIndex.Columns[0].ColumnName.Equals(Constants.FileType.ShortIndex))
            {
                term = Constants.Term.ShortTerm;
            }
            else if (!StringUtils.IsEmpty(dtIndex.Columns[0].ColumnName) && dtIndex.Columns[0].ColumnName.Equals(Constants.FileType.MiddleIndex))
            {
                term = Constants.Term.MidTerm;
            }
            else if (!StringUtils.IsEmpty(dtIndex.Columns[0].ColumnName) && dtIndex.Columns[0].ColumnName.Equals(Constants.FileType.LongIndex))
            {
                term = Constants.Term.LongTerm;
            }
            else
            {
                errorMsg = string.Format(Resource.MsgErrWrongSelection, Resource.IndexFile);
                return null;
            }

            // Get Index TypeCode
            string indexTypeCode = "";

            // Exact indexCode
            MstIndexDAO mstIndexDAO = new MstIndexDAO(mapper);
            int seqNo = 0;
            string previousItemCode = "";
            List<IdxIndexModels> indexCodeList = new List<IdxIndexModels>();
            int i = 0;
            foreach (DataRow row in dtIndex.Rows)
            {
                i++;
                IdxIndexModels index = new IdxIndexModels();
                string indexName = row[0].ToString();
                if (indexName.Equals(Resource.ExcelEndChar)
                    || StringUtils.IsEmpty(indexName)
                    ) break;

                if (StringUtils.IsEmpty(indexName))
                {
                    index.indexCode = previousItemCode;
                    seqNo++;
                    index.seqNo = seqNo;
                }
                else
                {
                    MstIndexModels indexModels = mstIndexDAO.GetIndexCode(indexName.Trim(), "", term);
                    if (indexModels == null)
                    {
                        errorMsg = string.Format(Resource.MsgErrIndexNotExist, indexName.Trim());
                        return null;
                    }
                    indexTypeCode = indexModels.indexTypeCode;
                    String indexCode = indexModels.indexCode;
                    if (indexCode == null)
                    {
                        errorMsg = string.Format(Resource.MsgErrNotExistIndexNameUploadExcelFile, new String[] { i.ToString(), "1", indexName });
                        return null;
                    }
                    previousItemCode = indexCode; // = ws.Cell(i, 1).Value;
                    index.indexCode = previousItemCode;
                    index.seqNo = 0;
                    seqNo = 0;
                }
                index.indexTypeCode = indexTypeCode;

                indexCodeList.Add(index);
            }

            // Get Index TypeCode
            MstIndexTypeDAO indexTypeDAO = new MstIndexTypeDAO(mapper);

            MstIndexTypeModels indexTypeModel = indexTypeDAO.GetIndexType(indexTypeCode);
            if (indexTypeModel == null)
            {
                errorMsg = string.Format(Resource.MsgErrIndexTypeNotExist, indexTypeCode);
                return null;
            }
            string timeFormat = indexTypeModel.typeTimeFormat;

            // Exact time
            IList<DateTime> timeList = new List<DateTime>();
            for (i=1; i<dtIndex.Columns.Count; i++)
            {
                string time = dtIndex.Columns[i].ToString();
                if (time.Equals(Resource.ExcelEndChar)
                    || StringUtils.IsEmpty(time)
                    || time.Contains("Column")
                    ) break;

                try
                {
                    timeList.Add(DateTime.ParseExact(time, timeFormat, null));
                }
                catch (Exception e)
                {
                    errorMsg = string.Format(Resource.MsgErrDateFormatUploadExcelFile, new String[] { "1", i.ToString(), time });
                    return null;
                }
            }

            // Exact index
            for (int currentRowIndex = 0; currentRowIndex < indexCodeList.Count; currentRowIndex++)
            {
                IdxIndexModels indexCode = indexCodeList[currentRowIndex];
                for (int currentColumnIndex = 0; currentColumnIndex < timeList.Count; currentColumnIndex++)
                {
                    IdxIndexModels index = new IdxIndexModels();
                    index.indexTypeCode = indexCode.indexTypeCode.Trim();
                    index.indexCode = indexCode.indexCode.Trim();
                    index.seqNo = indexCode.seqNo;
                    index.indexTime = timeList[currentColumnIndex];
                    try
                    {
                        index.indexField = double.Parse(dtIndex.Rows[currentRowIndex][currentColumnIndex+1].ToString());
                    }
                    catch (Exception e)
                    {
                        errorMsg = string.Format(Resource.MsgErrNumberFormatUploadExcelFile
                            , new String[] { (currentRowIndex+2).ToString(), (currentColumnIndex+2).ToString(), dtIndex.Rows[currentRowIndex][currentColumnIndex+1].ToString() });
                        return null;
                    }
                    index.term = term;
                    indexList.Add(index);
                }
            }

            return indexList;
        }