| // |
| // EmployeeController.m |
| // StoreMadApp |
| // |
| // Created by Andrew Smith on 7/1/13. |
| // Copyright (c) 2013 Burgess. All rights reserved. |
| // |
| |
| #import "EmployeeController.h" |
| #import "Employee.h" |
| |
| @implementation EmployeeController |
| |
| #pragma mark - Core Data |
| |
| + (NSFetchRequest *)allEmployeesSortedFetchRequestInContext:(NSManagedObjectContext *)context |
| { |
| // Request |
| NSFetchRequest *fetchRequest = [context fetchRequestForObjectClass:[Employee class]]; |
| |
| // Sort |
| fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"hireDate" ascending:NO]]; |
| |
| return fetchRequest; |
| } |
| |
| #pragma mark - Actions |
| |
| + (void)fireEmployee:(Employee *)employee |
| completion:(void (^)(void))completion |
| { |
| NSManagedObjectContext *context = employee.managedObjectContext; |
| [context performBlockAndWait:^{ |
| employee.fireDate = [NSDate date]; |
| [context save]; |
| if (completion) completion (); |
| }]; |
| } |
| |
| + (void)hireEmployee:(Employee *)employee |
| completion:(void (^)(void))completion |
| { |
| if (!employee.isFired) { |
| if (completion) completion(); |
| return; |
| } |
| NSManagedObjectContext *context = employee.managedObjectContext; |
| [context performBlockAndWait:^{ |
| employee.fireDate = nil; |
| employee.hireDate = [NSDate date]; |
| [context save]; |
| if (completion) completion (); |
| }]; |
| } |
| |
| @end |