//
//  UserListViewController.m
//  iSales-NPD
//
//  Created by Ray on 4/19/16.
//  Copyright © 2016 United Software Applications, Inc. All rights reserved.
//

#import "UserListViewController.h"
#import "MainViewController.h"

@interface UserListViewController ()

@end

@implementation UserListViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.edgesForExtendedLayout = UIRectEdgeNone;
    
    self.bb_close.image=[[UIImage imageNamed:@"close"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
    
    
    
    self.logindata = [iSalesDB get_saveduser];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)CloseClick:(id)sender {
    
    [self dismissViewControllerAnimated:true completion:nil];
    //    if(self.returnValue)
    //        self.returnValue(false);
    
    
    
}
/*
 #pragma mark - Navigation
 
 // In a storyboard-based application, you will often want to do a little preparation before navigation
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
 // Get the new view controller using [segue destinationViewController].
 // Pass the selected object to the new view controller.
 }
 */
#pragma mark - Table view data source
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    return 44;
    
    
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.logindata.count;
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    NSMutableDictionary* up = self.logindata[indexPath.row];
    
    
    
    NSString *CellIdentifier = @"LoginListCell";
    UITableViewCell * cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    NSString* name=up[@"name"];
    cell.textLabel.text = name;
    return cell;
    
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    
    NSMutableDictionary* up = self.logindata[indexPath.row];
    
    
    
    UIApplication * app = [UIApplication sharedApplication];
    AppDelegate *appDelegate = (AppDelegate *)[app delegate];
    
    if(appDelegate.bLogin)
    {
        UIAlertView * waitalert = [RAUtils waiting_alert:@"Please wait" title:@"Switch user"];
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            
            NSDictionary* return_json = [iSalesNetwork logout];
            
            dispatch_async(dispatch_get_main_queue(), ^{
                
                
                appDelegate.cart_count = 0;
                appDelegate.wish_count =0;
                appDelegate.port_count =0;
                
                [appDelegate update_count_mark];
                
                
                appDelegate.can_show_price =false;
                appDelegate.can_see_price =false;
                appDelegate.can_create_portfolio =false;
                appDelegate.can_create_order =false;
                
                
                appDelegate.can_cancel_order =false;
                appDelegate.can_set_cart_price =false;
                appDelegate.can_delete_order =false;
                appDelegate.can_submit_order =false;
                appDelegate.can_set_tearsheet_price =false;
                appDelegate.can_update_contact_info = false;
                
                appDelegate.save_order_logout = false;
                appDelegate.submit_order_logout = false;
                appDelegate.alert_sold_in_quantities = false;
                
                appDelegate.ipad_perm =nil ;
                appDelegate.user_type = USER_ROLE_UNKNOWN;
                appDelegate.OrderFilter= nil;
                [appDelegate SetSo:nil];
                [appDelegate set_main_button_panel];
                
                
                
                [appDelegate Logout];
                // [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                    
                    
                    int ret=[iSalesNetwork  Authorize:up[@"name"] password:up[@"pwd"]];
                    
                    dispatch_async(dispatch_get_main_queue(), ^{
                        [waitalert dismissWithClickedButtonIndex:0 animated:FALSE];
                        
                        
                        if(ret==RESULT_TRUE)
                            
                        {
                            
                            //
                            //                NSString* contactid=[self.content_data[indexPath.row] valueForKey:@"contact_id"] ;
                            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
                            //                appDelegate.contact_id=contactid;
                            //                appDelegate.contact_name =[self.content_data[indexPath.row] valueForKey:@"name"];
                            
                            NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
                            [defaults removeObjectForKey:@"user"];
                            [defaults removeObjectForKey:@"password"];
                            if(true)
                            {
                                NSString* encryptu=[AESCrypt encrypt:appDelegate.user password:@"usai"];
                                NSString* encryptp=[AESCrypt encrypt:up[@"pwd"] password:@"usai"] ;
                                
                                [defaults setValue:encryptu forKey:@"user"];
                                [defaults setValue:encryptp forKey:@"password"];
                                
                                
                                //                    [defaults setBool:TRUE forKey:@"autologin"];
                            }
                            [defaults synchronize];
                            
                            
                            
                            
                            
                            MainViewController* main_vc=(MainViewController*)appDelegate.main_vc;
                            if(appDelegate.user_type==USER_ROLE_EMPLOYEE)
                            {
                                
                                [main_vc checklogin:false];
                                
                            }
                            
                            else
                            {
                                
                                [main_vc checklogin:false];
                                
                            }
                                [self dismissViewControllerAnimated:true completion:^{
                                    if(self.returnValue)
                                        self.returnValue(true);
                                }];
                            
                            
                            
                        }
                        else
                        {
                            NSString* msg=nil;
                            
                            switch (ret) {
                                    
                                case RESULT_NET_NOTAVAILABLE:
                                    msg = MSG_NET_NOTAVAILABLE;
                                    break;
                                    
                                    
                                case RESULT_NET_ERROR:
                                    msg = MSG_NET_ERROR;
                                    break;
                                    
                                    
                                case RESULT_FALSE:
                                    msg = MSG_USERAUTH_ERROR;
                                    break;
                                    
                                case RESULT_VER_LOW:
                                    msg = MSG_VER_LOW;
                                    break;
                                default:
                                    break;
                            }
                            
                            
                            UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"Switch User" message:msg preferredStyle:UIAlertControllerStyleAlert];
                            //block代码块取代了delegate
                            
                            
                            
                            UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
                                
                                
                                [self dismissViewControllerAnimated:true completion:^{
                                    if(self.returnValue)
                                        self.returnValue(false);
                                }];
                                
                                
                                
                            }];
                            
                            
                            [alertControl addAction:actionOne];
                            

                            
                            //UIAlertControllerStyle类型为UIAlertControllerStyleAlert可以添加addTextFieldWithConfigurationHandler:^(UITextField *textField)
                            
                            
                            [self presentViewController:alertControl animated:YES completion:nil];
                            

                            
                            //[RAUtils alert_view:msg title:@"Sign in"];
                            

                            
                            
                        }
                        
                        
                    });
                });
                
                
                
                
                
                
                
            });
        });
    }
    
    
    //    self.edituser.text = up[@"name"];
    //    self.editpass.text = up[@"pwd"];
    //
    //    self.showList=false;
    //    self.Loginlist.hidden=true;
    
    
}
//- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
//{
//
//    return true;
//}

@end
