public async Task <IHttpActionResult> DeleteUser(UserViewModel model) { if (model == null) { return(Ok(new { status = false, data = "", message = "Invalid data model." })); } if (model.UserType == UserType.BusinessEmployee) { var employe = model.BusinessEmployee; var businessEmployeeController = new BusinessEmployeeController(); using (var appointmetntDb = _dbAppointment.Database.BeginTransaction()) { try { var deleteEmploye = businessEmployeeController.DeleteEmployee(employe.Id); if (deleteEmploye.Status) { var user = await UserManager.FindByEmailAsync(deleteEmploye.Data.Email); var response = await UserManager.DeleteAsync(user); if (response.Succeeded) { return(Ok(new { status = true, data = deleteEmploye.Data, message = "deleted successfully." })); } else { appointmetntDb.Rollback(); return(Ok(new { status = false, data = deleteEmploye.Data, message = "deletion failed. ex:" + response.Errors })); } } else { appointmetntDb.Rollback(); return(Ok(new { status = false, data = "", message = "There was problem. Please try again later." })); } } catch { appointmetntDb.Rollback(); return(Ok(new { status = false, data = "", message = "There was a problem Please try again later." })); } } } else if (model.UserType == UserType.BusinessCustomer) { var customer = model.BusinessCustomer; var businessCustomerController = new BusinessCustomerController(); using (var appointmetntDb = _dbAppointment.Database.BeginTransaction()) { try { var deleteCustomer = businessCustomerController.DeleteCustomer(customer.Id); if (deleteCustomer.Status) { var user = await UserManager.FindByEmailAsync(deleteCustomer.Data.Email); var response = await UserManager.DeleteAsync(user); if (response.Succeeded) { return(Ok(new { status = true, data = deleteCustomer.Data, message = "deleted successfully." })); } else { appointmetntDb.Rollback(); return(Ok(new { status = false, data = deleteCustomer.Data, message = "deletion failed. ex:" + response.Errors })); } } else { appointmetntDb.Rollback(); return(Ok(new { status = false, data = "", message = "There was problem. Please try again later." })); } } catch { appointmetntDb.Rollback(); return(Ok(new { status = false, data = "", message = "There was a problem Please try again later." })); } } } else { return(Ok(new { status = false, data = "", message = "Invalid user." })); } }