/// <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); }
/// <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); }