public IActionResult CreateTenant([FromBody] CreateTenantBindingModel model) { TenantHandler hnd = new TenantHandler(); string buf = hnd.CreateTenant(model); if (!string.IsNullOrEmpty(buf)) { return(BadRequest(new { message = buf })); } return(Ok("\"success\"")); }
private bool CreateIzendaUser(CreateUserBindingModel model) { bool ret = false; try { //check if the tenant name provided if (!string.IsNullOrWhiteSpace(model.Tenant)) { //check if the tenant exists / create new if not Tenant tn = TenantHandler.GetTenantByName(model.Tenant); if (tn == null) { CreateTenantBindingModel tm = new CreateTenantBindingModel() { TenantName = model.Tenant, TenantId = model.Tenant }; TenantHandler th = new TenantHandler(); if (!string.IsNullOrEmpty(th.CreateTenant(tm))) { return(false); } } } string adminToken = IzendaTokenAuthorization.GetIzendaAdminToken(); string assignedRole = String.IsNullOrEmpty(model.SelectedRole) ? "Employee" : model.SelectedRole; Task <bool> createdUser = IzendaUtilities.CreateIzendaUser( model.Tenant, model.UserID, model.LastName, model.FirstName, model.IsAdmin, assignedRole, adminToken); // launch the task async and wait for the result. ret = createdUser.Result; } catch (Exception ex) { throw ex; } return(ret); }
public async Task <IHttpActionResult> CreateTenant(CreateTenantBindingModel model) { if (ModelState.IsValid) { var izendaAdminAuthToken = IzendaTokenAuthorization.GetIzendaAdminToken(); var tenantName = model.TenantName; // check user DB first var isTenantExist = IzendaUtilities.GetTenantByName(tenantName); if (isTenantExist == null) { // try to create a new tenant at izenda config DB var success = await IzendaUtilities.CreateTenant(tenantName, model.TenantId, izendaAdminAuthToken); if (success) { // save a new tenant at user DB var newTenant = new Tenant() { Name = model.TenantId }; await IzendaUtilities.SaveTenantAsync(newTenant); return(Ok("success")); } else { // Izenda config DB has the same tenant name. return(BadRequest()); } } else { // user DB has the same tenant name. return(BadRequest()); } } // If we got this far, something failed return(BadRequest(ModelState)); }
public string CreateTenant(CreateTenantBindingModel model) { string ret = ""; try { string izendaAdminAuthToken = IzendaTokenAuthorization.GetIzendaAdminToken(); Tenant tenant = GetTenantByName(model.TenantName); if (tenant == null) { // try to create a new tenant at izenda config DB bool isCreated = CreateIzendaTenant(model, izendaAdminAuthToken); // save a new tenant at user DB Tenant tn = new Tenant() { Name = model.TenantId }; if (isCreated) { isCreated = CreateCustomTenant(tn); } if (!isCreated) { ret = "Create tenant failed."; } } else { // user DB has the same tenant name. return(string.Format("the database already containd the tenant {0}.", model.TenantName)); } } catch (Exception ex) { return(string.Format("Error occured on tenant creation:\n {0}.", ex.Message)); } return(ret); }
private static bool CreateIzendaTenant(CreateTenantBindingModel model, string adminToken) { Task <bool> tenantCreated = IzendaUtilities.CreateTenant(model.TenantName, model.TenantId, adminToken); return(tenantCreated.Result); //Let it finish and return the results, here we don't worry about the performance. }