Beispiel #1
0
        /// <summary>
        /// Save segment code functionality.
        /// </summary>
        /// <param name="model">Model</param>
        /// <returns>Returns an IEnumerable object</returns>
        public virtual IEnumerable <T> Save(IEnumerable <T> model)
        {
            var entity = CreateBusinessEntities();

            CheckRights(entity, SecurityType.Modify);

            var segmentCodes       = model as T[] ?? model.ToArray();
            var segmentCodesMapper = new SegmentCodesMapper <T>(Context);

            foreach (var segmentCode in segmentCodes.Where(segment => segment.IsDeleted))
            {
                segmentCodesMapper.MapKey(segmentCode, entity);

                entity.Read(false);

                if (segmentCode.IsDeleted)
                {
                    entity.Delete();
                }
            }

            foreach (var segmentCode in segmentCodes.Where(segment => !segment.IsDeleted))
            {
                segmentCodesMapper.MapKey(segmentCode, entity);

                entity.Read(false);

                segmentCodesMapper.Map(segmentCode, entity);

                if (entity.Exists && !segmentCode.IsNewLine)
                {
                    entity.Update();
                }
                else
                {
                    entity.Insert();
                }
            }

            entity.Post();

            return(segmentCodes);
        }
Beispiel #2
0
        /// <summary>
        /// Check whether segmentcode can be deletable or not.
        /// </summary>
        /// <param name="segmentCodes">An IEnumerable type of SegmentCode</param>
        /// <param name="deletableSegmentCodes">List of Segment Codes which are allowed to be deleted</param>
        /// <returns>Returns True if all of the records passed are agreed to be removed.</returns>
        public virtual bool AreSegmentCodesDeletable(IEnumerable <T> segmentCodes, ref List <string> deletableSegmentCodes)
        {
            var entity = CreateBusinessEntities();

            foreach (var segment in segmentCodes.Where(segment => !segment.IsNewLine))
            {
                var segmentCodesMapper = new SegmentCodesMapper <T>(Context);

                segmentCodesMapper.MapKey(segment, entity);

                entity.Read(false);

                entity.Delete();

                deletableSegmentCodes.Add(segment.SegmentCode);
            }

            // If segment code deleted without any exception then return true.
            // If exception occurs then it will skip below line..
            return(true);
        }