Example #1
0
        /// <summary>
        /// GetSourceJournal
        /// </summary>
        /// <param name="insertIndex">insertIndex</param>
        /// <param name="pageNumber">pageNumber</param>
        /// <param name="pageSize">pageSize</param>
        /// <param name="model">model</param>
        /// <returns>SourceJournalProfileViewModel</returns>
        internal SourceJournalProfileViewModel <T> GetSourceJournal(int insertIndex, int pageNumber, int pageSize, T model)
        {
            var viewmodel = new SourceJournalProfileViewModel <T>();

            if (string.IsNullOrEmpty(model.SourceJournalName))
            {
                return(new SourceJournalProfileViewModel <T>());
            }

            _sourceJournalName  = model.SourceJournalName;
            _getSourceCodePaged = GetSourcePaged;

            var newRecord = new SourceCode();

            if (insertIndex > 0)
            {
                newRecord = GetSourceCodeLine(model);
            }

            var mergedList = MergeChangeItemToCache(model.SourceCodeList, pageNumber, pageSize,
                                                    insertIndex, GridKey, _sourceJournalProfileCacheKey, _getSourceCodePaged, _keySourceCodeGridFilter, newRecord);

            viewmodel.Data = new T
            {
                SourceJournalName = model.SourceJournalName,
                SourceCodeList    = mergedList
            };

            viewmodel.UserMessage = new UserMessage(mergedList);
            viewmodel.UserAccess  = Service.GetAccessRights();
            return(viewmodel);
        }
Example #2
0
        /// <summary>
        /// Clone Source Journal
        /// </summary>
        /// <param name="insertIndex">insertIndex</param>
        /// <param name="pageNumber">pageNumber</param>
        /// <param name="pageSize">pageSize</param>
        /// <param name="model">model</param>
        /// <returns>SourceJournalProfileViewModel</returns>
        internal SourceJournalProfileViewModel <T> CloneSourceJournal(int insertIndex, int pageNumber, int pageSize,
                                                                      T model)
        {
            //If Source Journal Exist get the data
            if (model.Exist)
            {
                //Remove previous Source Journal data from Cache
                SessionHelper.Remove(_sourceJournalProfileCacheKey);

                _sourceJournalName = model.SourceJournalName;

                var sourceJournalData = GetSourcePaged(-1, -1);

                if (sourceJournalData.Items.Any())
                {
                    SessionHelper.Set(_sourceJournalProfileCacheKey, sourceJournalData.Items.ToList());
                }

                return(GetSourceJournal(insertIndex, pageNumber, pageSize, model));
            }

            var cacheData = SessionHelper.Get <List <SourceCode> >(_sourceJournalProfileCacheKey);

            if (cacheData != null)
            {
                //Merge Latest changed data to cache
                MergeChangeItemToCache(model.SourceCodeList, 0, 0, 0, GridKey, _sourceJournalProfileCacheKey, _getSourceCodePaged,
                                       _keySourceCodeGridFilter, null);

                //Get Data from cache to clone
                var cachedData = SessionHelper.Get <List <SourceCode> >(_sourceJournalProfileCacheKey);
                List <SourceCode> cloneData;

                //remove deleted records from cache
                if (cachedData.Any())
                {
                    cloneData = cachedData.ToList().Where(s => s.IsDeleted != true).ToList();

                    var displayIndex = 1;
                    //Update Clone data - IsNewLine and HasChanged to True
                    foreach (var item in cloneData)
                    {
                        item.IsNewLine    = true;
                        item.HasChanged   = true;
                        item.DisplayIndex = displayIndex++;
                    }

                    //Set Clone Data to Cache
                    SessionHelper.Set(_sourceJournalProfileCacheKey, cloneData);
                }

                return(GetSourceJournal(insertIndex, pageNumber, pageSize, model));
            }

            //New Record return new Enumerable Response
            var enumerableResponse = new EnumerableResponse <SourceCode>
            {
                Items             = new List <SourceCode>(),
                TotalResultsCount = 0,
                CachedListCount   = 0
            };

            var viewmodel = new SourceJournalProfileViewModel <T>
            {
                Data = new T {
                    SourceJournalName = model.SourceJournalName, SourceCodeList = enumerableResponse
                },
                UserMessage = new UserMessage(enumerableResponse),
                UserAccess  = Service.GetAccessRights()
            };

            return(viewmodel);
        }