public async Task <IActionResult> DeleteDevice(DeleteActionModel model)
        {
            var result = await _tracfone.DeleteDevice(model.Serial);

            return(Json(result));
        }
        public async Task <IActionResult> ExecuteBulk()
        {
            var results  = new List <IActionResult>();
            var repo     = new Repository(_connectionString);
            var bulkData = repo.GetAllBulkData();

            foreach (BulkData data in bulkData)
            {
                switch (data.Action)
                {
                case BulkAction.AddDevice:
                    var addDeviceModel = new AddDeviceActionModel
                    {
                        Serial = data.Serial,
                        Sim    = data.Sim
                    };
                    results.Add(await AddDevice(addDeviceModel));
                    break;

                case BulkAction.DeleteDevice:
                    var deleteModel = new DeleteActionModel
                    {
                        Serial = data.Serial
                    };
                    results.Add(await DeleteDevice(deleteModel));
                    break;

                case BulkAction.Activate:
                    var activateModel = new ActivateActionModel
                    {
                        Serial = data.Serial,
                        Sim    = data.Sim,
                        Zip    = data.Zip
                    };
                    results.Add(await Activate(activateModel));
                    break;

                case BulkAction.InternalPort:
                    var internelPortModel = new PortActionModel
                    {
                        Serial = data.Serial,
                        Sim    = data.Sim,
                        Zip    = data.Zip,
                        CurrentAccountNumber   = data.CurrentAccountNumber,
                        CurrentMIN             = data.CurrentMIN,
                        CurrentServiceProvider = data.CurrentServiceProvider,
                        CurrentVKey            = data.CurrentVKey
                    };
                    results.Add(await InternalPort(internelPortModel));
                    break;

                case BulkAction.ExternalPort:
                    var externelPortModel = new PortActionModel
                    {
                        Serial = data.Serial,
                        Sim    = data.Sim,
                        Zip    = data.Zip,
                        CurrentAccountNumber   = data.CurrentAccountNumber,
                        CurrentMIN             = data.CurrentMIN,
                        CurrentServiceProvider = data.CurrentServiceProvider,
                    };
                    results.Add(await ExternalPort(externelPortModel));
                    break;
                }
            }

            return(Json(results));
        }
        public async Task <IActionResult> DeactivatePastDue(DeleteActionModel model)
        {
            var result = await _tracfone.DeactivatePastDue(model.Serial);

            return(Json(result["status"]["message"].ToString()));
        }
        public async Task <IActionResult> DeleteDevice(DeleteActionModel model)
        {
            var tracfone = new Tracfone();

            var url  = $"api/customer-mgmt/deleteDeviceAccount?client_id={_jwtClientID}";
            var auth = await tracfone.GetJWTAuthorization(_username, _password, _jwtAccessToken);

            var data = new AddDeviceData
            {
                RelatedParties = new List <RelatedParty>
                {
                    new RelatedParty
                    {
                        Party = new Party
                        {
                            PartyID         = "",
                            LanguageAbility = "ENG",
                            PartyExtension  = new List <Extension>
                            {
                                new Extension
                                {
                                    Name  = "vendorName",
                                    Value = "1231234234424"
                                },
                                new Extension
                                {
                                    Name  = "vendorStore",
                                    Value = "1231234234424"
                                },
                                new Extension
                                {
                                    Name  = "vendorTerminal",
                                    Value = "1231234234424"
                                },
                                new Extension
                                {
                                    Name  = "sourceSystem",
                                    Value = "EBP"
                                },
                                new Extension
                                {
                                    Name  = "accountEmail",
                                    Value = _username
                                },
                                new Extension
                                {
                                    Name  = "partyTransactionID",
                                    Value = "indirect_1231234234424"
                                }
                            }
                        },
                        RoleType = "partner"
                    }
                },
                CustomerAccounts = new List <CustomerAccount>
                {
                    new CustomerAccount
                    {
                        Action           = "DELETE_DEVICE",
                        CustomerProducts = new List <CustomerProduct>
                        {
                            new CustomerProduct
                            {
                                Product = new Product
                                {
                                    ProductSerialNumber  = model.Serial,
                                    ProductStatus        = "ACTIVE",
                                    AccountId            = "681177314",
                                    ProductCategory      = "HANDSET",
                                    ProductSpecification = new Specification
                                    {
                                        Brand = "CLEARWAY"
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var result = await tracfone.PostAPIResponse(url, $"Bearer {auth.access_token}", data);

            return(Json(result));
        }