//
//  GISDataController.h
//  EAMNext
//
//  Created by Ram Madichetty on 7/13/16.
//
//

#import <Foundation/Foundation.h>
#import "RecordDataController.h"
#import "R5OBJECTS.h"

@protocol GISDataControllerDelegate <NSObject>

- (void)didGetMyWorkOrders:(NSArray *)workOrders withError:(NSError *)error;
- (void)didGetAllWorkOrders:(NSArray *)workOrders withError:(NSError *)error;
- (void)didGetEquipment:(NSArray *)equipment withError:(NSError *)error;
- (void)didGetGISEquipment:(NSArray *)equipment withError:(NSError *)error;
- (void)didgetGISRestToken:(NSDictionary *)esriResponse withError:(NSError *)error;

@end

@interface GISDataController : RecordDataController

- (void)getMaps;
- (void)getMyWorkOrders;
- (void)getAllWorkOrders;
- (void)getGISRestToken:(NSString *)mapURL;
- (GridData *)getMapDefaultGrid;
- (void)getEquipmentWithMinX:(NSString *)minX withMinY:(NSString *)minY withMaxX:(NSString *)maxX withMaxY:(NSString *)maxY withFilter:(NSString *)filter;
- (void)getEquipmentWithMinX:(NSString *)minX withMinY:(NSString *)minY withMaxX:(NSString *)maxX withMaxY:(NSString *)maxY withGISObjectIDs:(NSArray *)GISObjectIDs withFilter:(NSString *)filter;

- (void)getGISEquipmentWithMinX:(NSString *)minX withMinY:(NSString *)minY withMaxX:(NSString *)maxX withMaxY:(NSString *)maxY withLayers:(NSArray *)Layers;

- (void)getGISEquipmentWithLayers:(NSArray *)layers;

- (LOVData *)getLinearReferencePointLOVDefinition:(R5OBJECTS *)equipment withLOVName: (NSString *) lovName;
- (NSString *)getGISServerURL;
- (NSString *)getBasemapURL;
- (NSArray *)getLayerList;
- (NSArray *)getLevelsOfDetail;
- (NSArray *)getExtentCoordinates;
- (NSString *)getArcGISOnlineUserID;
- (NSString *)getArcGISOnlinePassword;
- (NSNumber *)getSpatialReference;
- (NSString *)getGeocodingService;
- (NSString *)getGeolocatorPath;
- (NSString *)getArcGISClientID;
- (NSString *)getArcGISPortalUrl;
- (LOVData *)getLOVDataSource:(NSString *)lovName;
- (R5OBJECTS *) getEquipmentDetails:(NSString *) GISObjectID;
- (BOOL)isExtentExist;

@end
