Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # PersistenceService.h
- #import <Foundation/Foundation.h>
- @interface PersistenceService : NSObject
- @property (nonatomic, retain) NSManagedObjectContext *context;
- -(instancetype) init;
- -(void) saveContext;
- @end
- # PersistenceService.m
- @implementation PersistenceService
- -(instancetype) init {
- self = [super init];
- if (self) {
- self.context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
- self.context.parentContext = [DataManager sharedInstance].managedObjectContext;
- }
- return self;
- }
- -(void) saveContext {
- NSManagedObjectContext *context = self.context.parentContext;
- [self.context performBlock:^{
- NSError *error;
- [self.context save:&error];
- [context performBlock:^{
- NSError *error;
- [context save:&error];
- [context.parentContext performBlock:^{
- NSError *error;
- [context.parentContext save:&error];
- }];
- }];
- }];
- }
- @end
- # PseudoLeadPersistenceService.m
- -(void) saveOrUpdatePseudoLead:(Lead *)lead ofType:(PseudoLeadType)type {
- PseudoLeadDAO *pseudoLeadDAO = [PseudoLeadDAO findPseudoLeadByCode:lead.qrcode.code andEventId:lead.event.idEvent inContext:self.context];
- if (pseudoLeadDAO == nil) {
- pseudoLeadDAO = [[PseudoLeadDAO alloc] initWithLead:lead andType:type andContext:self.context];
- } else {
- [pseudoLeadDAO setAttributesWithLead:lead];
- }
- [self saveContext];
- }
- # PseudoLeadDAO.m
- -(void) setAttributesWithLead:(Lead *)lead {
- [self setPseudoLeadID:lead.id];
- [self setHotlead:lead.hotlead];
- [self setPseudoLeadDescription:lead.description];
- [self setEvent:[EventDAO findEventById:lead.event.idEvent inContext:self.managedObjectContext]];
- if (lead.qrcode.code != nil) {
- [self setQrCode:lead.qrcode.code];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement