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