Esempio n. 1
0
        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\""));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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.
        }