dbmangr m file

#import “DBManager.h”

#import <sqlite3.h>

#import “FMDatabase.h”

#import “FMDatabaseAdditions.h”

#import “FMDatabaseQueue.h”

#import <SystemConfiguration/SystemConfiguration.h>

#import “SVProgressHUD.h”

//#import “Reachability.h”

static DBManager *sharedInstance = nil;

static FMDatabaseQueue *_queue;

static NSOperationQueue *_writeQueue;

static NSRecursiveLock *_writeQueueLock;

@interface DBManager() {

    int n1;

}

@property (nonatomic, strong) NSString *documentsDirectory;

@property (nonatomic, strong) NSString *databaseFilename;

@property (nonatomic, strong) NSMutableArray *arrResults;

@property (nonatomic, strong) NSString *fullFilePath;

@property (nonatomic, strong) FMDatabase *database;

-(void)copyDatabaseIntoDocumentsDirectory;

@end

@implementation DBManager

#pragma mark – Initialization

-(instancetype)initWithDatabaseFilename:(NSString *)dbFilename

{

    self = [super init];

    if (self) {

        // Set the documents directory path to the documentsDirectory property.

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        self.documentsDirectory = [paths objectAtIndex:0];

        // Keep the database filename.

        self.databaseFilename = dbFilename;

        // Copy the database file into the documents directory if necessary.

        [self copyDatabaseIntoDocumentsDirectory];

    }

    return self;

}

+(DBManager*)getSharedInstance

{

    if (!sharedInstance) {

        sharedInstance = [[super allocWithZone:NULL]init];

        NSString *Path=[NSString stringWithFormat:@”%@/Documents/”, NSHomeDirectory()];

        sharedInstance.documentsDirectory = Path;

        sharedInstance.databaseFilename = @”Vagess.db”;

        [sharedInstance copyDatabase:sharedInstance.databaseFilename];

        _queue = [FMDatabaseQueue databaseQueueWithPath:sharedInstance.fullFilePath];

        _writeQueue = [NSOperationQueue new];

        [_writeQueue setMaxConcurrentOperationCount:1];

        _writeQueueLock = [NSRecursiveLock new];

    }

    return sharedInstance;

}

#pragma mark – Private method implementation

-(void)copyDatabaseIntoDocumentsDirectory

{

    // Check if the database file exists in the documents directory.

    NSString *destinationPath = [self.documentsDirectory stringByAppendingPathComponent:self.databaseFilename];

    if (![[NSFileManager defaultManager] fileExistsAtPath:destinationPath]) {

        // The database file does not exist in the documents directory, so copy it from the main bundle now.

        NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:self.databaseFilename];

        NSError *error;

        [[NSFileManager defaultManager] copyItemAtPath:sourcePath toPath:destinationPath error:&error];

        

        // Check if any error occurred during copying and display it.

        if (error != nil) {

            NSLog(@”%@”, [error localizedDescription]);

        }

    }

}

-(void) copyDatabase:(NSString *)dbFileName

{

    NSFileManager *fmngr = [[NSFileManager alloc] init];

    //NSString *filePath = [[NSBundle mainBundle] pathForResource:dbFileName ofType:nil];

    NSError *error;

    NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:self.databaseFilename];

    self.fullFilePath=[NSString stringWithFormat:@”%@%@”, self.documentsDirectory,dbFileName];

    NSLog(@”Full File Path : %@ \n FilePath : %@”,self.fullFilePath,sourcePath);

    sharedInstance.database = [FMDatabase databaseWithPath:sharedInstance.fullFilePath];

    if(![[NSFileManager defaultManager] fileExistsAtPath:self.fullFilePath])

    {

        if(![fmngr copyItemAtPath:sourcePath toPath:self.fullFilePath error:&error]) {

            NSLog(@”Error creating the database: %@”, [error description]);

        }

        else{

            NSLog(@”Database is copied. %@”,self.fullFilePath);

        }

    }

    else

    {

        NSLog(@”Database is already EXISTS.”);

    }

}

– (BOOL)addtocart:(NSMutableDictionary *)dataList

{

    BOOL result;

    if ([sharedInstance.database open])

    {

        NSLog(@”%@”,dataList);

        NSString *query=[NSString stringWithFormat:@”INSERT OR IGNORE INTO tbl_Cart (user_id,product_id,after_offer,category_name,has_offer,min_measure,min_quantity,offer_price,offer_type,product_price,product_title,stock_measure,thumb_2,total_stock_in_hand,wishlist,Totalprice,qty) VALUES (‘%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’)”,

                         [[[NSUserDefaults standardUserDefaults] valueForKey:@”Userdeatil”] valueForKey:@”user_id”],

                         [dataList valueForKey:@”product_id”],

                         [dataList valueForKey:@”after_offer”],

                         [dataList valueForKey:@”category_name”],

                         [dataList valueForKey:@”has_offer”],

                         [dataList valueForKey:@”min_measure”],

                         [dataList valueForKey:@”min_quantity”],

                         [dataList valueForKey:@”offer_price”],

                         [dataList valueForKey:@”offer_type”],

                         [dataList valueForKey:@”product_price”],

                         [dataList valueForKey:@”product_title”],

                         [dataList valueForKey:@”stock_measure”],

                         [dataList valueForKey:@”thumb_2″],

                         [dataList valueForKey:@”total_stock_in_hand”],

                         [dataList valueForKey:@”wishlist”],

                         [dataList valueForKey:@”Totalprice”],

                         [dataList valueForKey:@”qty”]

                         ];

        result = [sharedInstance.database executeUpdate:query];

        

        [sharedInstance.database close];

        return result;

    }

    else

    {

        [sharedInstance.database close];

        return false;

    }

}

– (BOOL)SaveCategory:(NSMutableDictionary *)dataList

{

    BOOL result;

    if ([sharedInstance.database open])

    {

        NSLog(@”%@”,dataList);

        NSString *query=[NSString stringWithFormat:@”INSERT OR IGNORE INTO tbl_productDetail (user_id,product_id,after_offer,category_name,has_offer,min_measure,min_quantity,offer_price,offer_type,product_price,product_title,stock_measure,thumb_2,total_stock_in_hand,wishlist,Totalprice,qty) VALUES (‘%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’,’%@’)”,

                         [[[NSUserDefaults standardUserDefaults] valueForKey:@”Userdeatil”] valueForKey:@”user_id”],

                         [dataList valueForKey:@”product_id”],

                         [dataList valueForKey:@”after_offer”],

                         [dataList valueForKey:@”category_name”],

                         [dataList valueForKey:@”has_offer”],

                         [dataList valueForKey:@”min_measure”],

                         [dataList valueForKey:@”min_quantity”],

                         [dataList valueForKey:@”offer_price”],

                         [dataList valueForKey:@”offer_type”],

                         [dataList valueForKey:@”product_price”],

                         [dataList valueForKey:@”product_title”],

                         [dataList valueForKey:@”stock_measure”],

                         [dataList valueForKey:@”thumb_2″],

                         [dataList valueForKey:@”total_stock_in_hand”],

                         [dataList valueForKey:@”wishlist”],

                         [dataList valueForKey:@”Totalprice”],

                         [dataList valueForKey:@”qty”]

                         ];

        

        result = [sharedInstance.database executeUpdate:query];

        

        [sharedInstance.database close];

        return result;

    }

    else

    {

        [sharedInstance.database close];

        return false;

    }

}

– (BOOL)updatecart:(NSString *)userid qty:(NSString*)counter proudct_id:(NSString*)product

{

    BOOL result;

    if ([sharedInstance.database open])

    {

        //        NSLog(@”UPDATE wallpaper_Master set  wallpaper_img= WHERE wallpaper_id=%i”,wpaper.wallpaper_id);

        NSString *query=[[NSString alloc]initWithFormat:@”UPDATE tbl_Cart SET qty = ‘%@’ where user_id == ‘%@’ and product_id == ‘%@'”,counter,userid,product];

        result = [sharedInstance.database executeUpdate:query];

        [sharedInstance.database close];

        return result;

    }

    else

    {

        [sharedInstance.database close];

        return false;

    }

}

– (BOOL)updaterecode:(NSString *)query

{

    BOOL result;

    if ([sharedInstance.database open])

    {

        //        NSString *query=[[NSString alloc]initWithFormat:@”UPDATE tbl_productDetail SET product_title = ‘%@’,product_image = ‘%@’,thumb_1 = ‘%@’,thumb_2 = ‘%@’,mobile_big = ‘%@’,product_status = ‘%@’,product_price = ‘%@’,product_quantity = ‘%@’,product_in_stock = ‘%@’,product_quantity_measure = ‘%@’,is_wishlist = ‘%@’ where product_id == ‘%@'”,[datalist valueForKey:@”product_title”],[datalist valueForKey:@”product_image”],[datalist valueForKey:@”thumb_1″],[datalist valueForKey:@”thumb_2″],[datalist valueForKey:@”mobile_big”],[datalist valueForKey:@”product_status”],[datalist valueForKey:@”product_price”],[datalist valueForKey:@”product_quantity”],[datalist valueForKey:@”product_in_stock”],[datalist valueForKey:@”product_quantity_measure”],[datalist valueForKey:@”is_wishlist”],[datalist valueForKey:@”product_id”]];

        result = [sharedInstance.database executeUpdate:query];

        [sharedInstance.database close];

        return result;

    }

    else

    {

        [sharedInstance.database close];

        return false;

    }

}

-(BOOL)Cheakexites:(NSString *)userid productid:(NSString*)productid

{

    BOOL result=false;

    

    if ([sharedInstance.database open])

    {

        

        NSString *query=[NSString stringWithFormat:@”select * from tbl_Cart where user_id == ‘%@’ and product_id == ‘%@'”,userid,productid];

        result = [sharedInstance.database executeUpdate:query];

    }

    else

    {

        return false;

    }

    [sharedInstance.database close];

    return result;

}

-(BOOL)CheakexitesRecode:(NSString*)productid

{

    BOOL result=false;

    

    if ([sharedInstance.database open])

    {

        

        NSString *query=[NSString stringWithFormat:@”select * from tbl_productDetail where product_id == ‘%@'”,productid];

        result = [sharedInstance.database executeUpdate:query];

    }

    else

    {

        return false;

    }

    [sharedInstance.database close];

    return result;

}

#pragma Get Wallpaper List

-(NSMutableArray*)getcartitem:(NSString *)query

{

    int flag=0;

    NSMutableArray *ResultArray=[[NSMutableArray alloc] init];

    if([sharedInstance.database open])

    {

        flag=-1;

        

        FMResultSet *results = [sharedInstance.database executeQueryWithFormat:query,nil];

        

        while([results next])

        {

            NSMutableDictionary *dic=[[NSMutableDictionary alloc]init];

            [dic setValue:[results stringForColumn:@”user_id”] forKey:@”user_id”];

            [dic setValue:[results stringForColumn:@”product_id”] forKey:@”product_id”];

            [dic setValue:[results stringForColumn:@”after_offer”] forKey:@”after_offer”];

            [dic setValue:[results stringForColumn:@”category_name”] forKey:@”category_name”];

            [dic setValue:[results stringForColumn:@”has_offer”] forKey:@”has_offer”];

            [dic setValue:[results stringForColumn:@”min_measure”] forKey:@”min_measure”];

            [dic setValue:[results stringForColumn:@”min_quantity”] forKey:@”min_quantity”];

            [dic setValue:[results stringForColumn:@”offer_price”] forKey:@”offer_price”];

            [dic setValue:[results stringForColumn:@”offer_type”] forKey:@”offer_type”];

            [dic setValue:[results stringForColumn:@”product_price”] forKey:@”product_price”];

            [dic setValue:[results stringForColumn:@”product_title”] forKey:@”product_title”];

            [dic setValue:[results stringForColumn:@”stock_measure”] forKey:@”stock_measure”];

            [dic setValue:[results stringForColumn:@”thumb_2″] forKey:@”thumb_2″];

            [dic setValue:[results stringForColumn:@”total_stock_in_hand”] forKey:@”total_stock_in_hand”];

            [dic setValue:[results stringForColumn:@”wishlist”] forKey:@”wishlist”];

            [dic setValue:[results stringForColumn:@”Totalprice”] forKey:@”Totalprice”];

            [dic setValue:[results stringForColumn:@”qty”] forKey:@”qty”];

            

            [ResultArray addObject:dic];

        }

    }

    else

    {

        return ResultArray;

    }

    [sharedInstance.database close];

    return ResultArray;

}

-(BOOL)Deleterecode:(NSString *)query

{

    BOOL result=false;

    

    if ([sharedInstance.database open])

    {

        

        result = [sharedInstance.database executeUpdate:query];

    }

    else

    {

        return false;

    }

    [sharedInstance.database close];

    return result;

}

@end

Leave a comment

search previous next tag category expand menu location phone mail time cart zoom edit close